// 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]); }
// void StatusCheck() { if (CheckIfAtSpotterPos() == false) { if (CurrentState == GunSpotterState.AtSpotterPos || CurrentState == GunSpotterState.Idle) { StartCoroutine(RequestPathToSpotterPos()); } } else { CurrentState = GunSpotterState.AtSpotterPos; } }
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; } }