// Update is called once per frame void Update() { currentLevel = pc.Level0; if (fsmProcess.CurrentState == StateIdle) { Utils.TDDebug("pb:StateIdle"); if (currentLevel.hasPlayerBase == false) { Utils.TDDebug("TransitionNoBaseYet"); fsmProcess.MoveNext(TransitionNoBaseYet); return; } else { Utils.TDDebug("TransitionStarted"); fsmProcess.MoveNext(TransitionStarted); return; } } if (fsmProcess.CurrentState == StateSelectBaseLocation) { Utils.TDDebug("pb:StateSelectBaseLocation"); pc.PlaceBaseLocationTarget(); if (pc.IsBaseReady()) { pc.StartLevel(); Utils.TDDebug("pb:TransitionBaseSelected"); fsmProcess.MoveNext(TransitionBaseSelected); return; } } if (fsmProcess.CurrentState == StateStartingLevel) { Utils.TDDebug("pb:StateStartingLevel"); // fsmProcess.MoveNext(TransitionStarted); return; } }
static void Main(string[] args) { Process p = new Process(); Random rnd = new Random(); Array values = Enum.GetValues(typeof(Transition)); for (var i = 0; i < 20; i++) { Transition mark = (Transition)values.GetValue(rnd.Next(values.Length)); Console.WriteLine($"{mark}: " + PrintAction(p.MoveNext(mark))); } Console.ReadLine(); }
void Update() { frame++; if (fsmProcess.CurrentState == StateWaitToStart) { if (PlayerController.GetPlayerController().Level0.HasStarted()) { fsmProcess.MoveNext(TransitionLevelReady); return; } } if (fsmProcess.CurrentState == StateClear) { Utils.TDDebug("StateClear"); MouseButtonUp = false; MouseButtonDown = false; CreateTowersMenuCanvas.enabled = false; InvisibleCanvas.enabled = false; Utils.TDDebug("TransitionFinished"); fsmProcess.MoveNext(TransitionFinished); return; } if (fsmProcess.CurrentState == StateDrag) { InvisibleCanvas.enabled = false; UpdateInputs(); Utils.TDDebug("StateDrag"); if (MouseButtonDown == false) { fsmProcess.MoveNext(TransitionUp); Utils.TDDebug("TransitionUp"); return; } } if (fsmProcess.CurrentState == StateIdle) { UpdateInputs(); if (MouseButtonDown) { Utils.TDDebug("MouseDownPressed"); MouseDownPressed = true; } Utils.TDDebug("StateIdle"); moveDiff = mousePosition - Input.mousePosition; mousePosition = Input.mousePosition; PlaceSpotTarget(); moveDiffMagnitude = moveDiff.magnitude; InvisibleCanvas.enabled = false; if (MouseButtonDown && moveDiffMagnitude > 0) { Debug.Log("moveDiffMagnitude:" + moveDiffMagnitude); Utils.TDDebug("TransitionDownMoving"); fsmProcess.MoveNext(TransitionDownMoving); MouseDownPressed = false; return; } if (MouseButtonDown == false && MouseDownPressed == true) { Utils.TDDebug("MouseButtonDownReleased"); MouseDownPressed = false; MouseButtonUp = true; Utils.TDDebug("TransitionUp"); mousePosition = Input.mousePosition; fsmProcess.MoveNext(TransitionClickUp); return; } //if (MouseButtonUp) //{ // Utils.TDDebug("TransitionUp"); // fsmProcess.MoveNext(TransitionClickUp); // return; //} } if (fsmProcess.CurrentState == StateShowingCreateMenu) { Utils.TDDebug("StateShowingCreateMenu"); Vector3 Inputpos = new Vector3(mousePosition.x, mousePosition.y, 0); for (int i = 0; i < CreateTowersMenu.Count; i++) { CreateTowersMenu[i].transform.position = Inputpos + CreateTowersMenuOffsets[i]; } CreateTowersMenuCanvas.enabled = true; InvisibleCanvas.enabled = true; return; } }