From a041fcb3774e2a6b72f544807fa031db30ad1aa5 Mon Sep 17 00:00:00 2001
From: Bunny <glisa825@gmail.com>
Date: Sat, 28 Dec 2019 04:29:36 -0500
Subject: [PATCH] Nsrr forest ruined building 1 and 3 update Same spawn
 locations, add variety

---
 .../maps/vaults/forest-ruined-building1.lua   | 75 ++++++++++++++----
 .../maps/vaults/forest-ruined-building3.lua   | 78 +++++++++++++++----
 2 files changed, 126 insertions(+), 27 deletions(-)

diff --git a/game/modules/tome/data/maps/vaults/forest-ruined-building1.lua b/game/modules/tome/data/maps/vaults/forest-ruined-building1.lua
index 01147d97f9..b9ad32c834 100644
--- a/game/modules/tome/data/maps/vaults/forest-ruined-building1.lua
+++ b/game/modules/tome/data/maps/vaults/forest-ruined-building1.lua
@@ -19,30 +19,79 @@
 
 setStatusAll{no_teleport=true, room_map = {can_open=true}}
 specialList("actor", {
-	"/data/general/npcs/troll.lua",
+   "/data/general/npcs/troll.lua",
+   "/data/general/npcs/ghoul.lua",
+   "/data/general/npcs/thieve.lua",
+   "/data/general/npcs/skeleton.lua",
 })
 border = 0
 rotates = {"default", "90", "180", "270", "flipx", "flipy"}
 
 defineTile('.', "FLOOR")
-defineTile(',', "GRASS")
-defineTile('#', "WALL")
-defineTile('X', "TREE")
+defineTile(',', data.floor or data['.'] or "GRASS")
+defineTile('#', "HARDWALL")
+defineTile('X', "HARDTREE")
 defineTile('+', "DOOR")
 defineTile('x', "DOOR_VAULT")
 
-defineTile('T', "FLOOR", {random_filter={type="scroll", tome_mod="vault"}}, {random_filter={name="forest troll", add_levels=4}})
+local mobs = {
+   "cave troll",
+   "thief",
+   "skeleton magus",
+   "ghast",
+}
+local mob = rng.tableRemove(mobs)
+local moblet = "forest troll"
+if mob == "thief" then moblet = "bandit"
+elseif mob == "skeleton magus" then moblet = "skeleton warrior"
+elseif mob == "ghast" then moblet = "ghoul"
+end
 
