Exemplo n.º 1
0
        public override void update()
        {
            if (focused)
            {
                if (TCODConsole.isKeyPressed(TCODKeyCode.Enter))
                {
                    if (entries.Count > selectedEntry)
                    {
                        entries[selectedEntry].function();
                    }
                }

                if (TCODConsole.isKeyPressed(TCODKeyCode.Up))
                {
                    if (!oldup)
                    {
                        if (selectedEntry > 0)
                        {
                            selectedEntry--;
                        }
                    }
                    oldup = true;
                }
                else
                {
                    oldup = false;
                }

                if (TCODConsole.isKeyPressed(TCODKeyCode.Down))
                {
                    if (!olddown)
                    {
                        if (selectedEntry < entries.Count - 1)
                        {
                            selectedEntry++;
                        }
                    }
                    olddown = true;
                }
                else
                {
                    olddown = false;
                }
            }
            base.update();
        }
Exemplo n.º 2
0
 /// <summary>
 /// Returns true if the specified <paramref name="key"/> is currently being
 /// pushed.  This method is here for non-standard use of the framework - it is
 /// typically better to use the normal keyboard messaging system provided by
 /// components.
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 public static bool IsKeyDown(TCODKeyCode key)
 {
     return(TCODConsole.isKeyPressed(key));
 }
Exemplo n.º 3
0
        public override void update()
        {
            if (player.isDead())
            {
                player.getDestructible().die(player);
                return;
            }

            handleActionKey(Program.engine.key);
            if (!inventory)
            {
                float dx = 0, dy = 0;
                switch (Program.engine.key.KeyCode)
                {
                case TCODKeyCode.Up:
                case TCODKeyCode.Down:
                case TCODKeyCode.Left:
                case TCODKeyCode.Right:
                    if (TCODConsole.isKeyPressed(TCODKeyCode.Up))
                    {
                        dy = -speed;
                    }
                    if (TCODConsole.isKeyPressed(TCODKeyCode.Down))
                    {
                        dy = speed;
                    }
                    if (TCODConsole.isKeyPressed(TCODKeyCode.Left))
                    {
                        dx = -speed;
                    }
                    if (TCODConsole.isKeyPressed(TCODKeyCode.Right))
                    {
                        dx = speed;
                    }
                    break;

                default: break;
                }
                if (dx != 0 || dy != 0)
                {
                    float _speed = speed;


                    if (dx > 0)
                    {
                        gainedSpeed[0] += dx;
                    }
                    if (dx < 0)
                    {
                        gainedSpeed[1] += -dx;
                    }
                    if (dy > 0)
                    {
                        gainedSpeed[2] += dy;
                    }
                    if (dy < 0)
                    {
                        gainedSpeed[3] += -dy;
                    }
                    int x = 0, y = 0;
                    if (gainedSpeed[0] >= 1)
                    {
                        x += 1;
                        gainedSpeed[0] -= 1;
                    }
                    if (gainedSpeed[1] >= 1)
                    {
                        x -= 1;
                        gainedSpeed[1] -= 1;
                    }
                    if (gainedSpeed[2] >= 1)
                    {
                        y += 1;
                        gainedSpeed[2] -= 1;
                    }
                    if (gainedSpeed[3] >= 1)
                    {
                        y -= 1;
                        gainedSpeed[3] -= 1;
                    }
                    Program.engine.gameStatus = GameStatus.NEW_TURN;

                    if (x != 0 || y != 0)
                    {
                        if (moveOrAttack(player, player.x + x, player.y + y))
                        {
                            Program.engine.map.updateDynFov = true;
                            if (player.x - Program.engine.map.offsetX - Program.engine.map.renderX < MAX_LENGTH_TO_MAP_EDGE)
                            {
                                Program.engine.map.offsetX  -= MAX_LENGTH_TO_MAP_EDGE - 1;
                                Program.engine.map.updateFov = true;
                            }
                            if (player.y - Program.engine.map.offsetY - Program.engine.map.renderY < MAX_LENGTH_TO_MAP_EDGE)
                            {
                                Program.engine.map.offsetY  -= MAX_LENGTH_TO_MAP_EDGE - 1;
                                Program.engine.map.updateFov = true;
                            }
                            if (player.x - Program.engine.map.offsetX - Program.engine.map.renderX > Program.engine.map.renderWidth - MAX_LENGTH_TO_MAP_EDGE)
                            {
                                Program.engine.map.offsetX  += MAX_LENGTH_TO_MAP_EDGE - 1;
                                Program.engine.map.updateFov = true;
                            }
                            if (player.y - Program.engine.map.offsetY - Program.engine.map.renderY > Program.engine.map.renderHeight - MAX_LENGTH_TO_MAP_EDGE)
                            {
                                Program.engine.map.offsetY  += MAX_LENGTH_TO_MAP_EDGE - 1;
                                Program.engine.map.updateFov = true;
                            }
                        }
                        else
                        {
                        }
                    }
                }
            }
            base.update();
        }
