Пример #1
0
    private void CombatHelper(CreatureCardVisual damageDealer, CreatureCardVisual damageTaker)
    {
        int tempAttackvalue = 0;

        if (damageDealer.attack < 0)
        {
            tempAttackvalue = 0;
        }
        else
        {
            tempAttackvalue = -damageDealer.attack;
        }

        //Debug.Log("the attacker's attack value at the time of damage dealt is: " + damageDealer.attack.ToString());

        SpecialAbility.StatAdjustment adj = new SpecialAbility.StatAdjustment(Constants.CardStats.Health, tempAttackvalue, false, false, damageDealer);

        bool hasVFX = String.IsNullOrEmpty(damageDealer.attackEffect);

        if (damageDealer == attacker)
        {
            if (damageDealer.keywords.Contains(Keywords.Cleave))
            {
                CardVisual rightOfTarget = damageTaker.owner.battleFieldManager.GetCardToTheRight(damageTaker);
                CardVisual leftOfTarget  = damageTaker.owner.battleFieldManager.GetCardToTheLeft(damageTaker);

                if (rightOfTarget != null)
                {
                    rightOfTarget.RPCApplyUntrackedStatAdjustment(PhotonTargets.All, adj, damageDealer, false);
                }

                if (leftOfTarget != null)
                {
                    leftOfTarget.RPCApplyUntrackedStatAdjustment(PhotonTargets.All, adj, damageDealer, false);
                }
            }
        }


        damageTaker.RPCApplyUntrackedStatAdjustment(PhotonTargets.All, adj, damageDealer, !hasVFX);

        if (!hasVFX)
        {
            LaunchVFX(damageDealer, damageTaker);
        }
    }