コード例 #1
0
 public void Attack()       //since this is a ranged attack, we need to override the melee attack function
 {
     if (enemy.returnElapsedTime() > enemy.wpnSpeed + Random.value * 0.5f)
     {
         /*GameObject newArrow = Instantiate (arrowPrefab, arrowSpawn.transform.position, arrowSpawn.transform.rotation) as GameObject;
          * newArrow.transform.eulerAngles = new Vector3(0, 0, transform.eulerAngles.z+90.9f);*/
         GameObject newBullet = Instantiate(bulletPrefab, bulletSpawn.transform.position, bulletSpawn.transform.rotation) as GameObject;
         //newBullet.GetComponent<Enemy_Projectile> ().dir = enemy.returnTargetPosition () - bulletSpawn.transform.position;
         newBullet.GetComponent <Enemy_Projectile> ().wpnDmg = enemy.wpnDmg;
         newBullet.tag = "Enemy_Projectile";
         enemy.setElapsedTime(0);
     }
     enemy.incElapsedTime();
 }
コード例 #2
0
 public void Attack()
 {
     if (enemy.returnElapsedTime() > enemy.wpnSpeed && enemy.inCombat)
     {
         if (enemy.returnTarget().GetComponent <Ally_Melee> () != null)
         {
             if (enemy.returnTarget().GetComponent <Ally_Melee> ().ally.isAlive())
             {
                 enemy.returnTarget().GetComponent <Ally_Melee> ().ally.takeDamage(enemy.wpnDmg);
             }
             else
             {
                 enemy.nullTarget();
                 enemy.GetTarget();
             }
         }
         else if (enemy.returnTarget().GetComponent <Ally_Ranged> () != null)
         {
             if (enemy.returnTarget().GetComponent <Ally_Ranged> ().ally.isAlive())
             {
                 enemy.returnTarget().GetComponent <Ally_Ranged> ().ally.takeDamage(enemy.wpnDmg);
             }
             else
             {
                 enemy.nullTarget();
                 enemy.GetTarget();
             }
         }
         else if (enemy.returnTarget().GetComponent <Player> () != null)
         {
             if (enemy.returnTarget().GetComponent <Player> ().isAlive())
             {
                 enemy.returnTarget().GetComponent <Player> ().takeDamage(enemy.wpnDmg);
             }
             else
             {
                 enemy.nullTarget();
                 enemy.GetTarget();
             }
         }
         enemy.setElapsedTime(0);
     }
     enemy.incElapsedTime();
 }
コード例 #3
0
 public void Attack()       //since this is a ranged attack, we need to override the melee attack function
 {
     if (enemy.returnElapsedTime() > enemy.wpnSpeed && ammo > 0)
     {
         /*GameObject newArrow = Instantiate (arrowPrefab, arrowSpawn.transform.position, arrowSpawn.transform.rotation) as GameObject;
          * newArrow.transform.eulerAngles = new Vector3(0, 0, transform.eulerAngles.z+90.9f);*/
         for (int i = 0; i < pelletCount; i++)
         {
             GameObject newBullet = Instantiate(bulletPrefab, bulletSpawn.transform.position, bulletSpawn.transform.rotation) as GameObject;
             newBullet.transform.eulerAngles = new Vector3(0, 0, newBullet.transform.eulerAngles.z - pelletSpread / 2 + (Random.value * pelletSpread));
             newBullet.GetComponent <Enemy_Projectile> ().wpnDmg = enemy.wpnDmg;
             newBullet.tag = "Enemy_Projectile";
         }
         enemy.setElapsedTime(0);
         ammo--;
         if (ammo <= 0)
         {
             reloading = true;
         }
     }
     enemy.incElapsedTime();
 }