public override string DoAction() { base.DoAction(); bool found = false; if (Target == null) { return(string.Format("No available target for {0}'s attack", Character.Name)); } double dmg = Character.Power * 0.75; double modifier = ((double)RandomNumberGenerator.GetRand(40, 61)) / 50.0; dmg = (modifier * dmg); int dmgdone = Target.TakeDamage(Character, (int)dmg); foreach (IEffect e in Target.Effects) { if (e.GetName() == "burn" && e.GetOwner() == Character.Name) { (e as BurnEffect).AddDamage(((int)(dmg / 3.0)) + 1); found = true; } } if (!found) { IEffect burn = new BurnEffect(Character, ((int)(dmg / 3.0)) + 1); burn.Setup(Target); } return(string.Format("\t{0} attacked {1} doing {2} damage ({3} damage absorbed by armor)", Character.StatusString(), Target.StatusString(), dmgdone, (int)dmg - dmgdone)); }
public override bool IsEqual(StatusEffect effect) { BurnEffect burnEffect = (BurnEffect)effect; return(burnEffect != null); }