示例#1
0
        private int getGreatestDirection(KeyHandler keyHandler)
        {
            int greatest = 0;
            int time = keyHandler.getUpTime();

            if (keyHandler.getDownTime() > time)
            {
                greatest = 1;
                time = keyHandler.getDownTime();
            }

            if (keyHandler.getRightTime() > time)
            {
                greatest = 2;
                time = keyHandler.getRightTime();
            }

            if (keyHandler.getLeftTime() > time)
            {
                greatest = 3;
                time = keyHandler.getLeftTime();
            }

            if (time == 0)
            {
                return -1;
            }
            else
            {
                //Console.WriteLine("Greatest: " + greatest);
                return greatest;
            }
        }
示例#2
0
        public void continueChatWindow(GameInit gameInit, KeyHandler keyHandler)
        {
            chatCounter++;

            if (chatCounter > CHAT_THRESHOLD)
            {
                if (keyHandler.isActionReady())
                {
                    chatObject.advanceMessage(gameInit);

                    if (!chatObject.showChatWindow())
                    {
                        chatWindow = false;
                        gameInit.getFreeRoamState().setChatWindow(false);
                    }
                    else
                    {
                        chatObject.talk(gameInit);
                    }

                    if (chatObject.giveItem())
                    {
                        chatObject.noItem();
                    }
                }
                else if (keyHandler.isBackReady())
                {
                    chatObject.backAdvanceMessage(gameInit);

                    if (!chatObject.showChatWindow())
                    {
                        chatWindow = false;
                        gameInit.getFreeRoamState().setChatWindow(false);
                    }
                    else
                    {
                        chatObject.talk(gameInit);
                    }

                    if (chatObject.giveItem())
                    {
                        chatObject.noItem();
                    }
                }
                else if (keyHandler.getUpTime() >= keyHandler.getDownTime())
                {
                    if (keyHandler.getUpTime() >= 3)
                    {
                        chatObject.moveUpOptionIndex(gameInit);
                    }
                }
                else if (keyHandler.getDownTime() >= 3)
                {
                    chatObject.moveDownOptionIndex(gameInit);
                }
            }
            else
            {
                if (keyHandler.getUpTime() >= keyHandler.getDownTime())
                {
                    if (keyHandler.getUpTime() >= 3)
                    {
                        chatObject.moveUpOptionIndex(gameInit);
                    }
                }
                else if (keyHandler.getDownTime() >= 3)
                {
                    chatObject.moveDownOptionIndex(gameInit);
                }
            }
        }
示例#3
0
        public bool checkMove(GameInit gameInit, KeyHandler keyHandler, ContentHandler content)
        {
            int direction = getGreatestDirection(keyHandler);

            if (direction == 0)
            {
                gameInit.getParty().getPartyMembers()[0].setFacingDirection(0);
                if (keyHandler.getUpTime() < TURN_THRESHOLD)
                {
                    return false;
                }
                else
                {
                    if (checkHeight(gameInit, -1, 0) && checkAvailability(gameInit, -1, 0))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            else if (direction == 1)
            {
                gameInit.getParty().getPartyMembers()[0].setFacingDirection(1);
                if (keyHandler.getDownTime() < TURN_THRESHOLD)
                {
                    return false;
                }
                else
                {
                    if (checkHeight(gameInit, 1, 0) && checkAvailability(gameInit, 1, 0))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            else if (direction == 2)
            {
                gameInit.getParty().getPartyMembers()[0].setFacingDirection(2);
                if (keyHandler.getRightTime() < TURN_THRESHOLD)
                {
                    return false;
                }
                else
                {
                    if (checkHeight(gameInit, 0, -1) && checkAvailability(gameInit, 0, -1))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            else if (direction == 3)
            {
                gameInit.getParty().getPartyMembers()[0].setFacingDirection(3);
                if (keyHandler.getLeftTime() < TURN_THRESHOLD)
                {
                    return false;
                }
                else
                {
                    if (checkHeight(gameInit, 0, 1) && checkAvailability(gameInit, 0, 1))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            else
            {
                return false;
            }
        }