diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index 87b613a8e3..74bc9f5506 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -606,7 +606,7 @@ var/list/mining_overlay_cache = list()
new /obj/item/stack/material/uranium(src, rand(5,25))
/turf/simulated/mineral/proc/make_ore(var/rare_ore)
- if(mineral || ignore_mapgen) //VOREStation Edit - Makes sense, doesn't it?
+ if(mineral || ignore_mapgen || ignore_oregen) //VOREStation Edit - Makes sense, doesn't it?
return
var/mineral_name
diff --git a/code/modules/mining/mine_turfs_vr.dm b/code/modules/mining/mine_turfs_vr.dm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
index 9c69e7d621..7c4df21f45 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
@@ -1,41 +1,77 @@
/obj/structure/closet/crate/mimic
+ name = "old crate"
+ desc = "A rectangular steel crate. This one looks particularly unstable."
+ var/mimic_chance = 30
+ var/mimic_active = TRUE
+/obj/structure/closet/crate/mimic/open()
+ if(src.opened)
+ return 0
+ if(!src.can_open())
+ return 0
+ if(mimic_active)
+ mimic_active = FALSE
+ if(prob(mimic_chance))
+ var/mob/living/simple_mob/vore/aggressive/mimic/new_mimic = new(loc, src)
+ visible_message("The [new_mimic] suddenly growls as it turns out to be a mimic!")
+ forceMove(new_mimic)
+ new_mimic.real_crate = src
+ new_mimic.name = name
+ new_mimic.desc = desc
+ new_mimic.icon = icon
+ new_mimic.icon_state = icon_opened
+ new_mimic.icon_living = icon_opened
+ else
+ return ..()
+ else
+ return ..()
+/obj/structure/closet/crate/mimic/ex_act(severity)
+ for(var/obj/O in src.contents)
+ qdel(O)
+ qdel(src)
+ return
+/obj/structure/closet/crate/mimic/damage(var/damage)
+ if(contents.len)
+ visible_message("The [src] makes out a crunchy noise as its contents are destroyed!")
+ for(var/obj/O in src.contents)
+ qdel(O)
+ ..()
+/obj/structure/closet/crate/mimic/safe
+ mimic_chance = 0
+ mimic_active = FALSE
+/obj/structure/closet/crate/mimic/guaranteed
+ mimic_chance = 100
+/obj/structure/closet/crate/mimic/dangerous
+ mimic_chance = 70
-
-
-
-
-
-
-
+/obj/structure/closet/crate/mimic/cointoss
+ mimic_chance = 50
/mob/living/simple_mob/vore/aggressive/mimic
name = "crate"
desc = "A rectangular steel crate."
-
icon_state = "crate"
icon_living = "crate"
icon = 'icons/obj/storage.dmi'
faction = "mimic"
- maxHealth = 250
- health = 250
- movement_cooldown = 5
+ maxHealth = 125
+ health = 125
+ movement_cooldown = 7
response_help = "touches"
response_disarm = "pushes"
response_harm = "hits"
- harm_intent_damage = 5
- melee_damage_lower = 4
- melee_damage_upper = 6
+ melee_damage_lower = 7
+ melee_damage_upper = 15
attacktext = list("attacked")
attack_sound = 'sound/weapons/bite.ogg'
@@ -49,24 +85,17 @@
max_n2 = 0
minbodytemp = 0
- say_list_type = /datum/say_list/mimic
ai_holder_type = /datum/ai_holder/mimic
var/obj/structure/closet/crate/real_crate
- var/knockdown_chance = 15 //Stubbing your toe on furniture hurts.
+ var/knockdown_chance = 10 //Stubbing your toe on furniture hurts.
showvoreprefs = 0 //Hides mechanical vore prefs for mimics. You can't see their gaping maws when they're just sitting idle.
-/datum/say_list/mimic
- say_got_target = list("Grrowl!")
-
/datum/ai_holder/mimic
wander = FALSE
hostile = TRUE
- threaten = TRUE
- threaten_timeout = 5 SECONDS
- threaten_delay = 1 SECONDS //not a threat, more of a delay.
/mob/living/simple_mob/vore/aggressive/mimic/apply_melee_effects(var/atom/A)
if(isliving(A))
@@ -80,6 +109,9 @@
/mob/living/simple_mob/vore/aggressive/mimic/death()
..()
- real_crate.forceMove(loc)
+ if(real_crate)
+ real_crate.forceMove(loc)
+ else
+ new/obj/structure/closet/crate(loc)
real_crate = null
qdel(src)
\ No newline at end of file
diff --git a/code/modules/random_map/automata/caves.dm b/code/modules/random_map/automata/caves.dm
index 264fe8bc44..58e61045b3 100644
--- a/code/modules/random_map/automata/caves.dm
+++ b/code/modules/random_map/automata/caves.dm
@@ -47,7 +47,7 @@
if(!current_cell)
return 0
var/turf/simulated/mineral/T = locate((origin_x-1)+x,(origin_y-1)+y,origin_z)
- if(istype(T) && !T.ignore_mapgen)
+ if(istype(T) && !T.ignore_mapgen && !T.ignore_cavegen) //VOREStation Edit: ignore cavegen
if(map[current_cell] == FLOOR_CHAR)
T.make_floor() //VOREStation Edit - Don't make cracked sand on surface map, jerk.
//if(prob(90))
diff --git a/maps/tether/submaps/underdark_pois/_templates.dm b/maps/tether/submaps/underdark_pois/_templates.dm
index 1b8c5432ed..9e639c556f 100644
--- a/maps/tether/submaps/underdark_pois/_templates.dm
+++ b/maps/tether/submaps/underdark_pois/_templates.dm
@@ -13,9 +13,52 @@
mappath = 'hard_mob.dmm'
cost = 15
+/datum/map_template/underdark/vault1
+ name = "Underdark Vault 1"
+ mappath = 'vault1.dmm'
+ cost = 10
+
+/datum/map_template/underdark/vault2
+ name = "Underdark Vault 2"
+ mappath = 'vault2.dmm'
+ cost = 15
+
+/datum/map_template/underdark/vault3
+ name = "Underdark Vault 3"
+ mappath = 'vault3.dmm'
+ cost = 10
+
+/datum/map_template/underdark/guardedloot_normal
+ name = "Underdark Guarded Loot Normal"
+ mappath = 'guardedloot_normal.dmm'
+ cost = 10
+
+/datum/map_template/underdark/guardedloot_hard
+ name = "Underdark Guarded Loot Hard"
+ mappath = 'guardedloot_hard.dmm'
+ cost = 20
+
+/datum/map_template/underdark/mechwreck
+ name = "Underdark Mech Wreck"
+ mappath = 'mechwreck.dmm'
+ cost = 15
+ allow_duplicates = FALSE
+
/datum/map_template/underdark/underhall
name = "Underdark Golden Hall"
mappath = 'goldhall.dmm'
+ cost = 20
+ allow_duplicates = FALSE
+
+/datum/map_template/underdark/abandonedshelter
+ name = "Underdark Abandoned Shelter"
+ mappath = 'abandonedshelter.dmm'
+ cost = 15
+ allow_duplicates = FALSE
+
+/datum/map_template/underdark/deadminer
+ name = "Underdark Dead Miner"
+ mappath = 'deadminer.dmm'
cost = 15
allow_duplicates = FALSE
diff --git a/maps/tether/submaps/underdark_pois/abandonedshelter.dmm b/maps/tether/submaps/underdark_pois/abandonedshelter.dmm
new file mode 100644
index 0000000000..8b015c4933
--- /dev/null
+++ b/maps/tether/submaps/underdark_pois/abandonedshelter.dmm
@@ -0,0 +1,22 @@
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/turf/simulated/shuttle/wall/voidcraft,/area/mine/explored/underdark)
+"d" = (/obj/structure/sign/mining/survival{dir = 8},/turf/simulated/shuttle/wall/voidcraft,/area/mine/explored/underdark)
+"e" = (/turf/simulated/shuttle/floor/voidcraft,/area/mine/explored/underdark)
+"f" = (/obj/structure/bed/pod,/obj/item/weapon/bedsheet/mime,/turf/simulated/shuttle/floor/voidcraft,/area/mine/explored/underdark)
+"g" = (/obj/structure/sign/mining/survival{dir = 4},/turf/simulated/shuttle/wall/voidcraft,/area/mine/explored/underdark)
+"h" = (/obj/structure/table/survival_pod,/obj/random/multiple/underdark/miningdrills,/turf/simulated/shuttle/floor/voidcraft,/area/mine/explored/underdark)
+"i" = (/obj/structure/tubes,/obj/structure/bed/chair/comfy/black{dir = 8},/turf/simulated/shuttle/floor/voidcraft,/area/mine/explored/underdark)
+"j" = (/obj/structure/sign/mining/survival,/turf/simulated/shuttle/wall/voidcraft,/area/mine/explored/underdark)
+"k" = (/obj/machinery/door/airlock/voidcraft/survival_pod,/turf/simulated/shuttle/floor/voidcraft,/area/mine/explored/underdark)
+"l" = (/obj/structure/sign/mining,/turf/simulated/shuttle/wall/voidcraft,/area/mine/explored/underdark)
+
+(1,1,1) = {"
+aabbb
+abbbb
+bbbcc
+bbbbc
+dbefg
+cheic
+cjklc
+"}
diff --git a/maps/tether/submaps/underdark_pois/boss_mob.dmm b/maps/tether/submaps/underdark_pois/boss_mob.dmm
index 1310ed1438..d54690e874 100644
--- a/maps/tether/submaps/underdark_pois/boss_mob.dmm
+++ b/maps/tether/submaps/underdark_pois/boss_mob.dmm
@@ -1,132 +1,16 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/simulated/mineral/floor/virgo3b,
-/area/mine/explored/underdark)
-"b" = (
-/turf/simulated/mineral/virgo3b/rich,
-/area/mine/explored/underdark)
-"c" = (
-/obj/tether_away_spawner/underdark_boss,
-/turf/simulated/mineral/floor/virgo3b,
-/area/mine/explored/underdark)
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/obj/tether_away_spawner/underdark_boss,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
(1,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-b
-b
-b
-"}
-(2,1,1) = {"
-b
-b
-a
-a
-a
-a
-a
-a
-b
-b
-"}
-(3,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-"}
-(4,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-a
-a
-c
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-"}
-(9,1,1) = {"
-b
-b
-a
-a
-a
-a
-a
-a
-b
-b
-"}
-(10,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-b
-b
-b
+aaabbbbaaa
+aabbbbbbaa
+abbbbbbbba
+bbbbbbbbbb
+bbbbbbbbbb
+bbbbcbbbbb
+bbbbbbbbbb
+abbbbbbbba
+aabbbbbbaa
+aaabbbbaaa
"}
diff --git a/maps/tether/submaps/underdark_pois/deadminer.dmm b/maps/tether/submaps/underdark_pois/deadminer.dmm
new file mode 100644
index 0000000000..8e5cd8e2b2
--- /dev/null
+++ b/maps/tether/submaps/underdark_pois/deadminer.dmm
@@ -0,0 +1,15 @@
+"a" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/turf/template_noop,/area/mine/explored/underdark)
+"d" = (/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"e" = (/obj/structure/closet/crate/mimic/guaranteed,/obj/random/multiple/underdark/ores,/obj/random/multiple/underdark/miningdrills,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/accessory/poncho/roles/cloak/mining,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+
+(1,1,1) = {"
+aabbccc
+aaabbbc
+baaabbb
+bbdaabb
+bbbaebb
+cbbbbbb
+cccbbbc
+"}
diff --git a/maps/tether/submaps/underdark_pois/guardedloot_hard.dmm b/maps/tether/submaps/underdark_pois/guardedloot_hard.dmm
new file mode 100644
index 0000000000..d025069090
--- /dev/null
+++ b/maps/tether/submaps/underdark_pois/guardedloot_hard.dmm
@@ -0,0 +1,10 @@
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/obj/tether_away_spawner/underdark_hard,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"d" = (/obj/structure/closet/crate/mimic/safe,/obj/random/underdark,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+
+(1,1,1) = {"
+abbca
+abbbb
+bdbaa
+"}
diff --git a/maps/tether/submaps/underdark_pois/guardedloot_normal.dmm b/maps/tether/submaps/underdark_pois/guardedloot_normal.dmm
new file mode 100644
index 0000000000..fa0b9d736c
--- /dev/null
+++ b/maps/tether/submaps/underdark_pois/guardedloot_normal.dmm
@@ -0,0 +1,12 @@
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/obj/random/underdark,/obj/structure/closet/crate/mimic/safe,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"d" = (/obj/tether_away_spawner/underdark_normal,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+
+(1,1,1) = {"
+abaa
+bbba
+bcbb
+bbdb
+abba
+"}
diff --git a/maps/tether/submaps/underdark_pois/hard_mob.dmm b/maps/tether/submaps/underdark_pois/hard_mob.dmm
index 51fb0f8242..3b5ee7751c 100644
--- a/maps/tether/submaps/underdark_pois/hard_mob.dmm
+++ b/maps/tether/submaps/underdark_pois/hard_mob.dmm
@@ -1,136 +1,16 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/simulated/mineral/floor/virgo3b{
- ignore_mapgen = 1
- },
-/area/mine/explored/underdark)
-"b" = (
-/turf/simulated/mineral/virgo3b/rich,
-/area/mine/explored/underdark)
-"c" = (
-/obj/tether_away_spawner/underdark_hard,
-/turf/simulated/mineral/floor/virgo3b{
- ignore_mapgen = 1
- },
-/area/mine/explored/underdark)
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/obj/tether_away_spawner/underdark_hard,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
(1,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-b
-b
-b
-"}
-(2,1,1) = {"
-b
-b
-a
-a
-a
-a
-a
-a
-b
-b
-"}
-(3,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-"}
-(4,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-a
-a
-a
-c
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-"}
-(9,1,1) = {"
-b
-b
-a
-a
-a
-a
-a
-a
-b
-b
-"}
-(10,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-b
-b
-b
+aaabbbbaaa
+aabbbbbbaa
+abbbbbbbba
+bbbbbbbbbb
+bbbbbbbbbb
+bbbbbbbbbb
+bbbbcbbbbb
+abbbbbbbba
+aabbbbbbaa
+aaabbbbaaa
"}
diff --git a/maps/tether/submaps/underdark_pois/mechwreck.dmm b/maps/tether/submaps/underdark_pois/mechwreck.dmm
new file mode 100644
index 0000000000..af393ef4a1
--- /dev/null
+++ b/maps/tether/submaps/underdark_pois/mechwreck.dmm
@@ -0,0 +1,12 @@
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/obj/random/multiple/underdark/mechtool,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"d" = (/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+
+(1,1,1) = {"
+aabbba
+abbbcb
+bbdbbb
+bbbbbb
+abcbba
+"}
diff --git a/maps/tether/submaps/underdark_pois/normal_mob.dmm b/maps/tether/submaps/underdark_pois/normal_mob.dmm
index b733670804..4f7cd51fb8 100644
--- a/maps/tether/submaps/underdark_pois/normal_mob.dmm
+++ b/maps/tether/submaps/underdark_pois/normal_mob.dmm
@@ -1,136 +1,16 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/simulated/mineral/floor/virgo3b{
- ignore_mapgen = 1
- },
-/area/mine/explored/underdark)
-"b" = (
-/turf/simulated/mineral/virgo3b/rich,
-/area/mine/explored/underdark)
-"c" = (
-/obj/tether_away_spawner/underdark_normal,
-/turf/simulated/mineral/floor/virgo3b{
- ignore_mapgen = 1
- },
-/area/mine/explored/underdark)
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/obj/tether_away_spawner/underdark_normal,/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
(1,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-b
-b
-b
-"}
-(2,1,1) = {"
-b
-b
-a
-a
-a
-a
-a
-a
-b
-b
-"}
-(3,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-"}
-(4,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(5,1,1) = {"
-a
-a
-a
-a
-a
-c
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-"}
-(9,1,1) = {"
-b
-b
-a
-a
-a
-a
-a
-a
-b
-b
-"}
-(10,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-b
-b
-b
+aaabbbbaaa
+aabbbbbbaa
+abbbbbbbba
+bbbbbbbbbb
+bbbbbbbbbb
+bbbbcbbbbb
+bbbbbbbbbb
+abbbbbbbba
+aabbbbbbaa
+aaabbbbaaa
"}
diff --git a/maps/tether/submaps/underdark_pois/underdark_things.dm b/maps/tether/submaps/underdark_pois/underdark_things.dm
index 9d4e2cba06..e22977e769 100644
--- a/maps/tether/submaps/underdark_pois/underdark_things.dm
+++ b/maps/tether/submaps/underdark_pois/underdark_things.dm
@@ -46,9 +46,199 @@
/mob/living/simple_mob/vore/aggressive/dragon = 1
)
+/obj/random/underdark
+ name = "random underdark loot"
+ desc = "Random loot for Underdark."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "spickaxe"
+/obj/random/underdark/item_to_spawn()
+ return pick(prob(3);/obj/random/multiple/underdark/miningdrills,
+ prob(3);/obj/random/multiple/underdark/ores,
+ prob(2);/obj/random/multiple/underdark/treasure,
+ prob(1);/obj/random/multiple/underdark/mechtool)
+
+/obj/random/underdark/uncertain
+ icon_state = "upickaxe"
+ spawn_nothing_percentage = 65 //only 33% to spawn loot
+
+/obj/random/multiple/underdark/miningdrills
+ name = "random underdark mining tool loot"
+ desc = "Random mining tool loot for Underdark."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "spickaxe"
+
+/obj/random/multiple/underdark/miningdrills/item_to_spawn()
+ return pick(
+ prob(10);list(/obj/item/weapon/pickaxe/silver),
+ prob(8);list(/obj/item/weapon/pickaxe/drill),
+ prob(6);list(/obj/item/weapon/pickaxe/jackhammer),
+ prob(5);list(/obj/item/weapon/pickaxe/gold),
+ prob(4);list(/obj/item/weapon/pickaxe/plasmacutter),
+ prob(2);list(/obj/item/weapon/pickaxe/diamond),
+ prob(1);list(/obj/item/weapon/pickaxe/diamonddrill)
+ )
+
+/obj/random/multiple/underdark/ores
+ name = "random underdark mining ore loot"
+ desc = "Random mining utility loot for Underdark."
+ icon = 'icons/obj/mining.dmi'
+ icon_state = "satchel"
+
+/obj/random/multiple/underdark/ores/item_to_spawn()
+ return pick(
+ prob(9);list(
+ /obj/item/weapon/storage/bag/ore,
+ /obj/item/weapon/shovel,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen
+ ),
+ prob(7);list(
+ /obj/item/weapon/storage/bag/ore,
+ /obj/item/weapon/pickaxe,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium
+ ),
+ prob(4);list(
+ /obj/item/clothing/suit/radiation,
+ /obj/item/clothing/head/radiation,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium),
+ prob(2);list(
+ /obj/item/device/flashlight/lantern,
+ /obj/item/clothing/glasses/material,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond
+ ),
+ prob(1);list(
+ /obj/item/weapon/mining_scanner,
+ /obj/item/weapon/shovel/spade,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium
+ )
+ )
+
+/obj/random/multiple/underdark/treasure
+ name = "random underdark treasure"
+ desc = "Random treasure loot for Underdark."
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "cashbag"
+
+/obj/random/multiple/underdark/treasure/item_to_spawn()
+ return pick(
+ prob(5);list(
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/item/clothing/head/pirate
+ ),
+ prob(4);list(
+ /obj/item/weapon/storage/bag/cash,
+ /obj/item/weapon/spacecash/c500,
+ /obj/item/weapon/spacecash/c100,
+ /obj/item/weapon/spacecash/c50
+ ),
+ prob(3);list(
+ /obj/item/clothing/head/hardhat/orange,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold),
+ prob(1);list(
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/diamond,
+ /obj/item/stack/material/diamond,
+ /obj/item/stack/material/diamond
+ )
+ )
+
+/obj/random/multiple/underdark/mechtool
+ name = "random underdark mech equipment"
+ desc = "Random mech equipment loot for Underdark."
+ icon = 'icons/mecha/mecha_equipment.dmi'
+ icon_state = "mecha_clamp"
+
+/obj/random/multiple/underdark/mechtool/item_to_spawn()
+ return pick(
+ prob(12);list(/obj/item/mecha_parts/mecha_equipment/tool/drill),
+ prob(10);list(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp),
+ prob(8);list(/obj/item/mecha_parts/mecha_equipment/generator),
+ prob(7);list(/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/rigged),
+ prob(6);list(/obj/item/mecha_parts/mecha_equipment/repair_droid),
+ prob(4);list(/obj/item/mecha_parts/mecha_equipment/combat_shield),
+ prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser),
+ prob(1);list(/obj/item/mecha_parts/mecha_equipment/wormhole_generator),
+ prob(1);list(/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill),
+ )
//POI STUFF
+VIRGO3B_TURF_CREATE(/turf/simulated/mineral/ignore_mapgen)
+VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
+
+//Vault2
+VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled/freezer)
//Goldhall
VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled/kafel_full/yellow)
diff --git a/maps/tether/submaps/underdark_pois/vault1.dmm b/maps/tether/submaps/underdark_pois/vault1.dmm
index cbd9840121..345ce12da1 100644
--- a/maps/tether/submaps/underdark_pois/vault1.dmm
+++ b/maps/tether/submaps/underdark_pois/vault1.dmm
@@ -1,13 +1,15 @@
"a" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/virgo3b,/area/mine/explored/underdark)
"b" = (/turf/simulated/wall/iron,/area/mine/explored/underdark)
"c" = (/turf/template_noop,/area/mine/explored/underdark)
-"d" = (/turf/simulated/mineral/floor/virgo3b,/area/mine/explored/underdark)
+"d" = (/turf/simulated/mineral/floor/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"e" = (/obj/effect/floor_decal/rust,/obj/structure/closet/crate/mimic/cointoss,/obj/random/underdark,/turf/simulated/floor/virgo3b,/area/mine/explored/underdark)
+"f" = (/obj/effect/floor_decal/rust,/obj/structure/closet/crate/mimic/safe,/obj/random/underdark/uncertain,/turf/simulated/floor/virgo3b,/area/mine/explored/underdark)
(1,1,1) = {"
bbbbcc
baddcc
-badddc
+bedddc
baaddb
-baaadb
+bafadb
bbbbbb
"}
diff --git a/maps/tether/submaps/underdark_pois/vault2.dmm b/maps/tether/submaps/underdark_pois/vault2.dmm
new file mode 100644
index 0000000000..ccee939464
--- /dev/null
+++ b/maps/tether/submaps/underdark_pois/vault2.dmm
@@ -0,0 +1,14 @@
+"a" = (/turf/simulated/wall/titanium,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/obj/structure/closet/crate/mimic/dangerous,/obj/random/multiple/underdark/treasure,/turf/simulated/floor/tiled/freezer/virgo3b,/area/mine/explored/underdark)
+"d" = (/turf/simulated/floor/tiled/freezer/virgo3b,/area/mine/explored/underdark)
+"e" = (/obj/structure/closet/crate/mimic,/obj/random/underdark,/turf/simulated/floor/tiled/freezer/virgo3b,/area/mine/explored/underdark)
+"f" = (/obj/structure/simple_door/silver,/turf/simulated/floor/tiled/freezer/virgo3b,/area/mine/explored/underdark)
+
+(1,1,1) = {"
+aaabb
+acdbb
+addeb
+addda
+aafaa
+"}
diff --git a/maps/tether/submaps/underdark_pois/vault3.dmm b/maps/tether/submaps/underdark_pois/vault3.dmm
new file mode 100644
index 0000000000..e86761ff5c
--- /dev/null
+++ b/maps/tether/submaps/underdark_pois/vault3.dmm
@@ -0,0 +1,14 @@
+"a" = (/turf/template_noop,/area/mine/explored/underdark)
+"b" = (/turf/simulated/mineral/ignore_mapgen/virgo3b,/area/mine/explored/underdark)
+"c" = (/turf/simulated/wall/r_wall,/area/mine/explored/underdark)
+"d" = (/turf/simulated/floor/tiled/steel_dirty/virgo3b,/area/mine/explored/underdark)
+"e" = (/obj/structure/closet/crate/mimic/cointoss,/obj/random/underdark,/turf/simulated/floor/tiled/steel_dirty/virgo3b,/area/mine/explored/underdark)
+
+(1,1,1) = {"
+aabbbba
+abbbbbb
+bbbbbbb
+bbbbbbc
+abbbdec
+aabcccc
+"}
diff --git a/maps/tether/tether_turfs.dm b/maps/tether/tether_turfs.dm
index 8e3ccbfcdb..d1c009f88f 100644
--- a/maps/tether/tether_turfs.dm
+++ b/maps/tether/tether_turfs.dm
@@ -61,22 +61,22 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
var/mineral_name
if(rare_ore)
mineral_name = pickweight(list(
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 20,
- "carbon" = 20,
- "diamond" = 1,
- "gold" = 8,
- "silver" = 8,
+ "uranium" = 10,
+ "platinum" = 10,
+ "hematite" = 20,
+ "carbon" = 20,
+ "diamond" = 1,
+ "gold" = 8,
+ "silver" = 8,
"phoron" = 18))
else
mineral_name = pickweight(list(
- "uranium" = 5,
- "platinum" = 5,
- "hematite" = 35,
- "carbon" = 35,
- "gold" = 3,
- "silver" = 3,
+ "uranium" = 5,
+ "platinum" = 5,
+ "hematite" = 35,
+ "carbon" = 35,
+ "gold" = 3,
+ "silver" = 3,
"phoron" = 25))
if(mineral_name && (mineral_name in ore_data))
mineral = ore_data[mineral_name]
@@ -89,21 +89,21 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
var/mineral_name
if(rare_ore)
mineral_name = pickweight(list(
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 10,
- "carbon" = 10,
- "diamond" = 4,
- "gold" = 15,
+ "uranium" = 10,
+ "platinum" = 10,
+ "hematite" = 10,
+ "carbon" = 10,
+ "diamond" = 4,
+ "gold" = 15,
"silver" = 15))
else
mineral_name = pickweight(list(
- "uranium" = 7,
- "platinum" = 7,
- "hematite" = 28,
- "carbon" = 28,
- "diamond" = 2,
- "gold" = 7,
+ "uranium" = 7,
+ "platinum" = 7,
+ "hematite" = 28,
+ "carbon" = 28,
+ "diamond" = 2,
+ "gold" = 7,
"silver" = 7))
if(mineral_name && (mineral_name in ore_data))
mineral = ore_data[mineral_name]
diff --git a/vorestation.dme b/vorestation.dme
index 821407c711..a0b0380f49 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -2009,6 +2009,7 @@
#include "code\modules\mining\mine_items.dm"
#include "code\modules\mining\mine_items_vr.dm"
#include "code\modules\mining\mine_turfs.dm"
+#include "code\modules\mining\mine_turfs_vr.dm"
#include "code\modules\mining\mineral_effect.dm"
#include "code\modules\mining\mint.dm"
#include "code\modules\mining\money_bag.dm"