Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        if (!PlayerShipScript.player.Alive)
        {
            return;
        }

        DoNormalStuff();
        if (m_shipScript.Obstacle)
        {
            m_shipScript.FireWeapon(0);
        }

        chaseTime += Time.deltaTime;
    }
Exemplo n.º 2
0
 public void Grunt()
 {
     m_shipScript.Go();
     // If the player is less than 15 units away, move toward it
     if (m_shipScript.CheckAggro(20.0f, enemies))
     {
         if (m_shipScript.Obstacle)
         {
             m_shipScript.Stop();
             if (m_shipScript.AngleToTarget(m_shipScript.obstacleTrans.position) < 45.0f && m_shipScript.CanSeeTarget(m_shipScript.obstacleTrans, friends))
             {
                 m_shipScript.FireWeapon();
             }
         }
         if (m_shipScript.DistanceTo(m_shipScript.Target.position) < 20.0)
         {
             m_shipScript.AttackTarget(7.5f, friends);
         }
         else
         {
             m_shipScript.MoveToward(m_shipScript.Target);
         }
     }
     // If the player is not near
     else
     {
         if (m_shipScript.Obstacle)
         {
             m_shipScript.Stop();
             m_shipScript.FaceTarget(m_shipScript.obstacleTrans.position);
             if (m_shipScript.AngleToTarget(m_shipScript.obstacleTrans.position) < 15.0f && m_shipScript.CanSeeTarget(m_shipScript.obstacleTrans, friends))
             {
                 m_shipScript.FireWeapon();
             }
         }
         else if (m_shipScript.objective != null && m_shipScript.DistanceTo(m_shipScript.ObjectiveStartPos) > 25.0f)
         {
             if (m_shipScript.objective != null)
             {
                 m_shipScript.MoveToward(m_shipScript.objective);
             }
         }
         else
         {
             m_shipScript.Flock();
         }
         m_shipScript.aggro = false;
     }
 }