Exemplo n.º 4
0
        public override void update()
        {
            if (selected)
            {
                if (scrollOffset > 0)
                {
                    moreUp = true;
                }
                else
                {
                    moreUp = false;
                }

                if (scrollOffset + maxLineSpace < lineNum)
                {
                    moreDown = true;
                }
                else
                {
                    moreDown = false;
                }

                upTimer++;
                if (upTimer > upInterval)
                {
                    if (TCODConsole.isKeyPressed(TCODKeyCode.Up))
                    {
                        if (upInterval > 0)
                        {
                            upInterval--;
                        }
                        if (selectedLineNum > 0)
                        {
                            selectedLineNum--;
                        }
                        scrollUp();
                    }
                    else
                    {
                        upInterval = maxInterval;
                    }
                    upTimer = 0;
                }
                downTimer++;
                if (downTimer > downInterval)
                {
                    if (TCODConsole.isKeyPressed(TCODKeyCode.Down))
                    {
                        if (downInterval > 0)
                        {
                            downInterval--;
                        }
                        if (selectedLineNum < lineNum - 1)
                        {
                            selectedLineNum++;

                            scrollDown();
                        }
                    }
                    else
                    {
                        downInterval = maxInterval;
                    }
                    downTimer = 0;
                }
            }
            if (selectedLineNum >= lineNum && lineNum > 0)
            {
                selectedLineNum = lineNum - 1;
            }
        }
Exemplo n.º 5
0
Arquivo: Game.cs Projeto: rezich/zday
        public void Update()
        {
            if (Player.TurnTimeout == 0)
            {
                var   key  = TCODConsole.waitForKeypress(true);
                Point dest = new Point(Player.Position.X, Player.Position.Y);
                switch (key.KeyCode)
                {
                case TCODKeyCode.Escape:
                    Over = true;
                    return;

                case TCODKeyCode.KeypadFour:
                case TCODKeyCode.Left:
                    dest.X--;
                    break;

                case TCODKeyCode.KeypadEight:
                case TCODKeyCode.Up:
                    dest.Y--;
                    break;

                case TCODKeyCode.KeypadSix:
                case TCODKeyCode.Right:
                    dest.X++;
                    break;

                case TCODKeyCode.KeypadTwo:
                case TCODKeyCode.Down:
                    dest.Y++;
                    break;

                case TCODKeyCode.KeypadSeven:
                    dest.X--;
                    dest.Y--;
                    break;

                case TCODKeyCode.KeypadNine:
                    dest.X++;
                    dest.Y--;
                    break;

                case TCODKeyCode.KeypadOne:
                    dest.X--;
                    dest.Y++;
                    break;

                case TCODKeyCode.KeypadThree:
                    dest.X++;
                    dest.Y++;
                    break;

                case TCODKeyCode.KeypadDecimal:
                case TCODKeyCode.KeypadFive:
                    if (Player.Stamina < Player.MaxStamina)
                    {
                        Player.Stamina = Math.Min(Player.Stamina + 10, Player.MaxStamina);
                    }
                    if (Player.HP < Player.MaxHP && Game.Current.RNG.Next(8) == 0)
                    {
                        Player.HP = Math.Min(Player.HP + 1, Player.MaxHP);
                    }
                    break;

                case TCODKeyCode.Enter:
                    if (TCODConsole.isKeyPressed(TCODKeyCode.Alt))
                    {
                        TCODConsole.setFullscreen(!TCODConsole.isFullscreen());
                    }
                    break;
                }
                if ((dest.X != Player.Position.X || dest.Y != Player.Position.Y) && Player.Stamina > 0)
                {
                    Player.MoveToPosition(dest);
                    Player.Stamina--;
                    Player.TurnTimeout += 5 - Player.Speed;
                }
            }
            foreach (Character c in Area.Current.Characters)
            {
                c.Update();
            }
            foreach (Decal d in Area.Current.Decals)
            {
                d.Update();
            }
            if (Player.HP < 1)
            {
                Console.WriteLine("GAME OVER");
                Draw();
                while (true)
                {
                    if (TCODConsole.waitForKeypress(true).KeyCode == TCODKeyCode.Escape)
                    {
                        Over = true;
                        break;
                    }
                }
            }
        }