public void genMap() { for (int x = 0; x < 1000; x++) { for (int y = 0; y < 1000; y++) { map[x, y] = Tile.stoneWall; gold[x, y] = 0; } } int sX = rand.Next(250, 750); int sY = rand.Next(250, 750); map[sX + (1 - rand.Next(3)), sY + (1 - rand.Next(3))] = Tile.stairCase; Program.renderX = sX; Program.renderY = sY; //Mob.spawnMob(Mob._mobZombie, Program.renderX + 5, Program.renderY + 5); int cX = 0; int cY = 0; bool genWater = false; bool genDeep = false; bool genSwamp = false; for (int z = 0; z < 6; z++) { for (int a = 0; a < rand.Next(80000, 150000); a++) { if (map[sX + cX, sY + cY] != Tile.stoneWall && rand.Next(4) == 0) { a--; } if (rand.Next(2) == 0) { if (rand.Next(2) == 0) { cX++; } else { cY--; } } else { if (rand.Next(2) == 0) { cX--; } else { cY++; } } while (sX + cX < 1) { cX++; } while (sX + cX > 998) { cX--; } while (sY + cY < 1) { cY++; } while (sY + cY > 998) { cY--; } if (rand.Next(6000) == 0 && !genWater) { genWater = !genWater; if (rand.Next(250) == 0) { genSwamp = true; } } if (rand.Next(400) == 0 && genWater) { genWater = !genWater; genSwamp = false; } if (!genWater) { if (rand.Next(600) != 0) { map[sX + cX, sY + cY] = Tile.stoneFloor; } else { map[sX + cX, sY + cY] = Tile.stairCase; suggestedExit = new Point(sX + cX, sY + cY); } if (map[sX + cX, sY + cY] != Tile.deepWater && map[sX + cX, sY + cY] != Tile.shallowWater && map[sX + cX, sY + cY] != Tile.stairCase) { if (rand.Next(1200) == 0) { gold[sX + cX, sY + cY] = rand.Next(1, 30); } if (rand.Next(1400) == 0) { items[sX + cX, sY + cY] = new ItemCache(); if (rand.Next(2) == 0) { items[sX + cX, sY + cY].addItem(Item.items[0], rand.Next(2) + 1); } else { if (Program.player.species != Species._darkElf) { items[sX + cX, sY + cY].addItem(Item.get(1).setBound(rand.chooseBound()), 1); } else { items[sX + cX, sY + cY].addItem(Item.get(3).setBound(rand.chooseBound()), 1); } } } } } else { if (rand.Next(70) == 0) { genDeep = !genDeep; } if (genSwamp) { genDeep = false; map[sX + cX, sY + cY] = Tile.swampWater; } else { if (genDeep) { map[sX + cX, sY + cY] = Tile.deepWater; } else { map[sX + cX, sY + cY] = Tile.shallowWater; } } } } } if (Program.floor > 1) { map[Program.renderX, Program.renderY] = Tile.upStairCase; } //Program.levelMap.Add(Program.area + ":" + Program.floor, this); }
public void addToInventory(ItemCache i) { foreach (KeyValuePair<Item, int> pair in i.items) { addToInventory(pair.Key, pair.Value); } }
public void genMap() { for (int x = 0; x < 1000; x++) { for (int y = 0; y < 1000; y++) { map[x, y] = Tile.stoneWall; gold[x, y] = 0; } } int sX = rand.Next(250, 750); int sY = rand.Next(250, 750); map[sX + (1 - rand.Next(3)), sY + (1 - rand.Next(3))] = Tile.stairCase; Program.renderX = sX; Program.renderY = sY; //Mob.spawnMob(Mob._mobZombie, Program.renderX + 5, Program.renderY + 5); int cX = 0; int cY = 0; bool genWater = false; bool genDeep = false; bool genSwamp = false; for (int z = 0; z < 6; z++) { for (int a = 0; a < rand.Next(80000, 150000); a++) { if (map[sX + cX, sY + cY] != Tile.stoneWall && rand.Next(4) == 0) { a--; } if (rand.Next(2) == 0) { if (rand.Next(2) == 0) { cX++; } else { cY--; } } else { if (rand.Next(2) == 0) { cX--; } else { cY++; } } while (sX + cX < 1) { cX++; } while (sX + cX > 998) { cX--; } while (sY + cY < 1) { cY++; } while (sY + cY > 998) { cY--; } if (rand.Next(6000) == 0 && !genWater) { genWater = !genWater; if (rand.Next(250) == 0) { genSwamp = true; } } if (rand.Next(400) == 0 && genWater) { genWater = !genWater; genSwamp = false; } if (!genWater) { if (rand.Next(600) != 0) { map[sX + cX, sY + cY] = Tile.stoneFloor; } else { map[sX + cX, sY + cY] = Tile.stairCase; suggestedExit = new Point(sX + cX, sY + cY); } if (map[sX + cX, sY + cY] != Tile.deepWater && map[sX + cX, sY + cY] != Tile.shallowWater && map[sX + cX, sY + cY] != Tile.stairCase) { if (rand.Next(1200) == 0) { gold[sX + cX, sY + cY] = rand.Next(1, 30); } if (rand.Next(1400) == 0) { items[sX + cX, sY + cY] = new ItemCache(); if (rand.Next(2) == 0) { items[sX + cX, sY + cY].addItem(Item.items[0], rand.Next(2) + 1); } else { if (Program.player.species != Species._darkElf) { items[sX + cX, sY + cY].addItem(Item.get(1).setBound(rand.chooseBound()), 1); } else { items[sX + cX, sY + cY].addItem(Item.get(3).setBound(rand.chooseBound()), 1); } } } } } else { if (rand.Next(70) == 0) { genDeep = !genDeep; } if (genSwamp) { genDeep = false; map[sX + cX, sY + cY] = Tile.swampWater; } else { if (genDeep) { map[sX + cX, sY + cY] = Tile.deepWater; } else { map[sX + cX, sY + cY] = Tile.shallowWater; } } } } } if (Program.floor > 1) { map[Program.renderX, Program.renderY] = Tile.upStairCase; } //Program.levelMap.Add(Program.area + ":" + Program.floor, this); }