Ejemplo n.º 1
0
        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
                }));
            }
        }
Ejemplo n.º 2
0
        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
            }));
        }