void LevelUp() { Thread.Sleep(Settings.GetPauseTime()); IO.GameUpdate("You Leveled up!"); Thread.Sleep(Settings.GetPauseTime()); List <string> Options = new List <string>() { "Str", "Dex", "Con" }; string Extra = ""; int ABPoints = 3; while (ABPoints > 0) { IO.GameUpdate(Extra + "You have 3 ability points to spend!\n\nStr: " + Str + " (+" + StrMod + ")\nDex: " + Dex + " (+" + DexMod + ")\nCon: " + Con + " (+" + ConMod + ")"); IO.Options(Options); int Input = MainClass.ChatInput(Options.Count); switch (Input) { case 1: Str += 1; Extra = "Strength increased by 1!\n\n"; break; case 2: Dex += 1; Extra = "Dexterity increased by 1!\n\n"; break; case 3: Con += 1; Extra = "Constitution increased by 1!\n\n"; break; } UpdateAbilityModifiers(); SetAtkBonus(); ABPoints -= 1; } }
static void HealthPotion() { if (Player.Inventory.Potions.Count > 0) { List <string> Potions = new List <string>(); foreach (Potion Pot in Player.Inventory.Potions) { Potions.Add(Pot.Name); } IO.Options(Potions); int Input = MainClass.ChatInput(4); IO.Options(null); if (Input == -1) { Player.SetStamina(Player.GetStamina() + FightOptionCosts[2]); return; } else { int Regen = Player.Inventory.Potions[Input].HealthRegen(); if (Player.GetHP() + Regen > Player.GetMaxHP()) { Regen = Player.GetMaxHP() - Player.GetHP(); } Player.SetHP(Player.GetHP() + Regen); string Update = "You recovered " + Regen + "HP!"; IO.PlayerStamina(Player.GetStamina(), Player.GetStaminaMax()); IO.PlayerHP(Player.GetHP(), Player.GetMaxHP()); IO.GameUpdate(Update); IO.PlayerInventory(Player.Inventory); } } else { Player.SetStamina(Player.GetStamina() + FightOptionCosts[2]); string Update = "You don't have any Health Potions!"; IO.GameUpdate(Update); } }
static int WhichEnemy() { List <string> EnemyList = new List <string>(); foreach (EnemyNPC Enemy in EncounterNPCs) { EnemyList.Add(Enemy.Name); } int Input; if (EnemyList.Count > 1) { IO.Options(EnemyList); Input = MainClass.ChatInput(EnemyList.Count) - 1; IO.Options(null); } else { Input = 0; } return(Input); }
static void PlayerTurn() { bool TurnDone = false; while (!TurnDone) { List <string> ViableOptions = new List <string>(); for (int x = 0; x < FightOptionCosts.Count; x++) { if (Player.GetStamina() >= FightOptionCosts[x]) { ViableOptions.Add(FightOptions[x]); } } IO.Options(ViableOptions); int Input = MainClass.ChatInput(ViableOptions.Count) + (FightOptions.Count - ViableOptions.Count); IO.Options(null); int TargetEnemy = 0; switch (Input) { case 1: if (Player.GetStamina() >= FightOptionCosts[Input - 1]) { Player.SetStamina(Player.GetStamina() - FightOptionCosts[Input - 1]); TargetEnemy = WhichEnemy(); AttackEnemy(TargetEnemy, "Heavy"); } else { string Update = "Not Enough Stamina!"; IO.GameUpdate(Update); } break; case 2: if (Player.GetStamina() >= FightOptionCosts[Input - 1]) { Player.SetStamina(Player.GetStamina() - FightOptionCosts[Input - 1]); TargetEnemy = WhichEnemy(); AttackEnemy(TargetEnemy, "Light"); } else { string Update = "Not Enough Stamina!"; IO.GameUpdate(Update); } break; case 3: if (Player.GetStamina() >= FightOptionCosts[Input - 1]) { Player.SetStamina(Player.GetStamina() - FightOptionCosts[Input - 1]); HealthPotion(); } else { string Update = "Not Enough Stamina!"; IO.GameUpdate(Update); } break; case 4: TurnDone = true; break; default: break; } IO.PlayerStamina(Player.GetStamina(), Player.GetStaminaMax()); if (!TurnDone) { TurnDone = CheckFightStatus(); if (!TurnDone && Player.GetStamina() < 3) { TurnDone = true; Thread.Sleep(Settings.GetPauseTime()); } } } Player.SetStamina(Player.GetStaminaMax()); IO.PlayerStamina(Player.GetStamina(), Player.GetStaminaMax()); }