public void AttackUnitByAbility( object attacker, AbilityData ability, BoardUnit attackedUnit, int damageOverride = -1) { int damage = ability.Value; if (damageOverride > 0) { damage = damageOverride; } if (attackedUnit != null) { if (damage > 0 && attackedUnit.HasBuffShield) { damage = 0; attackedUnit.UseShieldFromBuff(); } attackedUnit.CurrentHp -= damage; _vfxController.SpawnGotDamageEffect(attackedUnit, -damage); _actionsQueueController.PostGameActionReport(_actionsQueueController.FormatGameActionReport( Enumerators.ActionType.ATTACK_CREATURE_BY_ABILITY, new[] { attacker, ability, damage, attackedUnit })); } }
public void AttackUnitBySkill(Player attackingPlayer, HeroSkill skill, BoardUnit attackedUnit, int modifier) { int damage = skill.Value + modifier; if (attackedUnit != null) { if (damage > 0 && attackedUnit.HasBuffShield) { damage = 0; attackedUnit.UseShieldFromBuff(); } attackedUnit.CurrentHp -= damage; _vfxController.SpawnGotDamageEffect(attackedUnit, -damage); } _actionsQueueController.PostGameActionReport(_actionsQueueController.FormatGameActionReport( Enumerators.ActionType.ATTACK_CREATURE_BY_SKILL, new object[] { attackingPlayer, skill, damage, attackedUnit })); }