Beispiel #1
0
    // 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();
        }
Beispiel #3
0
    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;
        }
    }