/// <summary> /// Handles where to send what control to send the Input to, either /// a character, or a menu etc /// </summary> /// <param name="state">Where to send the input.</param> public void InputManager(GameState state) { kbState = Keyboard.GetState(); //if the game is in the main gameplay mode if (state.GetType() == typeof(GameStateMain)) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); else if (kbState.IsKeyDown(Keys.Escape)) { this.Exit(); } else if (kbState.IsKeyDown(Keys.F) && oldKbState.IsKeyUp(Keys.F)) { FeedAction feeding = new FeedAction(session.user); screenBG = Color.Aqua; feeding.FeedPet(session.pet, new FoodFruit()); } else if (kbState.IsKeyDown(Keys.Space) && oldKbState.IsKeyUp(Keys.Space)) { mSprite.GoToNextFrame(); } } oldKbState = kbState; }
/// <summary> /// Is the main initialization of the game /// </summary> public static void GameMain(CurrentSession session) { //debugging stuff //end debugging //Intro to the app Console.Title = Meta.name_ver; Console.BackgroundColor = defaultBG; Console.ForegroundColor = defaultFG; //Print intro line string welcomeString = "Welcome to the PET GAME version: {0}\n\n"; string welcomeArg = Meta.ver; Tools.Print(ConsoleColor.Black, ConsoleColor.White, welcomeString, welcomeArg); //Creates a session instance with a default user //CurrentSession session = new CurrentSession(); //user.inventory.AddItem(new FoodApple()); //user.inventory.AddItem(new FoodMeat()); //Intro message Tools.Print(newFG: ConsoleColor.DarkBlue, newBG: ConsoleColor.Cyan, text: "\nThis is the main loop for the game. \n" + "It is here that you'll feed or fight your" + "\npet in order to train the shit out of it" + "\n\n\n\t\tBEGIN!\n"); //main loop while (true) { //give the user a choice of actions. string choices = "\t[f]eed, [b]attle, [t]hrow, [s]tats or [q]uit."; KeyValuePair<string, string> action = getUserAction(choices); //feed the pet if (action.Value == "feed") { //this is a real shitty way of doing this. There // shouldn't be a class all on its own... :( FeedAction feeding = new FeedAction(session.user); session.user.inventory.ShowInventory(); string choice = Tools.Prompt("Choose a key from your items to feed"); char charChoice = (char)choice[0]; feeding.FeedPet(session.pet, session.user.inventory.items[charChoice] as FoodType); //feeding.FeedPet(yourPet, new FoodMeat()); } //check stats of the current pet else if (action.Value == "stats") { StatAction stats = new StatAction(session.user); stats.CheckPetStats(session.pet); } else if (action.Value == "throw") { Tools.Print(newBG:ConsoleColor.DarkRed, text:"You throw your pet against the wall\n"); session.pet.battle.TakeDamage(10); } else if (action.Value == "battle") { Creature enemy = new Creature(); BattleAction battle = new BattleAction(session.user); battle.BattlePet(session.pet, enemy); } //quit the main loop else if (action.Value == "quit") { break; } //Tools.Print(newFG: ConsoleColor.Yellow, text:"This was the action chosen: {0}\n", vals:action); } //Wait for Key on exit Tools.Print(ConsoleColor.DarkRed, ConsoleColor.DarkYellow, "Press any key to exit {0}", Meta.name_ver); Console.ReadKey(); }