Exemple #1
0
 public override void CastingTimeCheck()
 {
     if (currentAbility != null)
     {
         currentCastingTime += Time.deltaTime;
         if (currentCastingTime > currentAbility.enemyAbilityStats.castTime)
         {
             var newA = currentAbility.CreateWorldAbility(unitID);
             newA.gameObject.layer = 11;
             if (newA.enemyAbilityStats.behavior == EnemyAbilityStats.Behavior.Projectile)
             {
                 newA.transform.position = transform.position;
                 Vector3 leadPosition = UtilityService.FirstOrderIntercept(transform.position, new Vector3(), newA.enemyAbilityStats.speed, currentTarget.transform.position, currentTarget.GetComponent <Rigidbody>().velocity);
                 newA.transform.LookAt(leadPosition + new Vector3(0, currentTarget.GetComponent <CapsuleCollider>().height / 2, 0));
             }
             else if (newA.enemyAbilityStats.behavior == EnemyAbilityStats.Behavior.Area_Hit)
             {
                 newA.transform.position = currentTargetPoint;
             }
             currentCastingTime = 0;
             currentAbility     = null;
             return;
         }
     }
 }