public LootPackDice( string str )
{
int start = 0;
int index = str.IndexOf( 'd', start );
if ( index < start )
return;
m_Count = Utility.ToInt32( str.Substring( start, index-start ) );
bool negative;
start = index + 1;
index = str.IndexOf( '+', start );
if ( negative = (index < start) )
index = str.IndexOf( '-', start );
if ( index < start )
index = str.Length;
m_Sides = Utility.ToInt32( str.Substring( start, index-start ) );
if ( index == str.Length )
return;
start = index + 1;
index = str.Length;
m_Bonus = Utility.ToInt32( str.Substring( start, index-start ) );
if ( negative )
m_Bonus *= -1;
}