Пример #1
0
        public static void playerTurn()
        {
            switch (currentPhase)
            {
            case battlephase.choose:
                drawAttackArrow(enemyPosition);
                break;

            case battlephase.move:
                drawPath(playerPosition, targetPosition);
                break;

            case battlephase.drawknock:
                knockPlayer();
                currentPhase = battlephase.knock;
                break;

            case battlephase.knock:
                knockPlayer();
                break;

            default:
                break;
            }
        }
Пример #2
0
        public static bool HandleKeys()
        {
            int key = Terminal.Read();

            switch (currentPhase)
            {
            case battlephase.choose:
                if (key == Terminal.TK_LEFT)
                {
                    arrowDir = arrowDirection.left;
                }
                if (key == Terminal.TK_RIGHT)
                {
                    arrowDir = arrowDirection.right;
                }
                if (key == Terminal.TK_UP)
                {
                    arrowDir = arrowDirection.up;
                }
                if (key == Terminal.TK_DOWN)
                {
                    arrowDir = arrowDirection.down;
                }

                if (key == Terminal.TK_ENTER)
                {
                    if (arrowDir != arrowDirection.none)
                    {
                        currentPhase = battlephase.move;
                    }
                }

                break;

            case battlephase.move:
                // MOVE
                if (key == Terminal.TK_ENTER)
                {
                    if (path.Count == 0)
                    {
                        currentPhase = battlephase.drawknock;
                    }
                    else
                    {
                        Vector2 vec = new Vector2(path[0].X, path[0].Y);
                        playerPosition = vec;
                    }
                }
                break;

            case battlephase.knock:
                if (key == Terminal.TK_ENTER)
                {
                    if (knockPower == 0)
                    {
                        state++;
                        knockPower   = 2;
                        currentPhase = battlephase.choose;
                    }
                    else
                    {
                        Vector2 vec = new Vector2(path[0].X, path[0].Y);
                        enemyPosition = vec;
                        knockPower--;
                    }
                }

                break;

            default:
                break;
            }

            return(false);
        }