public bool ProcessInput(libtcodWrapper.KeyPress KP) { switch (KP.KeyCode) { case (libtcodWrapper.KeyCode.TCODK_UP): if (Scrollability == Guardian_Roguelike.Utilities.MessageLogScrollPossibilities.Both || Scrollability == Guardian_Roguelike.Utilities.MessageLogScrollPossibilities.Up) { ScrollValue--; } break; case (libtcodWrapper.KeyCode.TCODK_DOWN): if (Scrollability == Guardian_Roguelike.Utilities.MessageLogScrollPossibilities.Both || Scrollability == Guardian_Roguelike.Utilities.MessageLogScrollPossibilities.Down) { ScrollValue++; } break; case (libtcodWrapper.KeyCode.TCODK_ESCAPE): StateManager.QueueState(StateManager.PersistentStates["GameState"]); return(true); break; case (libtcodWrapper.KeyCode.TCODK_ENTER): StateManager.QueueState(StateManager.PersistentStates["GameState"]); return(true); break; } return(false); }
public bool ProcessInput(libtcodWrapper.KeyPress KP) { if (KP.KeyCode == libtcodWrapper.KeyCode.TCODK_ENTER || KP.KeyCode == libtcodWrapper.KeyCode.TCODK_ESCAPE) { StateManager.PersistentStates["GameState"] = new GameState(); StateManager.QueueState(StateManager.PersistentStates["MainMenuState"]); return(true); } return(false); }
private bool ProcessInput(libtcodWrapper.KeyPress KP) { switch (KP.KeyCode) { case (libtcodWrapper.KeyCode.TCODK_ESCAPE): FollowingState = States.StateManager.PersistentStates["GameState"]; return(true); break; } return(false); }
private bool ProcessInput(libtcodWrapper.KeyPress KP) { switch (KP.KeyCode) { case (libtcodWrapper.KeyCode.TCODK_ENTER): switch (SelectedMenuItem) { case (0): //New Game StateManager.QueueState(States.StateManager.PersistentStates["GameState"]); return(true); break; case (1): //Quit StateManager.QueueState(States.StateManager.PersistentStates["QuitState"]); return(true); break; } break; case (libtcodWrapper.KeyCode.TCODK_DOWN): if (SelectedMenuItem == (MenuItems.Count - 1)) { SelectedMenuItem = 0; } else { SelectedMenuItem++; } break; case (libtcodWrapper.KeyCode.TCODK_UP): if (SelectedMenuItem == 0) { SelectedMenuItem = (MenuItems.Count - 1); } else { SelectedMenuItem--; } break; } return(false); }
private bool ProcessInput(libtcodWrapper.KeyPress KP) { if (CurMode == Modes.Swinging) { World.DestroyResults DR = Guardian_Roguelike.World.DestroyResults.Cancelled; switch (KP.KeyCode) { case (libtcodWrapper.KeyCode.TCODK_HOME): if (CurrentLevel.CheckContainsCreature(Player.Position.X - 1, Player.Position.Y - 1)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X - 1, Player.Position.Y - 1)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X - 1, Player.Position.Y - 1); Player.MoveUpLeft(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_UP): if (CurrentLevel.CheckContainsCreature(Player.Position.X, Player.Position.Y - 1)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X, Player.Position.Y - 1)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X, Player.Position.Y - 1); Player.MoveUp(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_PAGEUP): if (CurrentLevel.CheckContainsCreature(Player.Position.X + 1, Player.Position.Y - 1)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X + 1, Player.Position.Y - 1)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X + 1, Player.Position.Y - 1); Player.MoveUpRight(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_RIGHT): if (CurrentLevel.CheckContainsCreature(Player.Position.X + 1, Player.Position.Y)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X + 1, Player.Position.Y)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X + 1, Player.Position.Y); Player.MoveRight(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_PAGEDOWN): if (CurrentLevel.CheckContainsCreature(Player.Position.X + 1, Player.Position.Y + 1)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X + 1, Player.Position.Y + 1)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X + 1, Player.Position.Y + 1); Player.MoveDownRight(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_DOWN): if (CurrentLevel.CheckContainsCreature(Player.Position.X, Player.Position.Y + 1)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X, Player.Position.Y + 1)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X, Player.Position.Y + 1); Player.MoveDown(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_END): if (CurrentLevel.CheckContainsCreature(Player.Position.X - 1, Player.Position.Y + 1)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X - 1, Player.Position.Y + 1)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X - 1, Player.Position.Y + 1); Player.MoveDownLeft(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_LEFT): if (CurrentLevel.CheckContainsCreature(Player.Position.X - 1, Player.Position.Y)) { Player.Attack(CurrentLevel.GetCreatureAt(Player.Position.X - 1, Player.Position.Y)); CurMode = Modes.Normal; } else { DR = CurrentLevel.DestroyTile(Player.Position.X - 1, Player.Position.Y); Player.MoveLeft(); CurMode = Modes.HasDug; SkipTurns = 2; } break; case (libtcodWrapper.KeyCode.TCODK_ESCAPE): CurMode = Modes.Normal; break; } //Digging was attempted, add appropriate message to log if (CurMode == Modes.HasDug) { switch (DR) { case (World.DestroyResults.AlreadyEmpty): Utilities.MessageLog.AddMsg("You swing at the air,predictably hitting nothing, and stumble forward."); break; case (World.DestroyResults.Cancelled): Utilities.MessageLog.AddMsg("You lower your pick again."); break; case (World.DestroyResults.Indestructible): Utilities.MessageLog.AddMsg("You swing with all your strength, but the pick bounces off the wall without doing damage.", libtcodWrapper.Color.FromRGB(255, 0, 0)); break; case (World.DestroyResults.Success): Utilities.MessageLog.AddMsg("The rock crumbles under the might of your pick."); break; } CurMode = Modes.Normal; } return(false); } switch (KP.KeyCode) { case (libtcodWrapper.KeyCode.TCODK_HOME): Player.MoveUpLeft(); break; case (libtcodWrapper.KeyCode.TCODK_UP): Player.MoveUp(); break; case (libtcodWrapper.KeyCode.TCODK_PAGEUP): Player.MoveUpRight(); break; case (libtcodWrapper.KeyCode.TCODK_RIGHT): Player.MoveRight(); break; case (libtcodWrapper.KeyCode.TCODK_PAGEDOWN): Player.MoveDownRight(); break; case (libtcodWrapper.KeyCode.TCODK_DOWN): Player.MoveDown(); break; case (libtcodWrapper.KeyCode.TCODK_END): Player.MoveDownLeft(); break; case (libtcodWrapper.KeyCode.TCODK_LEFT): Player.MoveLeft(); break; case (libtcodWrapper.KeyCode.TCODK_ESCAPE): StateManager.QueueState(StateManager.PersistentStates["MainMenuState"]); return(true); break; } switch ((char)KP.Character) { case ('m'): //View Messagelog StateManager.QueueState(StateManager.PersistentStates["MessageLogMenuState"]); return(true); break; case ('d'): //Debug key Utilities.MessageLog.AddMsg(CurrentLevel.Creatures[1].FirstName + " is in " + ((global::Guardian_Roguelike.AI.FSM_Aggressive)CurrentLevel.Creatures[1].MyAI).CurState.ToString() + " mode " + CurrentLevel.Creatures[1].Position.ToString()); System.Windows.Forms.MessageBox.Show(MakeLimbStatusString(CurrentLevel.Creatures[1])); break; case ('t'): //All-round testing button //Enter Portal if (CurrentLevel.CheckType(Player.Position) == Guardian_Roguelike.World.TerrainTypes.ExitPortal) { MakeNewMap(); Utilities.MessageLog.AddMsg("You descend deeper into the pit..."); } else { Utilities.MessageLog.AddMsg("There are no stairs here!"); } break; case ('s'): //Swing //TODO: Check what is wielded.Assumes pick for now Utilities.MessageLog.AddMsg("Swing in which direction?"); CurMode = Modes.Swinging; SkipAI = true; break; case ('l'): //Look CurrentLevel.CalculateVisible(Player.Position, Player.BaseAim); CurrentLevel.PostLookMessages(); break; } return(false); }