Esempio n. 1
0
        //
        IEnumerator RequestPathToSpotterPos()
        {
            float RanTime = Random.Range(0.25f, ThisGCM.OrderDelay);

            yield return(new WaitForSeconds(RanTime));

            CurrentState = GunSpotterState.RequestingPathToSpotterPos;
            CommandManager.Instance.IssueMovementCommand(ThisGCM, ThisFieldGun.GunSpotterNodes[ChosenSpottingNodeIndex]);
        }
Esempio n. 2
0
 //
 void StatusCheck()
 {
     if (CheckIfAtSpotterPos() == false)
     {
         if (CurrentState == GunSpotterState.AtSpotterPos || CurrentState == GunSpotterState.Idle)
         {
             StartCoroutine(RequestPathToSpotterPos());
         }
     }
     else
     {
         CurrentState = GunSpotterState.AtSpotterPos;
     }
 }
Esempio n. 3
0
        public override void FixedUpdate()
        {
            switch (CurrentState)
            {
            case GunSpotterState.Idle:
                break;

            case GunSpotterState.RequestingPathToSpotterPos:
                if (ThisGCM.MovementOrder != null)
                {
                    if (ThisGCM.MovementOrder.CurrentPathStatus == PathRequestStatus.RecivedAndValid)
                    {
                        CurrentState = GunSpotterState.MovingToSpotterPos;
                    }
                }
                break;

            case GunSpotterState.MovingToSpotterPos:
                if (CheckIfAtSpotterPos())
                {
                    CurrentState = GunSpotterState.AtSpotterPos;
                }
                break;

            case GunSpotterState.AtSpotterPos:
                StatusCheck();
                break;

            case GunSpotterState.ScanningForTargets:
                break;

            case GunSpotterState.TargetFound:
                break;

            case GunSpotterState.CallingInStrike:
                break;

            default:
                break;
            }
        }