+defineTile('T', "FLOOR", {random_filter={type="scroll", ego_chance =50, add_levels=8}}, {random_filter={name=mob, add_levels=8}})
+defineTile('t', "FLOOR", {random_filter={tome_mod="vault", add_levels=5}}, {random_filter={name=moblet, add_levels=6}})
+defineTile('m', "FLOOR", nil, {random_filter={name=moblet, add_levels=4}})
+
+local version = rng.range(1,3)
+if version == 1 then
 return {
 [[,,,,,,,,,,,,,]],
-[[,#####,,,X,,,]],
-[[,#...#,,X,,X,]],
-[[,#T..#,,,,X,,]],
+[[,#####XXXX,,,]],
+[[,#tTt#,,XX,X,]],
+[[,#...#,,,XXX,]],
 [[,###x#X#X.,#,]],
-[[,#.....XX,.#,]],
-[[,X,.,...,..+,]],
+[[,#,..,,XX,.#,]],
+[[,X.m...m,..+,]],
 [[,X,,.X.,...+,]],
-[[,,,X..,....#,]],
-[[,##XX,##X#X#,]],
+[[,X,X.m.,,..#,]],
+[[,##XX#XXX#X#,]],
+[[,,,,,,,,,,,,,]],
+}
+elseif version == 2 then
+return {
+[[,,,,,,,,,,,,,]],
+[[,##X##XXXX#X,]],
+[[,X,,,,.m.XX,,]],
+[[,X,.,....,XX,]],
+[[,X.###x###,#,]],
+[[,Xm#t...t#,#,]],
+[[,#.#..T..#,#,]],
+[[,#,#######,X,]],
+[[,X,,,.,.m.#X,]],
+[[,X###++#####,]],
+[[,,,,,,,,,,,,,]],
+}
+else
+return {
+[[,,,,,,,,,,,,,]],
+[[,###++##X#X,,]],
+[[,#,.m.,#XX#X,]],
+[[,X,...,,,XXX,]],
+[[,X.mXX,,,,,#,]],
+[[,#...,,,.X.#,]],
+[[,#####,,,,.X,]],
+[[,#t,.x..mX.#,]],
+[[,#Tt.#,.X..#,]],
+[[,#########X#,]],
 [[,,,,,,,,,,,,,]],
-}
\ No newline at end of file
+}
+end
\ No newline at end of file
diff --git a/game/modules/tome/data/maps/vaults/forest-ruined-building3.lua b/game/modules/tome/data/maps/vaults/forest-ruined-building3.lua
index d5f0b0cc78..befc838356 100644
--- a/game/modules/tome/data/maps/vaults/forest-ruined-building3.lua
+++ b/game/modules/tome/data/maps/vaults/forest-ruined-building3.lua
@@ -19,7 +19,17 @@
 
 setStatusAll{no_teleport=true, room_map = {can_open=true}}
 specialList("actor", {
-	"/data/general/npcs/skeleton.lua",
+   "/data/general/npcs/skeleton.lua",
+   "/data/general/npcs/snake.lua",
+   "/data/general/npcs/molds.lua",
+   "/data/general/npcs/feline.lua",
+   "/data/general/npcs/ant.lua",
+   "/data/general/npcs/sandworm.lua",
+   "/data/general/npcs/spider.lua",
+   "/data/general/npcs/vermin.lua",
+   "/data/general/npcs/rodent.lua",
+   "/data/general/npcs/ooze.lua",
+   "/data/general/npcs/jelly.lua",
 })
 border = 0
 rotates = {"default", "90", "180", "270", "flipx", "flipy"}
@@ -28,23 +38,63 @@ defineTile('.', "FLOOR")
 defineTile(',', "GRASS")
 defineTile(';', "FLOWER")
 defineTile('~', "DEEP_WATER")
-defineTile('#', "WALL")
-defineTile('X', "TREE")
-defineTile('+', "DOOR")
+defineTile('#', "HARDWALL")
+defineTile('X', "HARDTREE")
 defineTile('x', "DOOR_VAULT")
 
-defineTile('s', "FLOOR", nil, {random_filter={name="degenerated skeleton warrior"}})
+local mobs = {
+   "rattlesnake",
+   "green worm mass",
+   "giant brown ant",
+   "snow cat",
+   "green mold",
+   "giant grey rat",
+   "giant spider",
+   "sandworm",
+   "grey mold",
+   "giant brown rat",
+   "skeleton mage",
+   "skeleton archer",
+   "skeleton warrior",
+   "giant green ant",
+   "giant red ant",
+   "giant yellow ant",
+   "giant blue ant",
+   "brown mold",
+   "white worm mass",
+   "giant crystal rat",
+   "spitting spider",
+   "weaver young",
+   "green ooze",
+   "red ooze",
+   "yellow ooze",
+   "blue ooze",
+   "green jelly",
+   "red jelly",
+   "blue jelly",
+   "yellow jelly",
+}
+
+defineTile('s', "FLOOR", "MONEY_SMALL", {random_filter={name="degenerated skeleton warrior"}}) -- retain closet skeleton for posterity; give it a little money to guard so he's not so sad
+
+--ALL OF THE VARIABILITY
+defineTile('1', "FLOOR", rng.percent(66)and{random_filter={tome_mod="vault", add_levels=rng.range(1,3)}} or nil, rng.percent(50) and {random_filter={name=rng.tableRemove(mobs), add_levels=rng.range(5,10)}} or nil)
+defineTile('2', "FLOOR", rng.percent(50)and{random_filter={tome_mod="vault", add_levels=rng.range(2,5)}} or nil, rng.percent(66) and {random_filter={name=rng.tableRemove(mobs), add_levels=rng.range(4,8)}} or nil)
+defineTile('3', "FLOOR", rng.percent(66)and{random_filter={add_levels=rng.range(2,4), ego_chance=rng.range(75,100)}} or nil, rng.percent(50) and {random_filter={name=rng.tableRemove(mobs), add_levels=rng.range(5,10)}} or nil)
+defineTile('4', "FLOOR", rng.percent(50)and{random_filter={add_levels=rng.range(3,6), ego_chance=rng.range(66,100)}} or nil, rng.percent(66) and {random_filter={name=rng.tableRemove(mobs), add_levels=rng.range(4,8)}} or nil)
+defineTile('5', "FLOOR", rng.percent(66)and{random_filter={tome_mod="vault", add_levels=rng.range(1,3)}} or nil, rng.percent(50) and {random_filter={name=rng.tableRemove(mobs), add_levels=rng.range(5,10)}} or nil)
+defineTile('6', "FLOOR", rng.percent(50)and{random_filter={tome_mod="vault", add_levels=rng.range(4,6)}} or nil, rng.percent(66) and {random_filter={name=rng.tableRemove(mobs), add_levels=rng.range(4,8)}} or nil)
 
 return {
 [[,,,,,,,,,,,,,,,,]],
 [[,#X#########X,,,]],
-[[,,.+....+..,..X,]],
-[[,###....#.###.,,]],
-[[,#.+....#.....#,]],
-[[,###....###+###,]],
-[[,#sx....#,,,,,,,]],
-[[,###...X#,;;;;;,]],
-[[,#.+..,.,,;~~~;,]],
-[[,#####X,,,;;;;;,]],
-[[,,,,,,,,,,,,,,,,]],
+[[,#2x.;,.x.6,X.X,]],
+[[,###.,,.####XXX,]],
+[[,#3x.;,.#.5.1.#,]],
+[[,###.;;.###x###,]],
+[[,#sx..,,#;;;;;;;]],
+[[,###.,,X#;;~~~;;]],
+[[,#4x..,.,;;~~~;;]],
+[[,#####X,,;;~~~;;]],
+[[,,,,,,,,,;;;;;;;]],
 }
-- 
GitLab