private void CreateLoot() { // number of treasure drops to create int numLoot = 20; // Produce loot up to a max of numLoot for (int i = 0; i < numLoot; i++) { // Create an Item with some standard attributes int lootPosition = 0; Item newLoot = new Item(Color.Gold, Color.White, "Gold bar", '=', 12.5); IronBar ironBar = new IronBar(); // Let SadConsole know that this Item's position be tracked on the map //newLoot.Components.Add(new EntityViewSyncComponent()); // Try placing the Item at lootPosition; if this fails, try random positions on the map's tile array while (CurrentMap.Tiles[lootPosition].isBlockingMove) { // pick a random spot on the map lootPosition = rndNum.Next(0, CurrentMap.Width * CurrentMap.Height); } // set the loot's new position newLoot.Position = new Point(lootPosition % CurrentMap.Width, lootPosition / CurrentMap.Height); ironBar.Position = new Point(lootPosition / CurrentMap.Width, lootPosition % CurrentMap.Height); // add the Item to the MultiSpatialMap CurrentMap.Add(newLoot); CurrentMap.Add(ironBar); } }
public static InventoryItem CreateInventoryItem(string key, TeamType team, string region, Vector2 location, ContentManager content, GraphicsDevice graphics) { InventoryItem item = null; int amountStacked = 1; switch (key) { case ("tribalTokens"): item = new TribalTokens(team, region, location, content, graphics); break; case ("basePlank"): item = new BasePlank(team, region, location, content, graphics); break; case ("shortSword"): item = new ShortSword(team, region, location, content, graphics); break; case ("softWood"): item = new SoftWood(team, region, location, content, graphics); break; case ("islandGrass"): item = new IslandGrass(team, region, location, content, graphics); break; case ("coal"): item = new Coal(team, region, location, content, graphics); break; case ("ironOre"): item = new IronOre(team, region, location, content, graphics); break; case ("baseSword"): item = new BaseSword(team, region, location, content, graphics); break; case ("anvilItem"): item = new AnvilItem(team, region, location, content, graphics); item.placeableVersion = new CraftingAnvil(team, region, location, content, graphics); break; case ("baseChestItem"): item = new BaseChestItem(team, region, location, content, graphics); item.placeableVersion = new BaseChest(team, region, location, content, graphics); break; case ("nails"): item = new Nails(team, region, location, content, graphics); amountStacked = 5; break; case ("cannonBallItem"): item = new CannonBallItem(team, region, location, content, graphics); amountStacked = 3; break; case ("pistolShotItem"): item = new PistolShotItem(team, region, location, content, graphics); amountStacked = 5; break; case ("ironBar"): item = new IronBar(team, region, location, content, graphics); break; case ("treasureMapItem"): item = new TreasureMapItem(null, team, region, location, content, graphics); break; case ("chiliFish"): item = new ChiliFish(team, region, location, content, graphics); break; case ("chiliPepper"): item = new ChiliPepper(team, region, location, content, graphics); break; case ("cookedFish"): item = new CookedFish(team, region, location, content, graphics); break; case ("cookedMeat"): item = new CookedMeat(team, region, location, content, graphics); break; case ("rawFish"): item = new RawFish(team, region, location, content, graphics); break; case ("rawMeat"): item = new RawMeat(team, region, location, content, graphics); break; case ("spoiledFish"): item = new SpoiledFish(team, region, location, content, graphics); break; case ("spoiledMeat"): item = new SpoiledMeat(team, region, location, content, graphics); break; case ("feather"): item = new Feather(team, region, location, content, graphics); break; case ("scales"): item = new Scales(team, region, location, content, graphics); break; case ("fishOil"): item = new FishOil(team, region, location, content, graphics); break; case ("goldCoins"): item = new GoldCoins(team, region, location, content, graphics); break; } item.itemKey = key; item.amountStacked = amountStacked; return(item); }