コード例 #1
0
    public void BasicAttack(HeroClass target, CombatManager combatManager, List <HeroClass> characterParty, bool isHealing = false)
    {
        int damage = 0;

        switch (isHealing)
        {
        case true:
            target.Health += Attack;

            gameLog.text = (this.name + " healed " + target.name + " for " + Attack.ToString() + " health.");
            break;

        case false:

            if (forcedTarget != null && forcedTarget != target)
            {
                target       = forcedTarget as HeroClass;
                forcedTarget = null;
            }
            if (forcedTarget != null && forcedTarget == target)
            {
                forcedTarget = null;
            }

            damage = Attack - target.Defense;

            if (damage <= 0)
            {
                damage = 1;
            }

            target.currentHealth -= damage;

            gameLog.text = (this.name + " attacked " + target.name + " for " + damage.ToString() + " damage.");

            Transform animationTransform = GameObject.FindGameObjectWithTag("Player").transform.GetChild(target.combatIndex).transform;
            SpawnAnimation(animationTransform);

            break;
        }

        if (target.currentHealth <= 0)
        {
            if (combatManager != null)
            {
                target.Die(combatManager, characterParty);
            }

            gameLog.text += ("\n" + target.name + " has died.");
        }
        else
        {
            gameLog.text += ("\n" + "Their health is now: " + target.currentHealth);
        }
    }