/// <summary> /// Checks for plants /// </summary> /// <param name="universe"></param> /// <param name="adventurer"></param> public static void CheckForFoiliage(Universe universe, Adventurer adventurer) { foreach (Foiliage plant in universe.FoiliageList) { if (plant.Location == adventurer.MapLocation) { switch (plant.Plant) { case Foiliage.plantType.Tree: DisplayMap.DisplayTree(plant.XPos, plant.YPos); break; case Foiliage.plantType.Grass: DisplayMap.DisplayPlantBasic(plant.XPos, plant.YPos, plant.CharIcon); break; case Foiliage.plantType.Flower: break; case Foiliage.plantType.Field: DisplayMap.DisplayPlantGrass(plant.XPos, plant.XEnd, plant.YPos, plant.YEnd, plant.CharIcon); break; case Foiliage.plantType.Fountain: TextDrawings.DisplayFountain(plant.XPos, plant.YPos); break; default: break; } } } }
//make a loop to hold player movement and other values public static bool GameLoop(Adventurer adventurer, Universe universe) { Random random = new Random(); int encounter = 0; bool playing = true; bool win = false; TextBoxViews.DisplayPlayerInfo(adventurer); TextBoxViews.DisplayHeader(); Console.CursorVisible = false; while (playing) { TextBoxViews.DisplayPosition(adventurer); playing = Map.movement(adventurer, universe); Map.CheckPosition(adventurer, universe); encounter = random.Next(1, 30); if (encounter < 2 && adventurer.MapLocation == Humanoid.Location.MainWorld) { Slime slime = new Slime(); Slime.InitializeNewSlime(slime); playing = Battle.BattleLoop(adventurer, universe, slime); } if (universe.TripleTrouble[0].Defeated && universe.TripleTrouble[1].Defeated && universe.TripleTrouble[2].Defeated) { adventurer.playerWin = true; playing = false; } if (adventurer.diedOnFinal) { playing = false; } } return(win); }
public static void DisplayHouses(Universe universe, Adventurer adventurer) { if (adventurer.MapLocation != Humanoid.Location.MainWorld) { foreach (House house in universe.HouseList) { if (adventurer.MapLocation == house.HouseLoc) { switch (adventurer.MapLocation) { case Humanoid.Location.TutTown: DisplayHouse(house.Xpos, house.Ypos, house.HouseColor); break; case Humanoid.Location.CherryGrove: DisplayHouse(house.Xpos, house.Ypos, house.HouseColor); break; default: break; } } } } }
public static void QuestGiver(Adventurer adventurer) { Console.SetCursorPosition(110, 20); Console.Write("QUEST: " + adventurer.CurrentQuest); Console.SetCursorPosition(110, 22); Console.Write(" "); }
public static void DisplayPosition(Adventurer adventurer) { Console.SetCursorPosition(110, 20); Console.Write("X: " + adventurer.Xpos + " "); Console.SetCursorPosition(110, 21); Console.Write("Y: " + adventurer.Ypos + " "); }
public static void CheckPosition(Adventurer adventurer, Universe universe) { //checks for current quest and if you complete the quest or not Check.CheckPlayerQuest(universe, adventurer); //Checks what map you are on and then Draws the correct entities to the screen Check.CheckPlayerPosition(universe, adventurer); //checks whether to draw house stuff or not if (!adventurer.InaHouse) { DisplayMapObjects(adventurer, universe); } else if (adventurer.InaHouse) { foreach (var house in universe.HouseList) { if (house.PlayerInside) { DisplayMap.DisplayHouseInside(universe); Check.CheckNPCMap(universe, adventurer.InHouseName); DisplayMap.DisplayNPC(universe); Check.CheckAndDisplayItemMap(universe, adventurer); //Handles all objects in the "rooms" //NEW IDEA, Hows bout thats annoying and no Check.CheckandDisplayRoomObjects(universe, adventurer); } } } }
public static void CheckAndPickupItem(Universe universe, Adventurer adventurer) { int checkx = adventurer.Xpos; int checky = adventurer.Ypos; switch (adventurer.LookDirection) { case Humanoid.Direction.LEFT: checkx--; break; case Humanoid.Direction.RIGHT: checkx++; break; case Humanoid.Direction.UP: checky--; break; case Humanoid.Direction.DOWN: checky++; break; default: break; } foreach (var item in universe.ItemList) { if ((item.houseLoc != House.houseName.None) && (item.houseLoc == adventurer.InHouseName)) { if (!item.itemTaken) { if ((item.XPos == checkx) && (item.YPos == checky)) { item.itemTaken = true; adventurer.ItemsDictionary[item.ItemType] += 1; DisplayMap.DisplayItemToPickup(item.XPos, item.YPos, item.itemTaken); TextBoxViews.WriteToMessageBox(universe, "You picked up a " + item.ItemType.ToString()); } } } else if (item.worldLoc == adventurer.MapLocation) { if (!item.itemTaken) { //matches locations if ((item.XPos == checkx) && (item.YPos == checky)) { item.itemTaken = true; adventurer.ItemsDictionary[item.ItemType] += 1; DisplayMap.DisplayItemToPickup(item.XPos, item.YPos, item.itemTaken); TextBoxViews.WriteToMessageBox(universe, "You picked up a " + item.ItemType.ToString()); } } } } }//End of last Method
public static bool BattleLoop(Adventurer adventurer, Universe universe, Slime slime) { TextBoxViews.ClearMapBox(); TextBoxViews.RedrawBox(universe, 6); bool blocked; bool stillAlive = true; TextBoxViews.ReWriteToMessageBox(universe, "A slime attacks!"); Random random = new Random(); do { TextDrawings.DisplaySlime(slime); TextBoxViews.WriteToEvent("Slime : " + slime.Health); TextBoxViews.DisplayPlayerInfo(adventurer); blocked = Attack(adventurer, universe, slime); TextBoxViews.WriteToEvent("Slime : " + slime.Health); if (slime.Health > 0) { SlimeATK(adventurer, universe, slime, blocked); } } while ((adventurer.Health > 0) && (slime.Health > 0)); if (adventurer.Health > 0) { int coinDrop; int gelDrop; int expGain; coinDrop = random.Next(10, 30); gelDrop = random.Next(5, 15); expGain = random.Next(10, slime.ExpGiv); TextBoxViews.WriteToMessageBox(universe, $"You have succeeded in battle and have recieved {coinDrop} coins and {gelDrop} gel."); adventurer.Coins += coinDrop; adventurer.ItemsDictionary[Item.Items.SlimeGel] += gelDrop; adventurer.Experinece += expGain; if (adventurer.Experinece >= adventurer.MaxExperience) { Adventurer.PlayerLevelUp(adventurer, universe); } } else { stillAlive = false; } TextBoxViews.ClearMapBox(); TextBoxViews.RemoveContent(universe, 3); TextBoxViews.DisplayMenu(universe); TextBoxViews.DisplayPlayerInfo(adventurer); return(stillAlive); }
/// <summary> /// Checks for Furniture then displays it in the room you are in. /// </summary> /// <param name="universe"></param> /// <param name="adventurer"></param> public static void CheckandDisplayRoomObjects(Universe universe, Adventurer adventurer) { foreach (var furniture in universe.FurnitureList) { if (furniture.House == adventurer.InHouseName) { DisplayMap.DisplayHouseObjects(furniture.Xpos, furniture.Ypos, furniture.FurnituretOb); } } }
/// <summary> /// Prints where you have been in order /// </summary> /// <param name="adventurer"></param> /// <param name="universe"></param> public static void PlayerLocationss(Adventurer adventurer, Universe universe) { string message = "Where you have been. In order :"; foreach (var location in adventurer.PreviousLocations) { message += location.ToString(); message += ", "; } TextBoxViews.WriteToMessageBox(universe, message); }
/// <summary> /// USE THIS FOR TRIGGERING QUEST EVENTS /// </summary> /// <param name="adventurer"></param> /// <param name="universe"></param> /// <param name="quest"></param> public static void QuestTrigger(Adventurer adventurer, Universe universe, Adventurer.Quest quest) { //If this triggers true then ---Should have any extra checks? if (adventurer.CurrentQuest == quest) { if (!adventurer.QuestCompletion[adventurer.CurrentQuest]) { adventurer.QuestCompletion[adventurer.CurrentQuest] = true; } } }
public static void PlayerPotionHeal(Adventurer adventurer, Universe universe) { TextBoxViews.WriteToMessageBox(universe, "You drank the health potion and healed for 20 health"); adventurer.Health += 20; if (adventurer.Health > adventurer.MaxHealth) { adventurer.Health = adventurer.MaxHealth; } TextBoxViews.DisplayPlayerInfo(adventurer); }
public static void DisplayTowns(Universe universe, Adventurer adventurer) { if (adventurer.MapLocation == Humanoid.Location.MainWorld) { foreach (Towns town in universe.TownList) { Console.SetCursorPosition(town.Xpos, town.Ypos); Console.Write(town.MapIcon); } } }
public static void PlayerLevelUp(Adventurer adventurer, Universe universe) { adventurer.Experinece = 0; adventurer.MaxExperience += 30; adventurer.MaxHealth += 10; adventurer.Damage += 3; adventurer.PlayerLevel++; adventurer.Health = adventurer.MaxHealth; TextBoxViews.WriteToMessageBox(universe, $"You Leveled up! /n Max Health : {adventurer.MaxHealth} /n Damage : {adventurer.Damage}"); TextBoxViews.DisplayPlayerInfo(adventurer); }
public static void MovementRestriction(Adventurer adventurer, Universe universe, Humanoid.Direction direction) { if (adventurer.InaHouse) { if (!(adventurer.Xpos < universe.HouseLayouts[0].startXPos + 2) && (direction == Humanoid.Direction.LEFT)) { adventurer.Xpos--; } if (!(adventurer.Ypos < universe.HouseLayouts[0].startYPos + 2) && (direction == Humanoid.Direction.UP)) { adventurer.Ypos--; } if (!(adventurer.Xpos > universe.HouseLayouts[0].endXPos - 2) && (direction == Humanoid.Direction.RIGHT)) { adventurer.Xpos++; } if (!(adventurer.Ypos > universe.HouseLayouts[0].endYPos - 2) && (direction == Humanoid.Direction.DOWN)) { adventurer.Ypos++; } else if (adventurer.Xpos == 56 && adventurer.Ypos == 32 && (direction == Humanoid.Direction.DOWN)) { adventurer.Ypos++; } } else { if (!(adventurer.Xpos < 3) && (direction == Humanoid.Direction.LEFT)) { adventurer.Xpos--; } if (!(adventurer.Ypos < 7) && (direction == Humanoid.Direction.UP)) { adventurer.Ypos--; } if (!(adventurer.Xpos > 102) && (direction == Humanoid.Direction.RIGHT)) { adventurer.Xpos++; } if (!(adventurer.Ypos > 52) && (direction == Humanoid.Direction.DOWN)) { adventurer.Ypos++; } } }
/// <summary> /// Displays a merchant message and gets you to buy stuff /// </summary> /// <param name="universe"></param> /// <param name="adventurer"></param> public static void MerchantMessage(Universe universe, Adventurer adventurer) { RedrawBox(universe, 5); List <Item.Items> wares = new List <Item.Items>(); Console.SetCursorPosition(6, 46); Console.Write("Welcome, what can I get you?"); TextboxCursorBlink(); Map.MerchantBuy(universe, adventurer); ReWriteToMessageBox(universe, " Thank you for shopping " + adventurer.Name); ClearTextBox(); RemoveBox(universe, 5); DisplayMenu(universe); }
public static void DisplayPlayerInfo(Adventurer adventurer) { Console.SetCursorPosition(110, 10); Console.Write("Name: " + adventurer.Name); Console.SetCursorPosition(110, 11); Console.Write("Health: " + adventurer.Health + " "); Console.SetCursorPosition(110, 12); Console.Write("Age:" + adventurer.Age); Console.SetCursorPosition(110, 13); Console.Write("Race: " + adventurer.PlayerRace); Console.SetCursorPosition(110, 14); Console.Write("Certified weapon: " + adventurer.PlayerWeapon); Console.SetCursorPosition(110, 15); Console.Write("Coins: " + adventurer.Coins + " "); Console.SetCursorPosition(110, 16); Console.Write("Level: " + adventurer.PlayerLevel + " "); Console.SetCursorPosition(110, 17); Console.Write("Experience: " + adventurer.Experinece + " / " + adventurer.MaxExperience + " "); }
public static void StartGame() { bool didjaWin; Console.CursorVisible = false; Windows[] windows = new Windows[6]; Console.BackgroundColor = ConsoleColor.Gray; Console.ForegroundColor = ConsoleColor.Black; Console.SetWindowSize(150, 60); //WindowConfig.NumbersOnScreen(); TextBoxViews.SplashScreen(40, 25); Console.ReadLine(); Console.Clear(); windows = InitializeWindowScreens(); Universe universe = new Universe(); universe = universe.InitializeUniverse(windows); TextBoxViews.WriteToMessageBox(universe, "After defeating the slime king peace was returned to the land. But not all peace lasts forever, and a group of bandits have set up camp in a nearby cave and it is your job to take them out..."); Adventurer adventurer = new Adventurer(); adventurer = TextBoxViews.GetPlayerInfo(universe); TextBoxViews.DisplayMenu(universe); didjaWin = GameLoop(adventurer, universe); TextBoxViews.RedrawBox(universe, 5); if (adventurer.playerWin) { TextBoxViews.WriteToMessageBox(universe, "YOU WIN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); } else if (adventurer.diedOnFinal) { TextBoxViews.WriteToMessageBox(universe, "So close..."); } TextBoxViews.WriteToMessageBox(universe, "Game Over"); }
public static Adventurer DevPlayer() { Adventurer adventurer = new Adventurer(); adventurer.Name = "Winter"; adventurer.Age = 18; adventurer.PlayerRace = Adventurer.Race.Slime; adventurer.PlayerWeapon = Adventurer.Weapon.Bow; adventurer.Health = 100; adventurer.MaxHealth = 100; adventurer.MapLocation = Adventurer.Location.TutTown; adventurer.Xpos = 55; adventurer.Ypos = 26; adventurer.InaHouse = false; adventurer.InHouseName = House.houseName.None; adventurer.QuestCompletion = Adventurer.InstantiateQuests(); adventurer.InventoryPageNumber = 0; adventurer.Coins = 9000000; adventurer.ItemsDictionary = Adventurer.InstantiateInventory(); adventurer.PreviousLocations = new List <Humanoid.Location> { Humanoid.Location.TutTown }; adventurer.QuestDone = Adventurer.InstantiateQuestCompletionMessageCheck(); adventurer.playerWin = false; adventurer.Damage = 9; adventurer.CurrentQuest = Adventurer.Quest.MeetTheOldMan; adventurer.PlayerLevel = 1; adventurer.Experinece = 95; adventurer.MaxExperience = 100; adventurer.diedOnFinal = false; return(adventurer); }
public static void DisplayMapObjects(Adventurer adventurer, Universe universe) { switch (adventurer.MapLocation) { case Humanoid.Location.MainWorld: Check.CheckNPCMap(universe, Humanoid.Location.MainWorld); DisplayMap.DisplayTowns(universe, adventurer); Check.CheckForFoiliage(universe, adventurer); Check.CheckAndDisplayItemMap(universe, adventurer); break; case Humanoid.Location.TutTown: Check.CheckNPCMap(universe, Humanoid.Location.TutTown); DisplayMap.DisplayNPC(universe); DisplayMap.DisplayHouses(universe, adventurer); Check.CheckForFoiliage(universe, adventurer); Check.CheckAndDisplayItemMap(universe, adventurer); break; case Humanoid.Location.CherryGrove: Check.CheckNPCMap(universe, Humanoid.Location.CherryGrove); DisplayMap.DisplayNPC(universe); DisplayMap.DisplayHouses(universe, adventurer); Check.CheckForFoiliage(universe, adventurer); Check.CheckAndDisplayItemMap(universe, adventurer); break; case Humanoid.Location.Cave: Check.CheckNPCMap(universe, Humanoid.Location.Cave); DisplayMap.DisplayNPC(universe); Check.CheckAndDisplayItemMap(universe, adventurer); Check.CheckandDisplayCaveEnemies(universe); break; default: break; } }
/// <summary> /// Checks for it3ems then displays them onto the current map you are on /// </summary> /// <param name="universe"></param> /// <param name="adventurer"></param> public static void CheckAndDisplayItemMap(Universe universe, Adventurer adventurer) { bool noMapItems = false; foreach (var item in universe.ItemList) { if ((item.houseLoc != House.houseName.None) && (item.houseLoc == adventurer.InHouseName)) { if (!item.itemTaken) { DisplayMap.DisplayItemToPickup(item.XPos, item.YPos); noMapItems = true; } } else if (item.worldLoc == adventurer.MapLocation && !noMapItems) { if (!item.itemTaken) { DisplayMap.DisplayItemToPickup(item.XPos, item.YPos); } } } }
private static bool Attack(Adventurer adventurer, Universe universe, Slime slime) { Random random = new Random(); int damage = adventurer.Damage; bool blocking = false; bool tOb = true; string attackMsg = "You slap the slime, YEAH F*** THAT GUY. WOOOOOOOOOOOOOOOOOO"; if ((adventurer.PlayerWeapon == Adventurer.Weapon.BroadSword) || (adventurer.PlayerWeapon == Adventurer.Weapon.Sword)) { attackMsg = "You swing your " + adventurer.PlayerWeapon + " at the slime"; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Dagger)) { attackMsg = "You stabb the slime with your " + adventurer.PlayerWeapon; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Bow)) { attackMsg = "You shoot the slime with an arrow"; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Mace)) { attackMsg = "You hit the slime with your " + adventurer.PlayerWeapon; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Staff)) { attackMsg = "You cast a fire spell on the slime."; } // // PLAYER MENU // //New method for handling TextBoxViews.DisplayCustom(universe, new string[4] { " Attack", " Throw a Rock : " + adventurer.ItemsDictionary[Item.Items.Stone], " Block", "Use a potion : " + adventurer.ItemsDictionary[Item.Items.HealthPotion] }); TextBoxViews.ReWriteToMessageBox(universe, "Please choose an action...", true); while (tOb) { ConsoleKeyInfo key = Console.ReadKey(); switch (key.Key) { case ConsoleKey.D1: TextBoxViews.ReWriteToMessageBox(universe, attackMsg + " You dealt " + damage + " damage."); slime.Health -= damage; tOb = false; break; case ConsoleKey.D2: if (adventurer.ItemsDictionary[Item.Items.Stone] >= 1) { adventurer.ItemsDictionary[Item.Items.Stone]--; damage = 2; TextBoxViews.ReWriteToMessageBox(universe, "You throw a stone at the slime and deal " + damage.ToString() + " damage."); slime.Health -= damage; tOb = false; } else { TextBoxViews.ReWriteToMessageBox(universe, "You dont have any rocks to throw", true); } break; case ConsoleKey.D3: TextBoxViews.ReWriteToMessageBox(universe, "You get ready to block the slime's next attack."); blocking = true; tOb = false; break; case ConsoleKey.D4: if (adventurer.ItemsDictionary[Item.Items.HealthPotion] > 0) { adventurer.ItemsDictionary[Item.Items.HealthPotion]--; Adventurer.PlayerPotionHeal(adventurer, universe); tOb = false; } else { TextBoxViews.WriteToMessageBox(universe, "You don't have any health potions left"); } break; case ConsoleKey.NumPad1: TextBoxViews.ReWriteToMessageBox(universe, attackMsg + " You dealt " + damage + " damage."); tOb = false; break; case ConsoleKey.NumPad2: if (adventurer.ItemsDictionary[Item.Items.Stone] > 0) { adventurer.ItemsDictionary[Item.Items.Stone]--; damage = 2; TextBoxViews.ReWriteToMessageBox(universe, "You throw a stone at the slime and deal " + damage.ToString() + " damage."); slime.Health -= damage; tOb = false; } else { TextBoxViews.ReWriteToMessageBox(universe, "You dont have any stones to throw!"); } break; case ConsoleKey.NumPad3: TextBoxViews.ReWriteToMessageBox(universe, "You get ready to block the slime's next attack."); blocking = true; tOb = false; break; case ConsoleKey.NumPad4: if (adventurer.ItemsDictionary[Item.Items.HealthPotion] > 0) { adventurer.ItemsDictionary[Item.Items.HealthPotion]--; Adventurer.PlayerPotionHeal(adventurer, universe); tOb = false; } else { TextBoxViews.WriteToMessageBox(universe, "You don't have any health potions left"); } break; default: TextBoxViews.ReWriteToMessageBox(universe, "Please Choose an attack using the numbers on your keyboard.", true); break; } } return(blocking); }
/// <summary> /// Sets up an inventory to display in the Menu /// </summary> /// <param name="adventurer"></param> public static void InventoryManagment(Adventurer adventurer, Universe universe) { bool usingInventory = true; ConsoleKeyInfo key; Dictionary <Item.Items, int> itemList = new Dictionary <Item.Items, int>(); Item.Items[] itemarray = new Item.Items[10]; int i = 0; foreach (var item in adventurer.ItemsDictionary) { itemList.Add(item.Key, item.Value); itemarray[i] = item.Key; i++; } Item.Items itemToUse = Item.Items.Nothing; while (usingInventory) { TextBoxViews.RemoveContent(universe, 3); TextBoxViews.DisplayInventory(itemList); bool error = false; key = Console.ReadKey(); try { //remove use item from temp inventory switch (key.Key) { case ConsoleKey.D1: itemList[itemarray[0]] -= 1; itemToUse = itemarray[0]; break; case ConsoleKey.D2: itemList[itemarray[1]] -= 1; itemToUse = itemarray[1]; break; case ConsoleKey.D3: itemList[itemarray[2]] -= 1; itemToUse = itemarray[2]; break; case ConsoleKey.D4: itemList[itemarray[3]] -= 1; itemToUse = itemarray[3]; break; case ConsoleKey.D5: itemList[itemarray[4]] -= 1; itemToUse = itemarray[4]; break; case ConsoleKey.D6: itemList[itemarray[5]] -= 1; itemToUse = itemarray[5]; break; case ConsoleKey.D7: itemList[itemarray[6]] -= 1; itemToUse = itemarray[6]; break; case ConsoleKey.D8: itemList[itemarray[7]] -= 1; itemToUse = itemarray[7]; break; case ConsoleKey.D9: usingInventory = false; break; case ConsoleKey.NumPad1: itemList[itemarray[0]] -= 1; itemToUse = itemarray[0]; break; case ConsoleKey.NumPad2: itemList[itemarray[1]] -= 1; itemToUse = itemarray[1]; break; case ConsoleKey.NumPad3: itemList[itemarray[2]] -= 1; itemToUse = itemarray[2]; break; case ConsoleKey.NumPad4: itemList[itemarray[3]] -= 1; itemToUse = itemarray[3]; break; case ConsoleKey.NumPad5: itemList[itemarray[4]] -= 1; itemToUse = itemarray[4]; break; case ConsoleKey.NumPad6: itemList[itemarray[5]] -= 1; itemToUse = itemarray[5]; break; case ConsoleKey.NumPad7: itemList[itemarray[6]] -= 1; itemToUse = itemarray[6]; break; case ConsoleKey.NumPad8: itemList[itemarray[7]] -= 1; itemToUse = itemarray[7]; break; case ConsoleKey.NumPad9: usingInventory = false; break; case ConsoleKey.LeftArrow: usingInventory = false; break; case ConsoleKey.RightArrow: usingInventory = false; break; case ConsoleKey.UpArrow: usingInventory = false; break; case ConsoleKey.DownArrow: usingInventory = false; break; default: break; } } catch (Exception) { error = true; //No throwing in here } finally { //I decided im not dealing with the program deciding to add to nothing. tOb can keep trying though try { if (!error && !(key.Key == ConsoleKey.D9 || key.Key == ConsoleKey.NumPad9) && !(adventurer.ItemsDictionary[itemToUse] <= 0)) { switch (itemToUse) { case Item.Items.HealthPotion: Adventurer.PlayerPotionHeal(adventurer, universe); adventurer.ItemsDictionary[itemToUse] = itemList[itemToUse]; break; case Item.Items.ManaPotion: TextBoxViews.WriteToMessageBox(universe, "You feel all tingly inside"); adventurer.ItemsDictionary[itemToUse] = itemList[itemToUse]; break; case Item.Items.Stone: TextBoxViews.WriteToMessageBox(universe, "You throw the stone and it vanishes into the distance..."); adventurer.ItemsDictionary[itemToUse] = itemList[itemToUse]; break; case Item.Items.SlimeGel: TextBoxViews.WriteToMessageBox(universe, "You cannot use slime..."); itemList[itemToUse]++; break; case Item.Items.Parcel: TextBoxViews.WriteToMessageBox(universe, "You cannot use the parcel you are delivering!"); itemList[itemToUse]++; break; case Item.Items.Nothing: TextBoxViews.WriteToMessageBox(universe, "There is nothing there"); break; default: break; } } else if (!(key.Key == ConsoleKey.D9 || key.Key == ConsoleKey.NumPad9) && (itemList[itemToUse] < 0)) { TextBoxViews.WriteToMessageBox(universe, "You dont have that item"); itemList[itemToUse]++; } else if (!(key.Key == ConsoleKey.D9 || key.Key == ConsoleKey.NumPad9)) { TextBoxViews.WriteToMessageBox(universe, "You dont have that item"); } } catch (Exception) { } //End try catch inventory navigation } //end finally } //end using inventory while TextBoxViews.DisplayMenu(universe); }
public static Adventurer GetPlayerInfo(Universe universe) { Adventurer adventurer = new Adventurer(); ClearInputBox(); ReWriteToMessageBox(universe, "Please enter your name young one.", true); Console.SetCursorPosition(4, 56); adventurer.Name = Console.ReadLine(); ClearTextBox(); ClearErrorTextBox(); ReWriteToMessageBox(universe, "Please enter your age " + adventurer.Name, true); adventurer.Age = Validators.ValidInt(); ClearTextBox(); ClearErrorTextBox(); ReWriteToMessageBox(universe, "What race are you?", true); Console.SetCursorPosition(6, 47); Console.Write(Adventurer.Race.Human); Console.SetCursorPosition(6, 48); Console.Write(Adventurer.Race.Slime); Console.SetCursorPosition(6, 49); Console.Write(Adventurer.Race.Elve); Console.SetCursorPosition(6, 50); Console.Write(Adventurer.Race.Orc); adventurer.PlayerRace = Validators.RaceValidation(); ClearTextBox(); ClearErrorTextBox(); ReWriteToMessageBox(universe, "What Weapon will you use?", true); Console.SetCursorPosition(6, 47); Console.Write(Adventurer.Weapon.Bow); Console.SetCursorPosition(6, 48); Console.Write(Adventurer.Weapon.Sword); Console.SetCursorPosition(6, 49); Console.Write(Adventurer.Weapon.Staff); Console.SetCursorPosition(6, 50); Console.Write(Adventurer.Weapon.BroadSword); Console.SetCursorPosition(6, 51); Console.Write(Adventurer.Weapon.Dagger); Console.SetCursorPosition(6, 52); Console.Write(Adventurer.Weapon.Mace); adventurer.PlayerWeapon = Validators.WeaponValidation(); ClearTextBox(); ClearErrorTextBox(); adventurer.Health = 100; adventurer.MaxHealth = 100; adventurer.MapLocation = Adventurer.Location.TutTown; adventurer.Xpos = 55; adventurer.Ypos = 26; adventurer.InaHouse = false; adventurer.InHouseName = House.houseName.None; adventurer.QuestCompletion = Adventurer.InstantiateQuests(); adventurer.PreviousLocations = new List <Humanoid.Location> { Humanoid.Location.TutTown }; adventurer.Coins = 20; adventurer.ItemsDictionary = Adventurer.InstantiateInventory(); adventurer.QuestDone = Adventurer.InstantiateQuestCompletionMessageCheck(); if ((adventurer.PlayerWeapon == Adventurer.Weapon.BroadSword) || (adventurer.PlayerWeapon == Adventurer.Weapon.Sword)) { adventurer.Damage = 7; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Dagger)) { adventurer.Damage = 5; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Bow)) { adventurer.Damage = 9; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Mace)) { adventurer.Damage = 11; } else if ((adventurer.PlayerWeapon == Adventurer.Weapon.Staff)) { adventurer.Damage = 10; } adventurer.playerWin = false; adventurer.PlayerLevel = 1; adventurer.Experinece = 0; adventurer.MaxExperience = 100; adventurer.CurrentQuest = Adventurer.Quest.MeetTheOldMan; adventurer.diedOnFinal = false; RemoveBox(universe, 5); return(adventurer); }
/// <summary> /// Lets you purchase from a merchant /// </summary> /// <param name="universe"></param> /// <param name="adventurer"></param> public static void MerchantBuy(Universe universe, Adventurer adventurer) { ConsoleKeyInfo consoleKey; bool keepShopping = true; Dictionary <Item.Items, int> itemToPurchase = new Dictionary <Item.Items, int>(); TextBoxViews.MerchMenu(universe); Item.Items item = Item.Items.SlimeGel; while (keepShopping) { bool purchase = false; bool chooseSomething = true; int cost = 0; while (chooseSomething) { consoleKey = Console.ReadKey(); switch (consoleKey.Key) { case ConsoleKey.NumPad1: item = Item.Items.HealthPotion; itemToPurchase[item] = HowMany(universe, Item.Items.HealthPotion); cost = 20 * itemToPurchase[item]; chooseSomething = false; break; case ConsoleKey.D1: item = Item.Items.HealthPotion; itemToPurchase[item] = HowMany(universe, Item.Items.HealthPotion); cost = 20 * itemToPurchase[item]; chooseSomething = false; break; case ConsoleKey.NumPad2: item = Item.Items.ManaPotion; itemToPurchase[item] = HowMany(universe, Item.Items.ManaPotion); cost = 20 * itemToPurchase[item]; chooseSomething = false; break; case ConsoleKey.D2: item = Item.Items.ManaPotion; itemToPurchase[item] = HowMany(universe, Item.Items.ManaPotion); cost = 20 * itemToPurchase[item]; chooseSomething = false; break; case ConsoleKey.NumPad3: item = Item.Items.Stone; itemToPurchase[item] = HowMany(universe, Item.Items.Stone); cost = 2 * itemToPurchase[item]; chooseSomething = false; break; case ConsoleKey.D3: item = Item.Items.Stone; itemToPurchase[item] = HowMany(universe, Item.Items.Stone); cost = 2 * itemToPurchase[item]; chooseSomething = false; break; case ConsoleKey.NumPad9: keepShopping = false; chooseSomething = false; break; case ConsoleKey.D9: keepShopping = false; chooseSomething = false; break; case ConsoleKey.LeftArrow: keepShopping = false; chooseSomething = false; break; case ConsoleKey.RightArrow: keepShopping = false; chooseSomething = false; break; case ConsoleKey.UpArrow: keepShopping = false; chooseSomething = false; break; case ConsoleKey.DownArrow: keepShopping = false; chooseSomething = false; break; default: TextBoxViews.ReWriteToMessageBox(universe, "Please choose something I have and not the air please.", true); break; } } //Prints question if (keepShopping == true) { TextBoxViews.ReWriteToMessageBox(universe, "So you want to buy " + itemToPurchase[item] + " " + item + "(s) for " + cost + " gold? Yes/No", true); //Gets user input purchase = Validators.ValidYesNo(); } if (keepShopping) { //checks if the player has enough coins if (purchase && (adventurer.Coins >= cost)) { adventurer.ItemsDictionary[item] += itemToPurchase[item]; adventurer.Coins -= cost; TextBoxViews.ReWriteToMessageBox(universe, "Thanks for buyin", true); } else if (purchase && !(adventurer.Coins >= cost)) { TextBoxViews.ReWriteToMessageBox(universe, "Hey! You dont have enough to buy that!!!", true); } } TextBoxViews.DisplayPlayerInfo(adventurer); } }
private static void SlimeATK(Adventurer adventurer, Universe universe, Slime slime, bool blocked) { //Setup Random random = new Random(); int attack = random.Next(1, 4); int damage = 0; bool tOb = true;//tOb is here to help //If else statement to handle what happens next if (!slime.PowerAttack) { if (attack == 1) { TextBoxViews.ReWriteToMessageBox(universe, "The slime jumps at you and lands on your foot..."); damage = random.Next(5, slime.Damage); } else if (attack == 2) { TextBoxViews.ReWriteToMessageBox(universe, "The slime jumps at you and hits you in the chest..."); damage = random.Next(5, slime.Damage); } else if (attack == 3) { TextBoxViews.ReWriteToMessageBox(universe, "The slime readies to do a very powerful attack..."); slime.PowerAttack = true; tOb = false; } else { TextBoxViews.WriteToMessageBox(universe, "Error: No attack defined..."); } } else if (slime.PowerAttack) { damage = random.Next(20, slime.Damage * 3); TextBoxViews.ReWriteToMessageBox(universe, "The slime slams into you with a lot of force."); } else { TextBoxViews.ReWriteToMessageBox(universe, "Not supposed to HAPPEN"); } if (tOb) { if (blocked) { TextBoxViews.ReWriteToMessageBox(universe, "You blocked the slime's attack"); slime.PowerAttack = false; } else if (slime.PowerAttack) { if (damage > 29) { TextBoxViews.ReWriteToMessageBox(universe, "The slime hits you for a whopping " + damage + " damage! Thats a lot of damage."); } else { TextBoxViews.ReWriteToMessageBox(universe, "The slime hits you for a whopping " + damage + " damage!"); } slime.PowerAttack = false; adventurer.Health -= damage; } else { TextBoxViews.ReWriteToMessageBox(universe, $"The slime deals {damage} damage."); adventurer.Health = adventurer.Health - damage; } } }
/// <summary> /// Checks what quest the player is on. /// </summary> /// <param name="universe"></param> /// <param name="adventurer"></param> public static void CheckPlayerQuest(Universe universe, Adventurer adventurer) { foreach (var quest in adventurer.QuestCompletion) { if (quest.Key == adventurer.CurrentQuest) { switch (adventurer.CurrentQuest) { case Adventurer.Quest.MeetTheOldMan: TextBoxViews.DisplayQuest("Go talk to the old man"); if (quest.Value && !adventurer.QuestDone[0]) { Console.SetCursorPosition(110, 24); Console.Write("Completed Quest"); Thread.Sleep(1000); Console.SetCursorPosition(110, 24); Console.Write(" "); adventurer.CurrentQuest = Adventurer.Quest.GoHome; adventurer.QuestDone[0] = true; } break; case Adventurer.Quest.GoHome: TextBoxViews.DisplayQuest("Go back to your house"); if (quest.Value && !adventurer.QuestDone[1]) { Console.SetCursorPosition(110, 24); Console.Write("Completed Quest"); Thread.Sleep(1000); Console.SetCursorPosition(110, 24); Console.Write(" "); adventurer.CurrentQuest = Adventurer.Quest.GoShopping; adventurer.QuestDone[1] = true; } break; case Adventurer.Quest.GoShopping: TextBoxViews.DisplayQuest("Go buy some supplies"); if (quest.Value && !adventurer.QuestDone[2]) { Console.SetCursorPosition(110, 24); Console.Write("Completed Quest"); Thread.Sleep(1000); Console.SetCursorPosition(110, 24); Console.Write(" "); adventurer.CurrentQuest = Adventurer.Quest.LeaveHome; adventurer.QuestDone[2] = true; } break; case Adventurer.Quest.LeaveHome: TextBoxViews.DisplayQuest("Leave town"); if (quest.Value && !adventurer.QuestDone[3]) { Console.SetCursorPosition(110, 24); Console.Write("Completed Quest"); Thread.Sleep(1000); Console.SetCursorPosition(110, 24); Console.Write(" "); adventurer.CurrentQuest = Adventurer.Quest.TheNewGuyInTown; adventurer.QuestDone[3] = true; } break; case Adventurer.Quest.TheNewGuyInTown: TextBoxViews.DisplayQuest("Go to town 2"); if (quest.Value && !adventurer.QuestDone[4]) { Console.SetCursorPosition(110, 24); Console.Write("Completed Quest"); Thread.Sleep(1000); Console.SetCursorPosition(110, 24); Console.Write(" "); adventurer.CurrentQuest = Adventurer.Quest.DeliverTheParcel; adventurer.QuestDone[4] = true; } break; case Adventurer.Quest.DeliverTheParcel: TextBoxViews.DisplayQuest("Find the parcel in Town"); if (quest.Value && !adventurer.QuestDone[5]) { Console.SetCursorPosition(110, 24); Console.Write("Completed Quest"); Thread.Sleep(1000); Console.SetCursorPosition(110, 24); Console.Write(" "); adventurer.CurrentQuest = Adventurer.Quest.FightTheCaveTrio; adventurer.QuestDone[5] = true; } break; case Adventurer.Quest.FightTheCaveTrio: TextBoxViews.DisplayQuest("Go fight the trio!"); if (quest.Value && !adventurer.QuestDone[6]) { Console.SetCursorPosition(110, 24); Console.Write("Completed Quest"); Thread.Sleep(1000); Console.SetCursorPosition(110, 24); Console.Write(" "); adventurer.CurrentQuest = Adventurer.Quest.None; adventurer.QuestDone[6] = true; adventurer.playerWin = true; } break; default: break; } } } }
/// <summary> /// Checks the player's position Handles BOTH mainworld and House Locations /// </summary> /// <param name="universe"></param> /// <param name="adventurer"></param> public static void CheckPlayerPosition(Universe universe, Adventurer adventurer) { if (!adventurer.InaHouse) { switch (adventurer.MapLocation) { case Humanoid.Location.MainWorld: foreach (Towns town in universe.TownList) { if (adventurer.Ypos == town.Ypos && adventurer.Xpos == town.Xpos) { TextBoxViews.RedrawBox(universe, 6); TextBoxViews.WriteToEvent(adventurer.MapLocation.ToString()); TextBoxViews.ClearMapBox(); adventurer.MapLocation = town.TownLocName; adventurer.PreviousLocations.Add(adventurer.MapLocation); adventurer.Xpos = 40; adventurer.Ypos = 48; } } TextBoxViews.RedrawBox(universe, 6); TextBoxViews.WriteToEvent(adventurer.MapLocation.ToString()); break; case Humanoid.Location.TutTown: if (adventurer.Ypos >= 50) { TextBoxViews.ClearMapBox(); adventurer.MapLocation = Humanoid.Location.MainWorld; adventurer.Xpos = universe.TownList[0].Xpos; adventurer.Ypos = universe.TownList[0].Ypos; adventurer.PreviousLocations.Add(adventurer.MapLocation); Map.QuestTrigger(adventurer, universe, Adventurer.Quest.LeaveHome); TextBoxViews.RedrawBox(universe, 6); TextBoxViews.WriteToEvent(adventurer.MapLocation.ToString()); } foreach (var house in universe.HouseList) { if ((adventurer.Xpos == house.EnterPosition[0]) && (adventurer.Ypos == house.EnterPosition[1]) && (house.HouseLoc == Humanoid.Location.TutTown)) { adventurer.InaHouse = true; house.PlayerInside = true; adventurer.Xpos = 56; adventurer.Ypos = 32; adventurer.InHouseName = house.HouseName; TextBoxViews.RedrawBox(universe, 6); TextBoxViews.WriteToEvent(adventurer.InHouseName.ToString()); TextBoxViews.ClearMapBox(); } } TextBoxViews.RedrawBox(universe, 6); TextBoxViews.WriteToEvent(adventurer.MapLocation.ToString()); break; case Humanoid.Location.CherryGrove: Map.QuestTrigger(adventurer, universe, Adventurer.Quest.TheNewGuyInTown); if (adventurer.Ypos >= 50) { TextBoxViews.ClearMapBox(); adventurer.MapLocation = Humanoid.Location.MainWorld; adventurer.Xpos = universe.TownList[1].Xpos; adventurer.Ypos = universe.TownList[1].Ypos; adventurer.PreviousLocations.Add(adventurer.MapLocation); } foreach (var house in universe.HouseList) { if ((adventurer.Xpos == house.EnterPosition[0]) && (adventurer.Ypos == house.EnterPosition[1]) && (house.HouseLoc == Humanoid.Location.CherryGrove)) { adventurer.InaHouse = true; house.PlayerInside = true; adventurer.Xpos = 56; adventurer.Ypos = 32; adventurer.InHouseName = house.HouseName; TextBoxViews.RedrawBox(universe, 6); TextBoxViews.WriteToEvent(adventurer.InHouseName.ToString()); TextBoxViews.ClearMapBox(); } } TextBoxViews.RedrawBox(universe, 6); TextBoxViews.WriteToEvent(adventurer.MapLocation.ToString()); break; case Humanoid.Location.Cave: if (adventurer.Ypos >= 50) { TextBoxViews.ClearMapBox(); adventurer.MapLocation = Humanoid.Location.MainWorld; adventurer.Xpos = universe.TownList[3].Xpos; adventurer.Ypos = universe.TownList[3].Ypos; adventurer.PreviousLocations.Add(adventurer.MapLocation); } break; default: break; } } else if (adventurer.InaHouse) { switch (adventurer.InHouseName) { case House.houseName.None: break; case House.houseName.PlayerHome: Map.QuestTrigger(adventurer, universe, Adventurer.Quest.GoHome); if (adventurer.Xpos == 56 && adventurer.Ypos == 33) { adventurer.InaHouse = false; foreach (var house in universe.HouseList) { if (adventurer.InHouseName == house.HouseName) { house.PlayerInside = false; adventurer.InHouseName = House.houseName.None; adventurer.Xpos = house.EnterPosition[0]; adventurer.Ypos = house.EnterPosition[1] + 1; } } TextBoxViews.ClearMapBox(); } break; case House.houseName.HealHouse: if (adventurer.Xpos == 56 && adventurer.Ypos == 33) { adventurer.InaHouse = false; foreach (var house in universe.HouseList) { if (adventurer.InHouseName == house.HouseName) { house.PlayerInside = false; adventurer.InHouseName = House.houseName.None; adventurer.Xpos = house.EnterPosition[0]; adventurer.Ypos = house.EnterPosition[1] + 1; } } TextBoxViews.ClearMapBox(); } break; case House.houseName.Market: if (adventurer.Xpos == 56 && adventurer.Ypos == 33) { adventurer.InaHouse = false; foreach (var house in universe.HouseList) { if (adventurer.InHouseName == house.HouseName) { house.PlayerInside = false; adventurer.InHouseName = House.houseName.None; adventurer.Xpos = house.EnterPosition[0]; adventurer.Ypos = house.EnterPosition[1] + 1; } } TextBoxViews.ClearMapBox(); } break; case House.houseName.CerriHouse: if (adventurer.Xpos == 56 && adventurer.Ypos == 33) { adventurer.InaHouse = false; foreach (var house in universe.HouseList) { if (adventurer.InHouseName == house.HouseName) { house.PlayerInside = false; adventurer.InHouseName = House.houseName.None; adventurer.Xpos = house.EnterPosition[0]; adventurer.Ypos = house.EnterPosition[1] + 1; } } TextBoxViews.ClearMapBox(); } break; case House.houseName.AmastaHouse: if (adventurer.Xpos == 56 && adventurer.Ypos == 33) { adventurer.InaHouse = false; foreach (var house in universe.HouseList) { if (adventurer.InHouseName == house.HouseName) { house.PlayerInside = false; adventurer.InHouseName = House.houseName.None; adventurer.Xpos = house.EnterPosition[0]; adventurer.Ypos = house.EnterPosition[1] + 1; } } TextBoxViews.ClearMapBox(); } break; case House.houseName.AristaHouse: if (adventurer.Xpos == 56 && adventurer.Ypos == 33) { adventurer.InaHouse = false; foreach (var house in universe.HouseList) { if (adventurer.InHouseName == house.HouseName) { house.PlayerInside = false; adventurer.InHouseName = House.houseName.None; adventurer.Xpos = house.EnterPosition[0]; adventurer.Ypos = house.EnterPosition[1] + 1; } } TextBoxViews.ClearMapBox(); } break; default: break; } } }
public virtual string NPCTalkResponse(Adventurer adventurer) { return($"{greeting} , {adventurer.Name}"); }
public static bool movement(Adventurer adventurer, Universe universe) { ConsoleKeyInfo keyPress; keyPress = Console.ReadKey(); bool playing = true; int[] lastPosition = new int[2]; lastPosition[0] = adventurer.Xpos; lastPosition[1] = adventurer.Ypos; Console.SetCursorPosition(lastPosition[0], lastPosition[1]); Console.Write(" "); switch (keyPress.Key) { case ConsoleKey.LeftArrow: adventurer.LookDirection = Humanoid.Direction.LEFT; if (adventurer.LastDirection == adventurer.LookDirection) { MovementRestriction(adventurer, universe, adventurer.LookDirection); } adventurer.LastDirection = adventurer.LookDirection; Console.SetCursorPosition(adventurer.Xpos, adventurer.Ypos); Console.Write("☺"); break; case ConsoleKey.UpArrow: adventurer.LookDirection = Humanoid.Direction.UP; if (adventurer.LastDirection == adventurer.LookDirection) { MovementRestriction(adventurer, universe, adventurer.LookDirection); } adventurer.LastDirection = adventurer.LookDirection; Console.SetCursorPosition(adventurer.Xpos, adventurer.Ypos); Console.Write("☺"); break; case ConsoleKey.RightArrow: adventurer.LookDirection = Humanoid.Direction.RIGHT; if (adventurer.LastDirection == adventurer.LookDirection) { MovementRestriction(adventurer, universe, adventurer.LookDirection); } adventurer.LastDirection = adventurer.LookDirection; Console.SetCursorPosition(adventurer.Xpos, adventurer.Ypos); Console.Write("☺"); break; case ConsoleKey.DownArrow: adventurer.LookDirection = Humanoid.Direction.DOWN; if (adventurer.LastDirection == adventurer.LookDirection) { MovementRestriction(adventurer, universe, adventurer.LookDirection); } adventurer.LastDirection = adventurer.LookDirection; Console.SetCursorPosition(adventurer.Xpos, adventurer.Ypos); Console.Write("☺"); break; case ConsoleKey.NumPad0: break; case ConsoleKey.NumPad1: NPCTalk(adventurer, universe); break; case ConsoleKey.NumPad2: TextBoxViews.DisplayTownDesc(universe); break; case ConsoleKey.NumPad3: PlayerLocationss(adventurer, universe); break; case ConsoleKey.NumPad4: InventoryManagment(adventurer, universe); break; case ConsoleKey.NumPad5: Check.CheckAndPickupItem(universe, adventurer); break; case ConsoleKey.NumPad6: break; case ConsoleKey.NumPad7: break; case ConsoleKey.NumPad8: break; case ConsoleKey.NumPad9: playing = false; break; case ConsoleKey.D1: NPCTalk(adventurer, universe); break; case ConsoleKey.D2: TextBoxViews.DisplayTownDesc(universe); break; case ConsoleKey.D3: PlayerLocationss(adventurer, universe); break; case ConsoleKey.D4: InventoryManagment(adventurer, universe); break; case ConsoleKey.D5: Check.CheckAndPickupItem(universe, adventurer); break; case ConsoleKey.D9: playing = false; break; default: break; } return(playing); }