Beispiel #1
0
        private int CalculateDamage(ICombative defender, Move move)
        {
            var   modifier = GetDamageModifier(defender, move);
            float attackerStageMultiplier = isSpecialAttack(move.Type) ? this.Stats.Skills["special-attack"].StageMultiplier
                : this.Stats.Skills["attack"].StageMultiplier;
            float defenderStageMultiplier = isSpecialAttack(move.Type) ? defender.GetStats().Skills["special-defense"].StageMultiplier
                : defender.GetStats().Skills["defense"].StageMultiplier;

            string attackSkill  = isSpecialAttack(move.Type) ? "special-attack" : "attack";
            string defenseSkill = isSpecialAttack(move.Type) ? "special-defense" : "defense";

            var A = this.Stats.Skills[attackSkill].Value * attackerStageMultiplier;
            var D = defender.GetStats().Skills[defenseSkill].Value * defenderStageMultiplier;

            var numerator   = (((2 * Stats.Level) / 5) + 2) * move.Power * (A / D) * modifier;
            var denominator = 50;

            var damage = ((numerator / denominator) + 2) * modifier;

            return((int)damage);
        }
Beispiel #2
0
        public float healthLeeched(ICombative receiver)
        {
            float damageDealt = receiver.GetStats().MaxHP *(0.10f);

            return(damageDealt);
        }