Esempio n. 1
0
    public virtual void Update()
    {
        beAttackTime += Time.deltaTime;

        if (hitByTransform == null)
        {
            enumAttack = EnumAttack.count;
        }
        //當受擊狀態結束後
        if (beAttackTime > recoverTime && navMeshAgent != null)
        {
            //停止被打飛
            rigidbody.velocity   = Vector3.zero;
            navMeshAgent.enabled = true;
        }
        if (beAttackMin > 0)
        {
            GetHit(1 + characterBase.charaterStats[(int)CharacterStats.INT] + skillBase.poisonSkillLevel * 20);
        }
    }
Esempio n. 2
0
 public virtual void OnTriggerStay(Collider other)
 {
     if (Hp > 0)
     {
         if (other.CompareTag("Poison"))
         {
             getHitEffect[0] = getHitEffect[4];
             beAttackMin     = beAttackMax;//最大被打的次數
             hitByTransform  = other.transform;
             if (beAttackTime > attackTime)
             {
                 GetHit(1 + characterBase.charaterStats[(int)CharacterStats.INT] + skillBase.poisonSkillLevel * 20);
                 //怪物被受擊的間隔時間歸零
                 beAttackTime = 0;
             }
         }
         if (other.CompareTag("WindAttack"))
         {
             getHitEffect[0] = getHitEffect[3];
             if (beAttackTime > attackTime)
             {
                 GetHit(2 + characterBase.charaterStats[(int)CharacterStats.INT] + skillBase.windSkillLevel * 20);
                 //怪物被受擊的間隔時間歸零
                 beAttackTime = 0;
             }
             enumAttack = EnumAttack.wind;
         }
         if (other.CompareTag("Firetornado"))
         {
             getHitEffect[0] = getHitEffect[2];
             if (beAttackTime > attackTime)
             {
                 GetHit(5 + characterBase.charaterStats[(int)CharacterStats.INT] + characterBase.charaterStats[(int)CharacterStats.SPR] * 2 + skillBase.windSkillLevel * 20);
                 //怪物被受擊的間隔時間歸零
                 beAttackTime = 0;
             }
             enumAttack = EnumAttack.fireTornado;
         }
     }
 }