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); }
public float healthLeeched(ICombative receiver) { float damageDealt = receiver.GetStats().MaxHP *(0.10f); return(damageDealt); }