Пример #1
0
        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));
        }
Пример #2
0
    public override bool IsEqual(StatusEffect effect)
    {
        BurnEffect burnEffect = (BurnEffect)effect;

        return(burnEffect != null);
    }