private void EnemyAction(Enemy enemy, Player player, int enemyDamageToPlayer, FightResult enemyFightResult) { player.Stats[StatsConstants.HpStat] -= enemyDamageToPlayer; enemyFightResult.DisplayResult(enemy.Name, enemyDamageToPlayer, player.Name); if (enemyFightResult.AttackOutcome == FightAction.CriticalStrike) { player.ActivateAbilities(ActiveAbilityType.EnemyCrit); } var enemyLifesteal = CalculateLifesteal(enemyDamageToPlayer, enemy.Stats[StatsConstants.LifestealStat], enemy.Stats[StatsConstants.HpStat], enemy.Stats[StatsConstants.MaxHpStat]); enemy.Stats[StatsConstants.HpStat] += enemyLifesteal; Interface.DisplayFightAction(enemy.Name, FightAction.Lifesteal, enemyLifesteal); }
private void PlayerAction(Player player, Enemy enemy, int playerDamageToEnemy, FightResult playerFightResult) { enemy.Stats[StatsConstants.HpStat] -= playerDamageToEnemy; playerFightResult.DisplayResult(player.Name, playerDamageToEnemy, enemy.Name); player.AddPointsToPlayer(playerFightResult.AttackOutcome == FightAction.CriticalStrike ? FightAction.CriticalStrike : FightAction.Damage, playerDamageToEnemy); if (playerFightResult.AttackOutcome == FightAction.CriticalStrike) { player.ActivateAbilities(ActiveAbilityType.PlayerCrit); } var playerLifesteal = CalculateLifesteal(playerDamageToEnemy, player.Stats[StatsConstants.LifestealStat], player.Stats[StatsConstants.HpStat], player.Stats[StatsConstants.MaxHpStat]); player.Stats[StatsConstants.HpStat] += playerLifesteal; if (playerLifesteal > 0) { player.ActivateAbilities(ActiveAbilityType.PlayerLifesteal); } Interface.DisplayFightAction(player.Name, FightAction.Lifesteal, playerLifesteal); player.AddPointsToPlayer(FightAction.Lifesteal, playerLifesteal); }