public string TextDescribe() { string returnstring = "*"; returnstring += _Attack + ":* +"; returnstring += Bonus; if (!Bonus.ToLower().Contains("hit")) { returnstring += " to hit, "; } if (Reach > 0) { returnstring += "reach " + Reach + " ft., "; } if (Reach > 0 && (RangeFar > 0 || RangeClose > 0)) { returnstring += " or "; } if (RangeClose > 0) { returnstring += "range " + RangeClose; if (RangeFar > 0 && RangeFar != RangeClose) { returnstring += "/" + RangeFar; } returnstring += " ft., "; } returnstring += Target; if (!String.IsNullOrEmpty(Target) || !String.IsNullOrWhiteSpace(Target)) { if (Target[Target.Length - 1] != '.') { returnstring += "."; } } returnstring += " *Hit:* "; if (HitDiceNumber > 0) { returnstring += HitAverageDamage + " (" + HitDiceNumber + "d" + HitDiceSize; if (HitDamageBonus != 0) { if (HitDamageBonus > -1) { returnstring += "+"; } returnstring += HitDamageBonus + ") " + HitDamageType.ToLower() + " damage"; } returnstring += HitDamageBonus; } returnstring += ") " + HitDamageType.ToLower() + " damage"; if (HitText.Split(' ')[0].ToLower() == "and" || HitText.Split(' ')[0].ToLower() == "or" || HitText.Split(' ')[0].ToLower() == "plus") { returnstring += " "; } else { returnstring += ". "; } returnstring += HitText; return(returnstring); }