public static void Run() { MonsterMaker monsterMaker = new MonsterMaker(); DynamicPlayerGeneratedMonster monster1 = new DynamicPlayerGeneratedMonster("Phil", MonsterTypes.Dragon); WellKnownMonster monster2 = new WellKnownMonster("Sally", MonsterTypes.Lizard); MonsterRegistry.RegisterMonster(monster1); Console.WriteLine("This is a random monster: "); Console.WriteLine(monsterMaker.MakeRandomMonster()); Console.WriteLine(); Console.WriteLine("This is a random monster: "); Console.WriteLine(monsterMaker.MakeRandomMonster()); Console.WriteLine(); Console.WriteLine("This is a random monster: "); Console.WriteLine(monsterMaker.MakeRandomMonster()); Console.WriteLine(); MonsterRegistry.RegisterRandomMonster(monster1); MonsterRegistry.RegisterRandomMonster(monster2); Console.WriteLine("This is a very random monster: "); Console.WriteLine(monsterMaker.MakeCompletelyRandomMonster()); Console.WriteLine(); Console.WriteLine("This is a very random monster: "); Console.WriteLine(monsterMaker.MakeCompletelyRandomMonster()); Console.WriteLine(); Console.WriteLine("This is a very random monster: "); Console.WriteLine(monsterMaker.MakeCompletelyRandomMonster()); Console.WriteLine(); Console.WriteLine("This is a very random monster: "); Console.WriteLine(monsterMaker.MakeCompletelyRandomMonster()); Console.WriteLine(); Console.WriteLine("This is a very random monster: "); Console.WriteLine(monsterMaker.MakeCompletelyRandomMonster()); Console.WriteLine(); }
public static void Main(string[] args) { // Variables that go into GameContext var list = new Lists(); var jumpGate = new JumpGate(); var spacePort = new SpacePort(); var instance = new Instance(); var player = new Player() { InSolarSystem = 1, Level = 1 }; var travel = new Travel(); var inventory = new Inventory(); var playerInventory = new Inventory(); var playerAttackCalculator = new PlayerAttackCalculator(); var playerStats = new PlayerStats(); var weaponMaker = new WeaponMaker(); var playerMaker = new PlayerMaker(); var loadGame = new LoadGame(); var saveGame = new SaveGame(); var randomNameGenerator = new RandomNameGenerator(); var repairShop = new RepairShop(); var store = new Store(); var healthKitSmall = new HealthKitSmall() { Name = "Small Health Kit", Price = 100 }; var healthKitLarge = new HealthKitLarge() { Name = "Large Health Kit", Price = 250 }; var healthKitTotal = new HealthKitTotal() { Name = "Total Health Kit", Price = 1000 }; var energyKitSmall = new EnergyKitSmall() { Name = "Small Energy Kit", Price = 100 }; var energyKitLarge = new EnergyKitLarge() { Name = "Large Energy Kit", Price = 250 }; var energyKitTotal = new EnergyKitTotal() { Name = "Total Energy Kit", Price = 1000 }; var smokeGrenade = new SmokeGrenade() { Name = "Smoke Grenade", Price = 2000 }; var blaster = new Weapon() { Price = player.Level * 150 }; var doubleBlaster = new Weapon() { Price = player.Level * 300 }; var photonSword = new Weapon() { Price = player.Level * 450 }; var virtualGun = new VirtualGun() { Description = "Spend Energy to deal Damage to your opponent", Name = "Virtual Gun", UsedBy = "Gunslinger" }; // Mechanics for Fighting var fight = new Fight(); var roller = new Roller(); // Factories for Fighting var monsterMaker = new MonsterMaker(); // GameContext Variable var gameContext = new GameContext() { List = list, JumpGate = jumpGate, SpacePort = spacePort, Instance = instance, Player = player, Travel = travel, Inventory = inventory, PlayerInventory = playerInventory, PlayerAttackCalculator = playerAttackCalculator, PlayerStats = playerStats, WeaponMaker = weaponMaker, Fight = fight, Roller = roller, MonsterMaker = monsterMaker, PlayerMaker = playerMaker, LoadGame = loadGame, SaveGame = saveGame, RandomNameGenerator = randomNameGenerator, RepairShop = repairShop, Store = store, HealthKitSmall = healthKitSmall, HealthKitLarge = healthKitLarge, HealthKitTotal = healthKitTotal, EnergyKitSmall = energyKitSmall, EnergyKitLarge = energyKitLarge, EnergyKitTotal = energyKitTotal, SmokeGrenade = smokeGrenade, Blaster = blaster, DoubleBlaster = doubleBlaster, PhotonSword = photonSword, VirtualGun = virtualGun, }; // Monster Creation for Fighting var whiteMonster01 = monsterMaker.CreateWhiteMonster(gameContext); var whiteMonster02 = monsterMaker.CreateWhiteMonster(gameContext); var whiteMonster03 = monsterMaker.CreateWhiteMonster(gameContext); var greenMonster01 = monsterMaker.CreateGreenMonster(gameContext); var greenMonster02 = monsterMaker.CreateGreenMonster(gameContext); var greenMonster03 = monsterMaker.CreateGreenMonster(gameContext); var redMonster01 = monsterMaker.CreateRedMonster(gameContext); var redMonster02 = monsterMaker.CreateRedMonster(gameContext); var redMonster03 = monsterMaker.CreateRedMonster(gameContext); gameContext.WhiteMonster01 = whiteMonster01; gameContext.WhiteMonster02 = whiteMonster02; gameContext.WhiteMonster03 = whiteMonster03; gameContext.GreenMonster01 = greenMonster01; gameContext.GreenMonster02 = greenMonster02; gameContext.GreenMonster03 = greenMonster03; gameContext.RedMonster01 = redMonster01; gameContext.RedMonster02 = redMonster02; gameContext.RedMonster03 = redMonster03; // Creating base variables var place = new Place(); var startUpScreen = new StartUpScreen(); // Creating JumpGates var jumpGate1 = new JumpGate() { InSolarSystem = 1, Name = "jg1" }; var jumpGate2 = new JumpGate() { InSolarSystem = 2, Name = "jg2" }; var jumpGate3 = new JumpGate() { InSolarSystem = 3, Name = "jg3" }; // Creating SpacePorts var spacePort1 = new SpacePort() { InSolarSystem = 1, Name = "sp1" }; var spacePort2 = new SpacePort() { InSolarSystem = 1, Name = "sp2" }; var spacePort3 = new SpacePort() { InSolarSystem = 1, Name = "sp3" }; var spacePort10 = new SpacePort() { InSolarSystem = 2, Name = "sp10" }; var spacePort11 = new SpacePort() { InSolarSystem = 2, Name = "sp11" }; var spacePort12 = new SpacePort() { InSolarSystem = 2, Name = "sp12" }; var spacePort20 = new SpacePort() { InSolarSystem = 3, Name = "sp20" }; var spacePort21 = new SpacePort() { InSolarSystem = 3, Name = "sp21" }; var spacePort22 = new SpacePort() { InSolarSystem = 3, Name = "sp22" }; // Creating Instances var instance1 = new Instance() { InSpacePort = "sp1", Name = "i1" }; var instance2 = new Instance() { InSpacePort = "sp1", Name = "i2" }; var instance10 = new Instance() { InSpacePort = "sp2", Name = "i10" }; var instance11 = new Instance() { InSpacePort = "sp2", Name = "i11" }; var instance20 = new Instance() { InSpacePort = "sp3", Name = "i20" }; var instance21 = new Instance() { InSpacePort = "sp3", Name = "i21" }; var instance30 = new Instance() { InSpacePort = "sp10", Name = "i30" }; var instance31 = new Instance() { InSpacePort = "sp10", Name = "i31" }; var instance40 = new Instance() { InSpacePort = "sp11", Name = "i40" }; var instance41 = new Instance() { InSpacePort = "sp11", Name = "i41" }; var instance50 = new Instance() { InSpacePort = "sp12", Name = "i50" }; var instance51 = new Instance() { InSpacePort = "sp12", Name = "i51" }; var instance60 = new Instance() { InSpacePort = "sp20", Name = "i60" }; var instance61 = new Instance() { InSpacePort = "sp20", Name = "i61" }; var instance70 = new Instance() { InSpacePort = "sp21", Name = "i70" }; var instance71 = new Instance() { InSpacePort = "sp21", Name = "i71" }; var instance80 = new Instance() { InSpacePort = "sp22", Name = "i80" }; var instance81 = new Instance() { InSpacePort = "sp22", Name = "i81" }; // Adding JumpGates to the list gameContext.List.listJumpGate.Add(jumpGate1); gameContext.List.listJumpGate.Add(jumpGate2); gameContext.List.listJumpGate.Add(jumpGate3); // Adding SpacePorts to the list gameContext.List.listSpacePort.Add(spacePort1); gameContext.List.listSpacePort.Add(spacePort2); gameContext.List.listSpacePort.Add(spacePort3); gameContext.List.listSpacePort.Add(spacePort10); gameContext.List.listSpacePort.Add(spacePort11); gameContext.List.listSpacePort.Add(spacePort12); gameContext.List.listSpacePort.Add(spacePort20); gameContext.List.listSpacePort.Add(spacePort21); gameContext.List.listSpacePort.Add(spacePort22); // Adding Instances to the list gameContext.List.listInstance.Add(instance1); gameContext.List.listInstance.Add(instance2); gameContext.List.listInstance.Add(instance10); gameContext.List.listInstance.Add(instance11); gameContext.List.listInstance.Add(instance20); gameContext.List.listInstance.Add(instance21); gameContext.List.listInstance.Add(instance30); gameContext.List.listInstance.Add(instance31); gameContext.List.listInstance.Add(instance40); gameContext.List.listInstance.Add(instance41); gameContext.List.listInstance.Add(instance50); gameContext.List.listInstance.Add(instance51); gameContext.List.listInstance.Add(instance60); gameContext.List.listInstance.Add(instance61); gameContext.List.listInstance.Add(instance70); gameContext.List.listInstance.Add(instance71); gameContext.List.listInstance.Add(instance80); gameContext.List.listInstance.Add(instance81); // Test area // Game Starts here startUpScreen.StartUp(gameContext); }
private void MoveTo(Location newLocation) { //Can we move to the locaiton if (!_player.HasRequiredItemToEnterThisLocation(newLocation)) { WriteToRtb(rtbMessages, "You must have a " + newLocation.ItemRequiredToEnter.Name + " to enter this location." + Environment.NewLine); return; } // Update the player's current location _player.CurrentLocation = newLocation; // Show/hide available movement buttons btnNorth.Visible = (newLocation.LocationToNorth != null); btnEast.Visible = (newLocation.LocationToEast != null); btnSouth.Visible = (newLocation.LocationToSouth != null); btnWest.Visible = (newLocation.LocationToWest != null); // Display current location name and description rtbLocations.Text = newLocation.Name + Environment.NewLine; rtbLocations.Text += newLocation.Description + Environment.NewLine; // Completely heal the player _player.CurrentHitPoints = _player.MaximumHitPoints; // Update Hit Points in UI UpdatePlayerStatsUI(); // Does the location have a quest? if (newLocation.QuestAvailableHere != null) { // See if the player already has the quest, and if they've completed it bool playerAlreadyHasQuest = _player.HasThisQuest(newLocation.QuestAvailableHere); bool playerAlreadyCompletedQuest = _player.CompletedThisQuest(newLocation.QuestAvailableHere); // See if the player already has the quest if (playerAlreadyHasQuest) { // If the player has not completed the quest yet if (!playerAlreadyCompletedQuest) { // See if the player has all the items needed to complete the quest bool playerHasAllItemsToCompleteQuest = _player.HasAllQuestCompletionItems(newLocation.QuestAvailableHere); // The player has all items required to complete the quest if (playerHasAllItemsToCompleteQuest) { // Display message WriteToRtb(rtbMessages, Environment.NewLine); WriteToRtb(rtbMessages, "You complete the '" + newLocation.QuestAvailableHere.Name + "' quest." + Environment.NewLine); // Remove quest items from inventory _player.RemoveQuestCompletionItems(newLocation.QuestAvailableHere); // Give quest rewards WriteToRtb(rtbMessages, "You receive: " + Environment.NewLine); WriteToRtb(rtbMessages, newLocation.QuestAvailableHere.RewardExperiencePoints.ToString() + " experience points" + Environment.NewLine); WriteToRtb(rtbMessages, newLocation.QuestAvailableHere.RewardGold.ToString() + " gold" + Environment.NewLine); WriteToRtb(rtbMessages, newLocation.QuestAvailableHere.RewardItem.Name + Environment.NewLine); WriteToRtb(rtbMessages, Environment.NewLine); _player.ExperiencePoints += newLocation.QuestAvailableHere.RewardExperiencePoints; _player.Gold += newLocation.QuestAvailableHere.RewardGold; // Add the reward item to the player's inventory _player.AddItemToInventory(newLocation.QuestAvailableHere.RewardItem); // Mark the quest as completed _player.MarkQuestCompleted(newLocation.QuestAvailableHere); UpdatePlayerStatsUI(); } } } else { // The player does not already have the quest // Display the messages WriteToRtb(rtbMessages, "You receive the " + newLocation.QuestAvailableHere.Name + " quest." + Environment.NewLine); WriteToRtb(rtbMessages, Environment.NewLine); WriteToRtb(rtbMessages, newLocation.QuestAvailableHere.Description + Environment.NewLine); WriteToRtb(rtbMessages, Environment.NewLine); WriteToRtb(rtbMessages, "To complete it, return with:" + Environment.NewLine); foreach (QuestCompletionItem qci in newLocation.QuestAvailableHere.QuestCompletionItems) { if (qci.Quantity == 1) { WriteToRtb(rtbMessages, qci.Quantity.ToString() + " " + qci.Details.Name + Environment.NewLine); } else { WriteToRtb(rtbMessages, qci.Quantity.ToString() + " " + qci.Details.NamePlural + Environment.NewLine); } } WriteToRtb(rtbMessages, Environment.NewLine); // Add the quest to the player's quest list _player.Quests.Add(new PlayerQuest(newLocation.QuestAvailableHere)); } } // Does the location have a monster? if (newLocation.MonsterLivingHere != MonsterType.None) { _currentMonster = MonsterMaker.Create(newLocation.MonsterLivingHere); WriteToRtb(rtbMessages, "You see a " + _currentMonster.Name + Environment.NewLine); SetItemControlsVisibility(true); } else { _currentMonster = null; SetItemControlsVisibility(false); } // Refresh player's inventory list UpdateInventoryListInUI(); // Refresh player's quest list UpdateQuestListInUI(); // Refresh player's weapons combobox UpdateItemOptionsInUI <Weapon>(cboWeapons, btnUseWeapon, _player.CurrentWeapon); // Refresh player's potions combobox UpdateItemOptionsInUI <HealingPotion>(cboPotions, btnUsePotion); }