// 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; }
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; } }