diff --git a/_maps/dungeon_generator/boss/orcboss.dmm b/_maps/dungeon_generator/boss/orcboss.dmm index 3cd2f68a09c..f023d701c8d 100644 --- a/_maps/dungeon_generator/boss/orcboss.dmm +++ b/_maps/dungeon_generator/boss/orcboss.dmm @@ -2,24 +2,24 @@ "as" = ( /obj/structure/fluff/railing/border, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "cl" = ( /obj/structure/table/wood{ icon_state = "tablewood1" }, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "fZ" = ( /mob/living/carbon/human/species/orc/npc/footsoldier, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/under/tomb/cave) "hr" = ( /obj/structure/fluff/railing/border{ dir = 5 }, /mob/living/carbon/human/species/orc/npc/marauder, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "ih" = ( /obj/structure/fluff/railing/border{ dir = 4; @@ -27,14 +27,14 @@ pixel_y = 0 }, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "ji" = ( /obj/structure/table/wood{ icon_state = "tablewood1" }, /obj/machinery/light/rogue/candle, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "mA" = ( /obj/structure/chair/wood/rogue/throne, /obj/item/clothing/ring/active/nomag, @@ -43,17 +43,17 @@ name = "Orc Chief" }, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "ni" = ( /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "pF" = ( /obj/structure/fluff/railing/border{ dir = 6 }, /mob/living/carbon/human/species/orc/npc/marauder, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "qI" = ( /obj/structure/table/wood{ icon_state = "tablewood1" @@ -80,13 +80,13 @@ pixel_y = 11; pixel_x = 14 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "qW" = ( /mob/living/carbon/human/species/orc/npc/footsoldier, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "tg" = ( /obj/item/flint{ pixel_y = 4; @@ -95,25 +95,25 @@ /obj/structure/table/wood/crafted, /obj/item/clothing/mask/rogue/ragmask, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "tP" = ( /turf/closed/wall/mineral/rogue/decowood, -/area/rogue) +/area/rogue/under/tomb/cave) "vi" = ( /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "vl" = ( /obj/machinery/light/rogue/campfire/densefire, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "vD" = ( /obj/structure/roguetent, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "vF" = ( /obj/item/rogueweapon/shovel, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "wr" = ( /obj/structure/toilet, /obj/item/natural/poo{ @@ -128,19 +128,19 @@ }, /mob/living/carbon/human/species/orc/npc/footsoldier, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "wJ" = ( /obj/machinery/light/rogue/candle/l, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "BM" = ( /obj/structure/ladder, /turf/open/floor/rogue/naturalstone, -/area/rogue) +/area/rogue/under/tomb/cave) "Cg" = ( /obj/structure/closet/dirthole/grave, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "Cn" = ( /obj/structure/table/wood/crafted, /obj/item/clothing/mask/cigarette/rollie/nicotine{ @@ -150,100 +150,100 @@ pixel_y = 7 }, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "CV" = ( /mob/living/carbon/human/species/orc/npc/marauder, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/under/tomb/cave) "Dd" = ( /obj/structure/roguewindow, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "DD" = ( /obj/structure/table/wood{ dir = 1; icon_state = "longtable" }, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "EU" = ( /obj/structure/fluff/walldeco/innsign{ pixel_x = 32 }, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "Fq" = ( /turf/closed/mineral/rogue/bedrock, -/area/rogue) +/area/rogue/under/tomb/cave) "Fr" = ( /obj/item/clothing/shoes/roguetown/boots/nobleboot, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "FC" = ( /obj/machinery/light/rogue/firebowl, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "Ha" = ( /obj/structure/ladder, /obj/structure/ladder, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "Hr" = ( /mob/living/carbon/human/species/orc/npc/marauder, /obj/structure/chair/stool/rogue, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "HV" = ( /turf/open/floor/rogue/naturalstone, -/area/rogue) +/area/rogue/under/tomb/cave) "If" = ( /obj/structure/mineral_door/wood/window, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "Ig" = ( /obj/structure/stairs, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "IJ" = ( /obj/structure/chair/stool/rogue, /mob/living/carbon/human/species/orc/npc/berserker, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "Kd" = ( /obj/structure/fermentation_keg/random/beer, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "KW" = ( /obj/machinery/light/rogue/oven/south, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "Lj" = ( /obj/structure/bed/rogue/shit, /mob/living/simple_animal/hostile/retaliate/rogue/orc, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "Ln" = ( /turf/closed/wall/mineral/rogue/tent, -/area/rogue) +/area/rogue/under/tomb/cave) "MQ" = ( /obj/structure/closet/dirthole/closed/loot, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "NI" = ( /mob/living/carbon/human/species/orc/npc/berserker, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "OX" = ( /obj/structure/gate/bars/preopen, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/under/tomb/cave) "PN" = ( /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "PP" = ( /obj/structure/fluff/railing/fence, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) "Rc" = ( /obj/structure/closet/crate/chest/wicker, /obj/item/clothing/shoes/roguetown/boots/nobleboot, @@ -251,14 +251,14 @@ /obj/item/clothing/cloak/half/rider, /obj/item/clothing/suit/roguetown/armor/leather/vest/black, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "Ro" = ( /obj/machinery/light/rogue/candle{ pixel_y = 0; pixel_x = 32 }, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "Ug" = ( /obj/item/reagent_containers/glass/cup/skull{ pixel_x = -9 @@ -272,28 +272,28 @@ pixel_x = 12 }, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/under/tomb/cave) "Wm" = ( /obj/structure/table/wood{ icon_state = "longtable" }, /obj/item/clothing/neck/roguetown/collar/bell_collar, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "XK" = ( /turf/closed/wall/mineral/rogue/wooddark, -/area/rogue) +/area/rogue/under/tomb/cave) "Yl" = ( /obj/structure/chair/stool/rogue, /turf/open/floor/rogue/ruinedwood, -/area/rogue) +/area/rogue/under/tomb/cave) "Ze" = ( /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/under/tomb/cave) "ZQ" = ( /obj/structure/chair/stool/rogue, /turf/open/floor/rogue/dirt, -/area/rogue) +/area/rogue/under/tomb/cave) (1,1,1) = {" Fq diff --git a/_maps/dungeon_generator/entry/Tented Entrance.dmm b/_maps/dungeon_generator/entry/Tented Entrance.dmm index d222b68357e..ab69a76baa6 100644 --- a/_maps/dungeon_generator/entry/Tented Entrance.dmm +++ b/_maps/dungeon_generator/entry/Tented Entrance.dmm @@ -1,29 +1,29 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "e" = ( /obj/structure/table/wood{ icon_state = "tablewood1" }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "f" = ( /obj/machinery/light/rogue/torchholder/r, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/rogue/under/tomb/cave) "i" = ( /turf/closed/wall/mineral/rogue/decostone/end{ dir = 8 }, -/area/rogue) +/area/rogue/under/tomb/cave) "j" = ( /turf/closed/mineral/rogue/bedrock, -/area/rogue) +/area/rogue/under/tomb/cave) "l" = ( /obj/machinery/light/rogue/torchholder/r, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "m" = ( /obj/item/flashlight/flare/torch, /obj/item/flashlight/flare/torch{ @@ -38,121 +38,121 @@ icon_state = "tablewood1" }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "p" = ( /obj/structure/fluff/railing/border{ dir = 9 }, /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "r" = ( /obj/structure/stairs{ dir = 1 }, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/rogue/under/tomb/cave) "v" = ( /obj/structure/fluff/railing/border{ dir = 6 }, /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "w" = ( /obj/structure/stairs, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "x" = ( /obj/item/reagent_containers/glass/bottle/waterskin, /obj/structure/table/wood{ icon_state = "tablewood1" }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "y" = ( /obj/machinery/light/rogue/torchholder/l, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "z" = ( /obj/structure/fluff/railing/border{ dir = 8 }, /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "A" = ( /obj/structure/fluff/railing/border{ dir = 5 }, /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "C" = ( /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/rogue/under/tomb/cave) "D" = ( /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "F" = ( /turf/closed/wall/mineral/rogue/decostone, -/area/rogue) +/area/rogue/under/tomb/cave) "G" = ( /obj/effect/dungeon_directional_helper/south, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "H" = ( /obj/effect/dungeon_directional_helper/west, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "I" = ( /obj/effect/dungeon_directional_helper/east, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "K" = ( /obj/structure/fluff/railing/border{ dir = 10 }, /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "N" = ( /obj/effect/dungeon_directional_helper/north, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "P" = ( /obj/structure/stairs, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/rogue/under/tomb/cave) "R" = ( /turf/closed/wall/mineral/rogue/decostone/end{ dir = 4 }, -/area/rogue) +/area/rogue/under/tomb/cave) "T" = ( /obj/machinery/light/rogue/torchholder/l, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/rogue/under/tomb/cave) "U" = ( /obj/structure/fluff/railing/border{ dir = 4 }, /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) "V" = ( /obj/structure/roguetent, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "W" = ( /obj/structure/dungeon_exit, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/rogue/under/tomb/cave) "X" = ( /obj/structure/stairs{ dir = 1 }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/rogue/under/tomb/cave) "Y" = ( /turf/closed/wall/mineral/rogue/decostone/long{ dir = 1 }, -/area/rogue) +/area/rogue/under/tomb/cave) (1,1,1) = {" j diff --git a/_maps/dungeon_generator/hallway/Floortransition2.dmm b/_maps/dungeon_generator/hallway/Floortransition2.dmm index c6b1de3545c..4fb4d215286 100644 --- a/_maps/dungeon_generator/hallway/Floortransition2.dmm +++ b/_maps/dungeon_generator/hallway/Floortransition2.dmm @@ -1,7 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/open/floor/rogue/dirt, -/area/rogue/under/tomb/cave) +/area/rogue/under/tomb) "g" = ( /turf/closed/mineral/rogue/bedrock, /area/rogue/under/tomb/cave) @@ -9,54 +9,54 @@ /obj/structure/glowshroom, /obj/effect/dungeon_directional_helper/south, /turf/open/floor/rogue/dirt, -/area/rogue/under/tomb/cave) +/area/rogue/under/tomb) "j" = ( /obj/item/restraints/legcuffs/beartrap/armed/camouflage, /turf/open/floor/rogue/dirt, -/area/rogue/under/tomb/cave) +/area/rogue/under/tomb) "k" = ( /obj/structure/glowshroom, /turf/open/floor/rogue/dirt, -/area/rogue/under/tomb/cave) +/area/rogue/under/tomb) "l" = ( /obj/effect/dungeon_directional_helper/north, /turf/open/floor/rogue/dirt, -/area/rogue/under/tomb/cave) +/area/rogue/under/tomb) "n" = ( /turf/closed/mineral/rogue/bedrock, -/area/rogue) +/area/rogue/under/tomb) "p" = ( /obj/item/ammo_casing/caseless/rogue/arrow, /turf/open/floor/rogue/naturalstone, -/area/rogue) +/area/rogue/under/tomb/cave) "v" = ( /turf/open/floor/rogue/naturalstone, -/area/rogue) +/area/rogue/under/tomb/cave) "B" = ( /mob/living/carbon/human/species/goblin/npc/ambush/cave, /turf/open/floor/rogue/naturalstone, -/area/rogue) +/area/rogue/under/tomb/cave) "F" = ( /obj/structure/ladder/earth, /turf/open/floor/rogue/naturalstone, -/area/rogue) +/area/rogue/under/tomb/cave) "Q" = ( /obj/structure/ladder/earth, /turf/open/floor/rogue/dirt, -/area/rogue/under/tomb/cave) +/area/rogue/under/tomb) "R" = ( /turf/open/transparent/openspace, -/area/rogue) +/area/rogue/under/tomb/cave) (1,1,1) = {" -g -g -g -g -g -g -g -g +n +n +n +n +n +n +n +n "} (2,1,1) = {" a @@ -89,17 +89,6 @@ a a "} (5,1,1) = {" -g -g -g -g -g -g -g -g -"} - -(1,1,2) = {" n n n @@ -109,6 +98,17 @@ n n n "} + +(1,1,2) = {" +g +g +g +g +g +g +g +g +"} (2,1,2) = {" v v @@ -140,12 +140,12 @@ p v "} (5,1,2) = {" -n -n -n -n -n -n -n -n +g +g +g +g +g +g +g +g "} diff --git a/_maps/dungeon_generator/hallway/Malphpiece5.dmm b/_maps/dungeon_generator/hallway/Malphpiece5.dmm index c39f4f8640d..8dbe6aa25ac 100644 --- a/_maps/dungeon_generator/hallway/Malphpiece5.dmm +++ b/_maps/dungeon_generator/hallway/Malphpiece5.dmm @@ -16,7 +16,7 @@ "f" = ( /obj/structure/fluff/walldeco/vinez/offset, /obj/item/rogueweapon/pick/militia, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/volcanic, /area/rogue/under/tomb/cave) "i" = ( @@ -99,7 +99,7 @@ /turf/open/floor/rogue/herringbone, /area/rogue/under/tomb/cave) "O" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/volcanic, /area/rogue/under/tomb/cave) "P" = ( diff --git a/_maps/dungeon_generator/hallway/Malphpiece8.dmm b/_maps/dungeon_generator/hallway/Malphpiece8.dmm index 104b7a1ce2c..353d86f1bc6 100644 --- a/_maps/dungeon_generator/hallway/Malphpiece8.dmm +++ b/_maps/dungeon_generator/hallway/Malphpiece8.dmm @@ -15,11 +15,11 @@ /turf/closed/wall/mineral/rogue/wood, /area/rogue/under/tomb/cave) "fy" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt/ambush, /area/rogue/under/tomb/cave) "fE" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/closed/mineral/rogue/bedrock, /area/rogue/under/tomb/cave) "ha" = ( @@ -38,7 +38,7 @@ /turf/open/floor/rogue/blocks/paving/vert, /area/rogue/under/tomb/cave) "jG" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/tomb/cave) "kc" = ( diff --git a/_maps/dungeon_generator/hallway/Malphpiece9.dmm b/_maps/dungeon_generator/hallway/Malphpiece9.dmm index ee6a29fe974..2036618f745 100644 --- a/_maps/dungeon_generator/hallway/Malphpiece9.dmm +++ b/_maps/dungeon_generator/hallway/Malphpiece9.dmm @@ -90,7 +90,7 @@ /mob/living/simple_animal/hostile/retaliate/bat{ dir = 4 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/cobble/mossy, /area/rogue/under/tomb/cave) "v" = ( diff --git a/_maps/dungeon_generator/room/GoblinInfestedJoint.dmm b/_maps/dungeon_generator/room/GoblinInfestedJoint.dmm index b9b5ff269cd..712bc7df781 100644 --- a/_maps/dungeon_generator/room/GoblinInfestedJoint.dmm +++ b/_maps/dungeon_generator/room/GoblinInfestedJoint.dmm @@ -1300,7 +1300,7 @@ /turf/open/floor/rogue/grass, /area/rogue/under/tomb) "Zp" = ( -/obj/item/roguegem/random{ +/obj/effect/spawner/lootdrop/roguegem/random{ pixel_x = 0; pixel_y = 0 }, diff --git a/_maps/dungeon_generator/room/Malphpiece4.dmm b/_maps/dungeon_generator/room/Malphpiece4.dmm index 97052cf845a..09b8d6e11cb 100644 --- a/_maps/dungeon_generator/room/Malphpiece4.dmm +++ b/_maps/dungeon_generator/room/Malphpiece4.dmm @@ -196,14 +196,14 @@ /turf/open/floor/rogue/dirt/road, /area/rogue/under/tomb/wilds/bog) "Mq" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/closed/mineral/rogue/bedrock, /area/rogue/under/tomb/wilds/bog) "NI" = ( /turf/closed/mineral/rogue/bedrock, /area/rogue/under/tomb/indoors) "NT" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt/ambush, /area/rogue/under/tomb/wilds/bog) "NY" = ( @@ -240,7 +240,7 @@ /turf/open/floor/rogue/dirt/ambush, /area/rogue/under/tomb/wilds/bog) "Tr" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/tomb/wilds/bog) "Vj" = ( diff --git a/_maps/dungeon_generator/room/Thelastbreath.dmm b/_maps/dungeon_generator/room/Thelastbreath.dmm index 0a5b0337f7c..3ceffbdf3b6 100644 --- a/_maps/dungeon_generator/room/Thelastbreath.dmm +++ b/_maps/dungeon_generator/room/Thelastbreath.dmm @@ -1727,7 +1727,7 @@ /obj/item/candle/yellow/lit{ pixel_y = 8 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/churchbrick, /area/rogue/under/tomb/indoors/church) "yj" = ( diff --git a/_maps/dungeon_generator/room/dwelfhome.dmm b/_maps/dungeon_generator/room/dwelfhome.dmm index 5335643ee1f..10080d223cd 100644 --- a/_maps/dungeon_generator/room/dwelfhome.dmm +++ b/_maps/dungeon_generator/room/dwelfhome.dmm @@ -100,7 +100,7 @@ /area/rogue/under/tomb/cave/lava) "X" = ( /obj/structure/flora/rock/pile, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/tomb/cave/lava) "Y" = ( diff --git a/_maps/dungeon_generator/room/fightingpit.dmm b/_maps/dungeon_generator/room/fightingpit.dmm index ae12a6064ca..b9ef15dc88e 100644 --- a/_maps/dungeon_generator/room/fightingpit.dmm +++ b/_maps/dungeon_generator/room/fightingpit.dmm @@ -221,7 +221,7 @@ "OB" = ( /obj/structure/closet/crate/chest/gold, /obj/item/roguegem/green, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/metal, /area/rogue/under/tomb) "Pd" = ( diff --git a/_maps/dungeon_generator/room/fightpit.dmm b/_maps/dungeon_generator/room/fightpit.dmm index 3b7a6066a60..51b9b2b850b 100644 --- a/_maps/dungeon_generator/room/fightpit.dmm +++ b/_maps/dungeon_generator/room/fightpit.dmm @@ -309,8 +309,8 @@ pixel_x = -5; pixel_y = 8 }, -/obj/item/roguegem/random, -/obj/item/roguegem/random{ +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random{ pixel_x = -11; pixel_y = 11 }, diff --git a/_maps/dungeon_generator/room/goblincamp.dmm b/_maps/dungeon_generator/room/goblincamp.dmm index 953f229fd51..d2f20a3ddad 100644 --- a/_maps/dungeon_generator/room/goblincamp.dmm +++ b/_maps/dungeon_generator/room/goblincamp.dmm @@ -418,7 +418,7 @@ "Yd" = ( /obj/structure/closet/crate/chest/wicker, /obj/machinery/light/rogue/candle, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/tomb/indoors) "Ys" = ( diff --git a/_maps/dungeon_generator/room/hctomb1.dmm b/_maps/dungeon_generator/room/hctomb1.dmm index a2fa261f2fd..76e813cbdee 100644 --- a/_maps/dungeon_generator/room/hctomb1.dmm +++ b/_maps/dungeon_generator/room/hctomb1.dmm @@ -689,7 +689,7 @@ /turf/open/floor/rogue/cobble/mossy, /area/rogue/under/tomb/indoors) "OS" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt, /area/rogue/under/tomb/cave) "Pf" = ( @@ -955,7 +955,7 @@ /turf/open/floor/rogue/concrete, /area/rogue/under/tomb/indoors) "Zx" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt, /area/rogue/under/tomb) "ZN" = ( diff --git a/_maps/dungeon_generator/room/hctomb2.dmm b/_maps/dungeon_generator/room/hctomb2.dmm index 1c841497872..dd6464571d1 100644 --- a/_maps/dungeon_generator/room/hctomb2.dmm +++ b/_maps/dungeon_generator/room/hctomb2.dmm @@ -572,7 +572,7 @@ /turf/open/floor/rogue/dirt/road, /area/rogue/under/tomb) "XO" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/water/swamp, /area/rogue/under/tomb/cave) "XV" = ( diff --git a/_maps/dungeon_generator/room/hctomb4.dmm b/_maps/dungeon_generator/room/hctomb4.dmm index 0394760fc32..4698529ae13 100644 --- a/_maps/dungeon_generator/room/hctomb4.dmm +++ b/_maps/dungeon_generator/room/hctomb4.dmm @@ -334,7 +334,7 @@ /turf/closed/wall/mineral/rogue/wooddark/window, /area/rogue/under/tomb/indoors) "mO" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/tomb) "mT" = ( @@ -1170,7 +1170,7 @@ /turf/open/floor/rogue/ruinedwood/turned, /area/rogue/under/tomb/indoors) "TW" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt, /area/rogue/under/tomb) "Uf" = ( diff --git a/_maps/dungeon_generator/room/hoblingoblin.dmm b/_maps/dungeon_generator/room/hoblingoblin.dmm index 2ed281d9a15..77c22adda19 100644 --- a/_maps/dungeon_generator/room/hoblingoblin.dmm +++ b/_maps/dungeon_generator/room/hoblingoblin.dmm @@ -1,1430 +1,1502 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/closed/mineral/random/rogue/high, -/area/rogue) -"b" = ( -/mob/living/carbon/human/species/hobgoblin/npc, -/turf/open/floor/rogue/naturalstone, -/area/rogue) -"c" = ( +"bI" = ( +/mob/living/carbon/human/species/goblin/npc, +/turf/open/floor/rogue/dirt/road, +/area/rogue/under/tomb) +"cF" = ( +/turf/open/water/swamp, +/area/rogue/under/tomb) +"dI" = ( +/obj/machinery/light/rogue/campfire/longlived, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb/cave) +"ea" = ( +/obj/structure/flora/roguegrass/water, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb) +"eb" = ( +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb) +"fn" = ( /obj/structure/ladder/earth, /obj/structure/ladder/earth, /turf/open/floor/rogue/dirt, -/area/rogue) -"d" = ( +/area/rogue/under/tomb/cave) +"gL" = ( +/mob/living/carbon/human/species/hobgoblin/npc, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb/cave) +"mF" = ( /turf/closed/wall/mineral/rogue/tent{ - dir = 4 + dir = 1 }, -/area/rogue) -"e" = ( +/area/rogue/under/tomb/cave) +"mH" = ( +/mob/living/carbon/human/species/hobgoblin/npc, +/turf/open/floor/rogue/naturalstone, +/area/rogue/under/tomb/cave) +"mJ" = ( +/turf/closed/mineral/random/rogue/high, +/area/rogue/under/tomb/cave) +"na" = ( /obj/effect/spawner/lootdrop/general_loot_mid/x3, /obj/structure/closet/crate/chest/wicker, /turf/open/floor/rogue/dirt/road, -/area/rogue) -"f" = ( -/obj/structure/flora/roguegrass/water, +/area/rogue/under/tomb) +"ng" = ( +/turf/closed/mineral/random/rogue/high, +/area/rogue/under/tomb) +"nn" = ( +/turf/closed/wall/mineral/rogue/tent{ + dir = 4 + }, +/area/rogue/under/tomb) +"oe" = ( +/obj/effect/dungeon_directional_helper/north, +/turf/open/floor/rogue/naturalstone, +/area/rogue/under/tomb) +"ow" = ( +/obj/structure/ladder/earth, /turf/open/floor/rogue/dirt, -/area/rogue) -"h" = ( -/obj/machinery/light/rogue/torchholder/c, +/area/rogue/under/tomb) +"oI" = ( +/obj/machinery/light/rogue/torchholder/l, +/turf/open/floor/rogue/naturalstone, +/area/rogue/under/tomb/cave) +"oS" = ( +/obj/structure/chair/stool/rogue, /turf/open/floor/rogue/dirt, -/area/rogue) -"i" = ( -/obj/machinery/light/rogue/campfire/longlived, +/area/rogue/under/tomb) +"pp" = ( +/obj/machinery/light/rogue/torchholder/c, /turf/open/floor/rogue/dirt, -/area/rogue) -"j" = ( +/area/rogue/under/tomb/cave) +"qr" = ( /turf/closed/wall/mineral/rogue/tent{ dir = 8 }, -/area/rogue) -"l" = ( +/area/rogue/under/tomb) +"qS" = ( +/mob/living/carbon/human/species/goblin/npc, +/turf/open/floor/rogue/naturalstone, +/area/rogue/under/tomb) +"qX" = ( +/obj/machinery/light/rogue/torchholder/l, +/turf/open/water/swamp, +/area/rogue/under/tomb/cave) +"rf" = ( /mob/living/carbon/human/species/goblin/npc, /obj/structure/bed/rogue/shit, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"n" = ( +/area/rogue/under/tomb/cave) +"sh" = ( +/turf/open/floor/rogue/naturalstone, +/area/rogue/under/tomb/cave) +"sC" = ( +/turf/closed/wall/mineral/rogue/wood, +/area/rogue/under/tomb) +"tp" = ( +/obj/effect/dungeon_directional_helper/west, +/turf/open/floor/rogue/naturalstone, +/area/rogue/under/tomb) +"ty" = ( +/turf/closed/wall/mineral/rogue/tent{ + dir = 1 + }, +/area/rogue/under/tomb) +"ve" = ( /obj/structure/flora/roguegrass/water, /turf/open/water/swamp, -/area/rogue) -"o" = ( -/obj/machinery/light/rogue/torchholder/l, +/area/rogue/under/tomb) +"vw" = ( +/obj/machinery/light/rogue/torchholder/r, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"p" = ( +/area/rogue/under/tomb) +"vx" = ( /obj/structure/bed/rogue/shit, /turf/open/floor/rogue/dirt/road, -/area/rogue) -"q" = ( -/obj/structure/chair/stool/rogue, -/turf/open/floor/rogue/dirt, -/area/rogue) -"s" = ( -/obj/machinery/light/rogue/torchholder/r, -/turf/open/floor/rogue/dirt, -/area/rogue) -"t" = ( -/mob/living/carbon/human/species/goblin/npc, -/obj/structure/bed/rogue/shit, -/turf/open/floor/rogue/dirt, -/area/rogue) -"u" = ( -/turf/closed/mineral/rogue/bedrock, -/area/rogue) -"w" = ( -/turf/open/floor/rogue/dirt, -/area/rogue) -"x" = ( -/mob/living/carbon/human/species/goblin/npc, +/area/rogue/under/tomb) +"zi" = ( +/obj/effect/dungeon_directional_helper/south, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"y" = ( -/obj/structure/roguetent, -/turf/open/floor/rogue/dirt/road, -/area/rogue) -"z" = ( -/turf/open/transparent/openspace, -/area/rogue) -"A" = ( -/mob/living/carbon/human/species/goblin/npc, -/turf/open/floor/rogue/dirt, -/area/rogue) -"B" = ( +/area/rogue/under/tomb) +"zo" = ( /obj/machinery/light/rogue/torchholder/l, -/turf/open/water/swamp, -/area/rogue) -"C" = ( -/obj/effect/dungeon_directional_helper/west, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"D" = ( -/turf/open/water/swamp, -/area/rogue) -"F" = ( -/mob/living/carbon/human/species/hobgoblin/npc, +/area/rogue/under/tomb) +"Ax" = ( +/obj/effect/spawner/lootdrop/general_loot_low/x3, +/obj/structure/closet/crate/chest/wicker, +/turf/open/floor/rogue/dirt/road, +/area/rogue/under/tomb) +"BQ" = ( +/obj/machinery/light/rogue/torchholder/l, /turf/open/floor/rogue/dirt, -/area/rogue) -"G" = ( -/obj/effect/dungeon_directional_helper/south, -/turf/open/floor/rogue/naturalstone, -/area/rogue) -"H" = ( -/turf/closed/wall/mineral/rogue/wood, -/area/rogue) -"I" = ( +/area/rogue/under/tomb/cave) +"Cu" = ( /obj/structure/roguetent, /turf/open/floor/rogue/dirt, -/area/rogue) -"J" = ( +/area/rogue/under/tomb/cave) +"Es" = ( /obj/machinery/light/rogue/torchholder/r, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"K" = ( +/area/rogue/under/tomb/cave) +"Gw" = ( /turf/closed/wall/mineral/rogue/tent, -/area/rogue) -"L" = ( -/obj/structure/ladder/earth, -/turf/open/floor/rogue/dirt, -/area/rogue) -"M" = ( -/obj/machinery/light/rogue/torchholder/c, +/area/rogue/under/tomb) +"Hi" = ( /turf/open/floor/rogue/naturalstone, -/area/rogue) -"N" = ( -/mob/living/carbon/human/species/goblin/npc, -/turf/open/floor/rogue/dirt/road, -/area/rogue) -"O" = ( -/obj/effect/spawner/lootdrop/general_loot_low/x3, -/obj/structure/closet/crate/chest/wicker, +/area/rogue/under/tomb) +"Hn" = ( +/turf/closed/wall/mineral/rogue/tent, +/area/rogue/under/tomb/cave) +"Ip" = ( +/turf/closed/wall/mineral/rogue/wood, +/area/rogue/under/tomb/cave) +"Iu" = ( +/turf/closed/mineral/rogue/bedrock, +/area/rogue/under/tomb/cave) +"Jf" = ( +/obj/structure/roguetent, /turf/open/floor/rogue/dirt/road, -/area/rogue) -"P" = ( +/area/rogue/under/tomb) +"JD" = ( +/obj/effect/dungeon_directional_helper/east, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"Q" = ( -/obj/machinery/light/rogue/torchholder/l, +/area/rogue/under/tomb) +"JE" = ( +/obj/structure/roguetent, +/turf/open/floor/rogue/naturalstone, +/area/rogue/under/tomb/cave) +"LG" = ( +/mob/living/carbon/human/species/hobgoblin/npc, +/turf/open/floor/rogue/dirt/road, +/area/rogue/under/tomb) +"Nf" = ( +/turf/open/water/swamp, +/area/rogue/under/tomb/cave) +"Ns" = ( +/mob/living/carbon/human/species/goblin/npc, /turf/open/floor/rogue/dirt, -/area/rogue) -"R" = ( -/turf/closed/wall/mineral/rogue/tent{ - dir = 1 - }, -/area/rogue) -"S" = ( +/area/rogue/under/tomb/cave) +"OG" = ( /obj/item/reagent_containers/food/snacks/rogue/meat/sausage{ pixel_x = 6; pixel_y = 4 }, /obj/item/grown/log/tree/stake, /turf/open/floor/rogue/dirt, -/area/rogue) -"T" = ( -/obj/effect/dungeon_directional_helper/north, +/area/rogue/under/tomb) +"Pg" = ( +/turf/closed/wall/mineral/rogue/tent{ + dir = 8 + }, +/area/rogue/under/tomb/cave) +"PN" = ( +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb/cave) +"Qu" = ( +/mob/living/carbon/human/species/goblin/npc, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"U" = ( -/obj/structure/roguetent, +/area/rogue/under/tomb/cave) +"Ri" = ( +/turf/closed/wall/mineral/rogue/tent{ + dir = 4 + }, +/area/rogue/under/tomb/cave) +"Rw" = ( +/obj/machinery/light/rogue/torchholder/l, +/turf/open/water/swamp, +/area/rogue/under/tomb) +"RG" = ( +/mob/living/carbon/human/species/goblin/npc, +/obj/structure/bed/rogue/shit, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb/cave) +"RT" = ( +/obj/machinery/light/rogue/torchholder/c, /turf/open/floor/rogue/naturalstone, -/area/rogue) -"X" = ( +/area/rogue/under/tomb) +"Sy" = ( +/turf/closed/mineral/rogue/bedrock, +/area/rogue/under/tomb) +"SG" = ( +/obj/machinery/light/rogue/torchholder/c, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb) +"SP" = ( /turf/open/floor/rogue/dirt/road, -/area/rogue) -"Y" = ( +/area/rogue/under/tomb) +"VW" = ( +/obj/machinery/light/rogue/torchholder/r, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb) +"Yn" = ( +/obj/machinery/light/rogue/torchholder/r, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb/cave) +"Zg" = ( /mob/living/carbon/human/species/hobgoblin/npc, -/turf/open/floor/rogue/dirt/road, -/area/rogue) -"Z" = ( -/obj/effect/dungeon_directional_helper/east, /turf/open/floor/rogue/naturalstone, -/area/rogue) +/area/rogue/under/tomb) +"Zl" = ( +/obj/machinery/light/rogue/campfire/longlived, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb) +"Zt" = ( +/mob/living/carbon/human/species/goblin/npc, +/turf/open/floor/rogue/dirt, +/area/rogue/under/tomb) +"ZQ" = ( +/turf/open/transparent/openspace, +/area/rogue/under/tomb/cave) (1,1,1) = {" -u -u -u -u -u -u -u -u -u -u -u -P -C -P -u -u -u -u -u -u -u -u -u -u +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Hi +tp +Hi +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy "} (2,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -P -a -a -a -a -a -a -a -a -a -a -u +Sy +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +Hi +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +Sy "} (3,1,1) = {" -u -a -a -a -a -D -D -D -D -a -P -P -P -a -a -D -D -D -a -a -a -a -a -u +Sy +ng +ng +ng +ng +cF +cF +cF +cF +ng +Hi +Hi +Hi +ng +ng +cF +cF +cF +ng +ng +ng +ng +ng +Sy "} (4,1,1) = {" -u -a -a -a -D -D -P -P -P -P -P -a -P -a -a -D -D -D -D -a -a -a -a -u +Sy +ng +ng +ng +cF +cF +Hi +Hi +Hi +Hi +Hi +ng +Hi +ng +ng +cF +cF +cF +cF +ng +ng +ng +ng +Sy "} (5,1,1) = {" -u -a -a -w -a -P -H -d -d -d -d -H -P -o -P -w -P -f -D -a -a -a -a -u +Sy +ng +ng +eb +ng +Hi +sC +nn +nn +nn +nn +sC +Hi +zo +Hi +eb +Hi +ea +cF +ng +ng +ng +ng +Sy "} (6,1,1) = {" -u -a -a -D -P -P -K -e -p -X -N -R -P -P -P -a -P -a -D -B -a -a -a -u +Sy +ng +ng +cF +Hi +Hi +Gw +na +vx +SP +bI +ty +Hi +Hi +Hi +ng +Hi +ng +cF +Rw +ng +ng +ng +Sy "} (7,1,1) = {" -u -a -a -n -a -a -K -X -X -Y -X -y -w -a -w -P -P -P -w -w -D -a -a -u +Sy +ng +ng +ve +ng +ng +Gw +SP +SP +LG +SP +Jf +eb +ng +eb +Hi +Hi +Hi +eb +eb +cF +ng +ng +Sy "} (8,1,1) = {" -u -a -a -D -w -a -K -p -N -X -X -y -w -w -S -w -w -x -P -f -w -D -a -u +Sy +ng +ng +cF +eb +ng +Gw +vx +bI +SP +SP +Jf +eb +eb +OG +eb +eb +qS +Hi +ea +eb +cF +ng +Sy "} (9,1,1) = {" -u -a -a -a -w -a -K -X -X -O -X -R -w -i -q -w -a -P -P -a -w -a -a -u +Sy +ng +ng +ng +eb +ng +Gw +SP +SP +Ax +SP +ty +eb +Zl +oS +eb +ng +Hi +Hi +ng +eb +ng +ng +Sy "} (10,1,1) = {" -u -a -D -D -f -w -H -j -j -j -j -H -w -S -w -w -f -P -P -P -P -P -P -u +Sy +ng +cF +cF +ea +eb +sC +qr +qr +qr +qr +sC +eb +OG +eb +eb +ea +Hi +Hi +Hi +Hi +Hi +Hi +Sy "} (11,1,1) = {" -P -a -a -a -w -w -w -b -P -P -P -a -a -h -D -w -P -b -P -P -P -a -M -P +Hi +ng +ng +ng +eb +eb +eb +Zg +Hi +Hi +Hi +ng +ng +SG +cF +eb +Hi +Zg +Hi +Hi +Hi +ng +RT +Hi "} (12,1,1) = {" -T -P -P -P -P -P -P -P -a -P -P -a -L -w -D -a -P -a -P -P -P -P -P -G +oe +Hi +Hi +Hi +Hi +Hi +Hi +Hi +ng +Hi +Hi +ng +ow +eb +cF +ng +Hi +ng +Hi +Hi +Hi +Hi +Hi +zi "} (13,1,1) = {" -P -a -a -w -w -w -a -P -P -P -P -a -w -a -P -w -f -P -P -a -P -P -P -P +Hi +ng +ng +eb +eb +eb +ng +Hi +Hi +Hi +Hi +ng +eb +ng +Hi +eb +ea +Hi +Hi +ng +Hi +Hi +Hi +Hi "} (14,1,1) = {" -u -a -a -n -w -s -w -P -w -P -P -w -w -w -a -w -w -J -P -P -P -P -P -u +Sy +ng +ng +ve +eb +VW +eb +Hi +eb +Hi +Hi +eb +eb +eb +ng +eb +eb +vw +Hi +Hi +Hi +Hi +Hi +Sy "} (15,1,1) = {" -u -a -a -a -w -a -f -P -H -d -y -H -w -w -S -w -w -a -P -A -w -a -P -u +Sy +ng +ng +ng +eb +ng +ea +Hi +sC +nn +Jf +sC +eb +eb +OG +eb +eb +ng +Hi +Zt +eb +ng +Hi +Sy "} (16,1,1) = {" -u -a -a -a -D -a -w -a -K -p -X -R -w -q -i -a -w -w -w -w -f -D -a -u +Sy +ng +ng +ng +cF +ng +eb +ng +Gw +vx +SP +ty +eb +oS +Zl +ng +eb +eb +eb +eb +ea +cF +ng +Sy "} (17,1,1) = {" -u -a -a -a -a -D -w -w -K -O -Y -R -w -f -q -w -f -a -a -w -D -a -a -u +Sy +ng +ng +ng +ng +cF +eb +eb +Gw +Ax +LG +ty +eb +ea +oS +eb +ea +ng +ng +eb +cF +ng +ng +Sy "} (18,1,1) = {" -u -a -a -a -a -D -D -a -H -j -j -H -w -w -a -D -D -P -a -w -D -a -a -u +Sy +ng +ng +ng +ng +cF +cF +ng +sC +qr +qr +sC +eb +eb +ng +cF +cF +Hi +ng +eb +cF +ng +ng +Sy "} (19,1,1) = {" -u -a -a -a -a -a -D -D -a -w -P -P -P -w -D -a -a -w -H -y -d -H -a -u +Sy +ng +ng +ng +ng +ng +cF +cF +ng +eb +Hi +Hi +Hi +eb +cF +ng +ng +eb +sC +Jf +nn +sC +ng +Sy "} (20,1,1) = {" -u -a -a -a -a -a -a -D -w -f -w -a -P -a -a -a -a -D -K -X -O -R -a -u +Sy +ng +ng +ng +ng +ng +ng +cF +eb +ea +eb +ng +Hi +ng +ng +ng +ng +cF +Gw +SP +Ax +ty +ng +Sy "} (21,1,1) = {" -u -a -a -a -a -a -a -a -a -a -D -a -P -a -a -a -a -a -K -N -p -R -a -u +Sy +ng +ng +ng +ng +ng +ng +ng +ng +ng +cF +ng +Hi +ng +ng +ng +ng +ng +Gw +bI +vx +ty +ng +Sy "} (22,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -P -a -a -a -a -a -H -j -j -H -a -u +Sy +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +Hi +ng +ng +ng +ng +ng +sC +qr +qr +sC +ng +Sy "} (23,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -P -a -a -a -a -a -a -a -a -a -a -u +Sy +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +Hi +ng +ng +ng +ng +ng +ng +ng +ng +ng +ng +Sy "} (24,1,1) = {" -u -u -u -u -u -u -u -u -u -u -u -P -Z -P -u -u -u -u -u -u -u -u -u -u +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Hi +JD +Hi +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy +Sy "} (1,1,2) = {" -u -u -u -u -u -u -u -u -u -u -u -P -P -w -u -u -u -u -u -u -u -u -u -u +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +sh +sh +PN +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu "} (2,1,2) = {" -u -a -a -a -a -a -a -a -a -a -a -P -P -P -a -a -a -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +sh +sh +sh +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (3,1,2) = {" -u -a -a -a -a -a -a -a -a -a -a -P -P -P -Q -D -D -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +sh +sh +sh +BQ +Nf +Nf +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (4,1,2) = {" -u -a -a -a -a -a -D -D -D -a -a -w -a -P -w -w -D -D -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +Nf +Nf +Nf +mJ +mJ +PN +mJ +sh +PN +PN +Nf +Nf +mJ +mJ +mJ +mJ +mJ +Iu "} (5,1,2) = {" -u -a -a -a -a -a -D -w -w -w -w -P -w -P -w -w -D -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +Nf +PN +PN +PN +PN +sh +PN +sh +PN +PN +Nf +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (6,1,2) = {" -u -a -a -a -a -B -w -w -a -a -h -P -x -P -a -H -d -d -d -H -a -a -a -u +Iu +mJ +mJ +mJ +mJ +qX +PN +PN +mJ +mJ +pp +sh +Qu +sh +mJ +Ip +Ri +Ri +Ri +Ip +mJ +mJ +mJ +Iu "} (7,1,2) = {" -u -a -a -a -a -P -w -P -P -P -w -w -w -P -w -K -P -P -F -R -D -a -a -u +Iu +mJ +mJ +mJ +mJ +sh +PN +sh +sh +sh +PN +PN +PN +sh +PN +Hn +sh +sh +gL +mF +Nf +mJ +mJ +Iu "} (8,1,2) = {" -u -a -a -a -a -P -P -H -d -d -H -w -w -F -P -U -w -a -P -R -D -D -a -u +Iu +mJ +mJ +mJ +mJ +sh +sh +Ip +Ri +Ri +Ip +PN +PN +gL +sh +JE +PN +mJ +sh +mF +Nf +Nf +mJ +Iu "} (9,1,2) = {" -u -a -a -a -a -D -w -K -t -w -R -w -i -w -w -K -w -w -l -R -D -D -a -u +Iu +mJ +mJ +mJ +mJ +Nf +PN +Hn +RG +PN +mF +PN +dI +PN +PN +Hn +PN +PN +rf +mF +Nf +Nf +mJ +Iu "} (10,1,2) = {" -z -a -a -a -a -D -w -K -w -w -I -w -w -w -w -H -j -j -j -H -P -P -w -u +ZQ +mJ +mJ +mJ +mJ +Nf +PN +Hn +PN +PN +Cu +PN +PN +PN +PN +Ip +Pg +Pg +Pg +Ip +sh +sh +PN +Iu "} (11,1,2) = {" -w -w -a -a -a -D -w -H -j -j -H -w -w -a -D -P -P -w -w -a -a -P -P -P +PN +PN +mJ +mJ +mJ +Nf +PN +Ip +Pg +Pg +Ip +PN +PN +mJ +Nf +sh +sh +PN +PN +mJ +mJ +sh +sh +sh "} (12,1,2) = {" -P -w -w -w -a -D -w -P -P -P -P -a -c -w -P -w -a -P -w -a -w -P -P -P +sh +PN +PN +PN +mJ +Nf +PN +sh +sh +sh +sh +mJ +fn +PN +sh +PN +mJ +sh +PN +mJ +PN +sh +sh +sh "} (13,1,2) = {" -P -P -a -w -w -a -w -P -P -P -P -a -a -P -w -D -a -P -P -P -J -P -P -w +sh +sh +mJ +PN +PN +mJ +PN +sh +sh +sh +sh +mJ +mJ +sh +PN +Nf +mJ +sh +sh +sh +Es +sh +sh +PN "} (14,1,2) = {" -z -P -J -P -P -w -w -P -a -P -P -a -o -P -P -P -P -P -P -P -a -w -a -u +ZQ +sh +Es +sh +sh +PN +PN +sh +mJ +sh +sh +mJ +oI +sh +sh +sh +sh +sh +sh +sh +mJ +PN +mJ +Iu "} (15,1,2) = {" -u -a -a -w -P -P -P -P -A -w -w -w -w -w -A -P -a -w -w -P -w -D -a -u +Iu +mJ +mJ +PN +sh +sh +sh +sh +Ns +PN +PN +PN +PN +PN +Ns +sh +mJ +PN +PN +sh +PN +Nf +mJ +Iu "} (16,1,2) = {" -u -a -a -a -w -w -P -P -P -w -a -w -w -w -a -P -w -w -w -D -a -a -a -u +Iu +mJ +mJ +mJ +PN +PN +sh +sh +sh +PN +mJ +PN +PN +PN +mJ +sh +PN +PN +PN +Nf +mJ +mJ +mJ +Iu "} (17,1,2) = {" -u -a -a -a -a -D -D -D -P -P -b -w -a -w -P -P -w -w -D -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +Nf +Nf +Nf +sh +sh +mH +PN +mJ +PN +sh +sh +PN +PN +Nf +mJ +mJ +mJ +mJ +Iu "} (18,1,2) = {" -u -a -a -a -a -a -a -D -D -P -P -P -w -w -P -P -s -D -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +Nf +Nf +sh +sh +sh +PN +PN +sh +sh +Yn +Nf +mJ +mJ +mJ +mJ +mJ +Iu "} (19,1,2) = {" -u -a -a -a -a -a -a -a -a -D -P -P -w -a -P -a -a -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Nf +sh +sh +PN +mJ +sh +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (20,1,2) = {" -u -a -a -a -a -a -a -a -a -D -D -P -w -P -P -a -a -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Nf +Nf +sh +PN +sh +sh +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (21,1,2) = {" -u -a -a -a -a -a -a -a -a -a -w -P -a -P -w -a -a -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +PN +sh +mJ +sh +PN +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (22,1,2) = {" -u -a -a -a -a -a -a -a -a -a -J -P -P -P -a -a -a -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Es +sh +sh +sh +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (23,1,2) = {" -u -a -a -a -a -a -a -a -a -a -a -P -P -P -a -a -a -a -a -a -a -a -a -u +Iu +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +sh +sh +sh +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +Iu "} (24,1,2) = {" -u -u -u -u -u -u -u -u -u -u -u -w -P -P -u -u -u -u -u -u -u -u -u -u +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +PN +sh +sh +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu +Iu "} diff --git a/_maps/dungeon_generator/room/magicanvil.dmm b/_maps/dungeon_generator/room/magicanvil.dmm index 41a56846972..f7f38cc36c5 100644 --- a/_maps/dungeon_generator/room/magicanvil.dmm +++ b/_maps/dungeon_generator/room/magicanvil.dmm @@ -171,8 +171,8 @@ pixel_x = -6; pixel_y = 5 }, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/tomb/cave/lava) "N" = ( diff --git a/_maps/dungeon_generator/room/queensretreat.dmm b/_maps/dungeon_generator/room/queensretreat.dmm index 49dd3d8a191..6cf41a850b6 100644 --- a/_maps/dungeon_generator/room/queensretreat.dmm +++ b/_maps/dungeon_generator/room/queensretreat.dmm @@ -552,7 +552,7 @@ }, /obj/structure/table/wood, /obj/effect/spawner/lootdrop/general_loot_hi, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/ruinedwood/spiral, /area/rogue/under/tomb/indoors/royal) "vK" = ( diff --git a/_maps/map_files/cove_world/cove_CentCom.dmm b/_maps/map_files/cove_world/cove_CentCom.dmm index 89c7365c28a..f8a6d8d1ad2 100644 --- a/_maps/map_files/cove_world/cove_CentCom.dmm +++ b/_maps/map_files/cove_world/cove_CentCom.dmm @@ -6,15 +6,15 @@ /obj/item/rogueweapon/tongs, /obj/item/rogueweapon/tongs, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "ab" = ( /obj/machinery/anvil, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "ac" = ( /obj/structure/fermentation_keg/water, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "ae" = ( /obj/structure/closet/crate/chest, /obj/item/rogueweapon/hammer/steel, @@ -24,7 +24,7 @@ /obj/item/rogueweapon/hammer/steel, /obj/item/rogueweapon/hammer/steel, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "af" = ( /obj/structure/closet/crate/chest, /obj/item/rogueore/iron, @@ -42,11 +42,11 @@ /obj/item/rogueore/iron, /obj/item/rogueore/iron, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "ag" = ( /obj/machinery/light/rogue/forge, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "ah" = ( /obj/structure/closet/crate/chest, /obj/item/rogueore/coal, @@ -60,11 +60,11 @@ /obj/item/rogueore/coal, /obj/item/rogueore/coal, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "ai" = ( /obj/structure/closet/crate/chest, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "aj" = ( /obj/structure/closet/crate/chest, /obj/item/rogueore/gold, @@ -74,15 +74,15 @@ /obj/item/rogueore/gold, /obj/item/rogueore/gold, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "ak" = ( /obj/machinery/light/rogue/smelter/great, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "al" = ( /obj/machinery/light/rogue/smelter, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "am" = ( /obj/structure/table/wood{ dir = 10; @@ -100,7 +100,7 @@ /obj/item/clothing/wrists/roguetown/bracers/leather/heavy, /obj/item/clothing/wrists/roguetown/bracers/leather/heavy, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "ao" = ( /obj/structure/table/wood{ dir = 10; @@ -117,7 +117,7 @@ /obj/item/clothing/suit/roguetown/armor/leather/heavy/coat, /obj/item/clothing/suit/roguetown/armor/leather/heavy/coat, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "ap" = ( /obj/structure/table/wood{ dir = 10; @@ -140,7 +140,7 @@ /obj/item/clothing/suit/roguetown/armor/plate/full, /obj/item/clothing/suit/roguetown/armor/plate/full, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aq" = ( /obj/structure/table/wood{ dir = 10; @@ -155,7 +155,7 @@ /obj/item/clothing/suit/roguetown/armor/gambeson/heavy, /obj/item/clothing/suit/roguetown/armor/gambeson/heavy, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "ar" = ( /obj/structure/table/wood{ dir = 10; @@ -169,7 +169,7 @@ /obj/item/clothing/suit/roguetown/armor/chainmail, /obj/item/clothing/suit/roguetown/armor/chainmail, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "as" = ( /obj/structure/table/wood{ dir = 10; @@ -178,7 +178,7 @@ /obj/item/clothing/suit/roguetown/armor/chainmail/iron, /obj/item/clothing/suit/roguetown/armor/chainmail/iron, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "at" = ( /obj/structure/table/wood{ dir = 10; @@ -188,7 +188,7 @@ /obj/item/clothing/suit/roguetown/armor/armordress/alt, /obj/item/clothing/suit/roguetown/armor/armordress, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "au" = ( /obj/structure/table/wood{ dir = 10; @@ -199,10 +199,10 @@ /obj/item/clothing/gloves/roguetown/chain, /obj/item/clothing/gloves/roguetown/chain, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "av" = ( /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aw" = ( /obj/structure/table/wood{ dir = 10; @@ -211,7 +211,7 @@ /obj/item/clothing/head/roguetown/helmet/heavy/crusader, /obj/item/clothing/head/roguetown/helmet/heavy/crusader/t, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "ax" = ( /obj/structure/table/wood{ dir = 10; @@ -223,11 +223,11 @@ /obj/item/clothing/head/roguetown/helmet/sallet, /obj/item/clothing/head/roguetown/helmet/sallet, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "ay" = ( /obj/effect/proc_holder/spell/invoked/heal, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "az" = ( /obj/structure/table/wood{ dir = 10; @@ -238,7 +238,7 @@ /obj/item/clothing/head/roguetown/helmet/sallet/visored, /obj/item/clothing/head/roguetown/helmet/sallet/visored, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aA" = ( /obj/structure/table/wood{ dir = 10; @@ -250,7 +250,7 @@ /obj/item/clothing/under/roguetown/chainlegs, /obj/item/clothing/under/roguetown/chainlegs, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aB" = ( /obj/structure/table/wood{ dir = 10; @@ -261,7 +261,7 @@ /obj/item/clothing/head/roguetown/helmet/leather/advanced, /obj/item/clothing/head/roguetown/helmet/leather/advanced, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aC" = ( /obj/structure/table/wood{ dir = 10; @@ -272,7 +272,7 @@ /obj/item/clothing/mask/rogue/facemask/steel, /obj/item/clothing/mask/rogue/facemask/steel, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aD" = ( /obj/structure/table/wood{ dir = 10; @@ -283,7 +283,7 @@ /obj/item/clothing/under/roguetown/heavy_leather_pants, /obj/item/clothing/under/roguetown/heavy_leather_pants, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aE" = ( /obj/structure/table/wood{ dir = 10; @@ -293,7 +293,7 @@ /obj/item/clothing/head/roguetown/helmet, /obj/item/clothing/head/roguetown/helmet, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aF" = ( /obj/structure/table/wood{ dir = 10; @@ -306,7 +306,7 @@ /obj/item/clothing/mask/rogue/facemask, /obj/item/clothing/mask/rogue/facemask, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aG" = ( /obj/structure/table/wood{ dir = 10; @@ -317,7 +317,7 @@ /obj/item/clothing/under/roguetown/tights, /obj/item/clothing/under/roguetown/tights, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aI" = ( /obj/structure/table/wood{ dir = 10; @@ -328,7 +328,7 @@ /obj/item/clothing/neck/roguetown/chaincoif, /obj/item/clothing/neck/roguetown/chaincoif, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aJ" = ( /obj/structure/table/wood{ dir = 10; @@ -337,7 +337,7 @@ /obj/item/clothing/ring/active/nomag, /obj/item/clothing/ring/active/nomag, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aK" = ( /obj/structure/table/wood{ dir = 10; @@ -349,7 +349,7 @@ /obj/item/clothing/shoes/roguetown/boots, /obj/item/clothing/shoes/roguetown/boots, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aL" = ( /obj/structure/table/wood{ dir = 10; @@ -362,7 +362,7 @@ /obj/item/clothing/neck/roguetown/leather, /obj/item/clothing/neck/roguetown/leather, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aM" = ( /obj/structure/table/wood{ dir = 10; @@ -373,7 +373,7 @@ /obj/item/clothing/neck/roguetown/talkstone, /obj/item/clothing/neck/roguetown/talkstone, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aN" = ( /obj/structure/table/wood{ dir = 10; @@ -385,7 +385,7 @@ /obj/item/clothing/shoes/roguetown/boots/armor, /obj/item/clothing/shoes/roguetown/boots/armor, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aO" = ( /obj/structure/table/wood{ dir = 10; @@ -395,11 +395,11 @@ /obj/item/clothing/neck/roguetown/psicross, /obj/item/clothing/neck/roguetown/psicross, /turf/open/floor/rogue/carpet, -/area/rogue) +/area/rogue/indoors) "aQ" = ( /obj/item/inhand_tester, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "aS" = ( /obj/structure/table/wood{ dir = 10; @@ -409,7 +409,7 @@ /obj/item/rogueweapon/greatsword/zwei, /obj/item/rogueweapon/greatsword/zwei, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "aT" = ( /obj/structure/table/wood{ dir = 10; @@ -419,7 +419,7 @@ /obj/item/rogueweapon/flail, /obj/item/rogueweapon/flail, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "aU" = ( /obj/structure/table/wood{ dir = 10; @@ -428,7 +428,7 @@ /obj/item/rogueweapon/eaglebeak/lucerne, /obj/item/rogueweapon/eaglebeak/lucerne, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "aV" = ( /obj/structure/table/wood{ dir = 10; @@ -437,7 +437,7 @@ /obj/item/rogueweapon/halberd/bardiche, /obj/item/rogueweapon/halberd/bardiche, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "aW" = ( /obj/structure/table/wood{ dir = 10; @@ -446,7 +446,7 @@ /obj/item/rogueweapon/spear, /obj/item/rogueweapon/spear, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "aX" = ( /obj/structure/table/wood{ dir = 10; @@ -457,7 +457,7 @@ /obj/item/rogueweapon/sword/long/exe, /obj/item/rogueweapon/sword/long/exe, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "aY" = ( /obj/structure/table/wood{ dir = 10; @@ -470,7 +470,7 @@ /obj/item/rogueweapon/sword/long, /obj/item/rogueweapon/sword/long, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "aZ" = ( /obj/structure/table/wood{ dir = 10; @@ -483,7 +483,7 @@ /obj/item/rogueweapon/sword/iron, /obj/item/rogueweapon/sword/iron, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "ba" = ( /obj/structure/table/wood{ dir = 10; @@ -495,7 +495,7 @@ /obj/item/rogueweapon/sword/decorated, /obj/item/rogueweapon/sword/decorated, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bb" = ( /obj/structure/table/wood{ dir = 10; @@ -506,7 +506,7 @@ /obj/item/rogueweapon/sword, /obj/item/rogueweapon/sword, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bd" = ( /obj/structure/table/wood{ dir = 10; @@ -515,7 +515,7 @@ /obj/item/rogueweapon/sword/rapier, /obj/item/rogueweapon/sword/rapier/dec, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "be" = ( /obj/structure/table/wood{ dir = 10; @@ -526,7 +526,7 @@ /obj/item/rogueweapon/mace/woodclub, /obj/item/rogueweapon/mace/woodclub, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bf" = ( /obj/structure/table/wood{ dir = 10; @@ -536,29 +536,29 @@ /obj/item/rogueweapon/mace, /obj/item/rogueweapon/mace, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bg" = ( /obj/effect/landmark/events/testportal{ aportalloc = "decap" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "bh" = ( /obj/effect/landmark/events/testportal{ aportalloc = "church" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "bi" = ( /obj/effect/landmark/events/testportal{ aportalloc = "manor" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "bk" = ( /obj/item/inhand_tester/big, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "bl" = ( /obj/structure/table/wood{ dir = 10; @@ -569,15 +569,15 @@ /obj/item/rogueweapon/mace/goden, /obj/item/rogueweapon/mace/goden, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bm" = ( /obj/item/reagent_containers/glass/bucket, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bn" = ( /obj/item/roguebin/water/gross, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bo" = ( /obj/structure/table/wood{ dir = 10; @@ -587,7 +587,7 @@ /obj/item/rogueweapon/stoneaxe, /obj/item/rogueweapon/stoneaxe, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bp" = ( /obj/structure/table/wood{ dir = 10; @@ -600,7 +600,7 @@ /obj/item/rogueweapon/stoneaxe/woodcut, /obj/item/rogueweapon/stoneaxe/woodcut, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bq" = ( /obj/structure/table/wood{ dir = 10; @@ -612,7 +612,7 @@ /obj/item/rogueweapon/stoneaxe/battle, /obj/item/rogueweapon/stoneaxe/battle, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "br" = ( /obj/structure/table/wood{ dir = 10; @@ -621,7 +621,7 @@ /obj/item/rogueweapon/shield/tower/metal, /obj/item/rogueweapon/shield/tower/metal, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bs" = ( /obj/structure/table/wood{ dir = 10; @@ -630,7 +630,7 @@ /obj/item/rogueweapon/shield/wood, /obj/item/rogueweapon/shield/wood, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bt" = ( /obj/structure/table/wood{ dir = 10; @@ -642,25 +642,25 @@ /obj/item/rogueweapon/mace/goden/steel, /obj/item/rogueweapon/mace/goden/steel, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "bu" = ( /obj/effect/landmark/events/testportal{ aportalloc = "forest" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "bv" = ( /obj/effect/landmark/events/testportal{ aportalloc = "woodsman" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "bw" = ( /obj/effect/landmark/events/testportal{ aportalloc = "latespawn" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "by" = ( /obj/structure/table/wood{ dir = 10; @@ -672,7 +672,10 @@ /obj/item/rogueweapon/mace/steel, /obj/item/rogueweapon/mace/steel, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) +"bB" = ( +/turf/closed/mineral/rogue/bedrock, +/area/rogue/underworld/dream) "bP" = ( /obj/structure/closet/crate/chest, /obj/effect/decal/cleanable/dirt/cobweb, @@ -689,7 +692,7 @@ /obj/item/rogueweapon/sword/sabre, /obj/item/rogueweapon/sword/sabre, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "dK" = ( /obj/effect/landmark/deaths_door/entry/tl, /turf/open/floor/rogue/underworld/road, @@ -752,7 +755,7 @@ /obj/item/rogueweapon/eaglebeak, /obj/item/rogueweapon/eaglebeak, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "fk" = ( /obj/structure/spider/stickyweb, /turf/open/floor/rogue/hexstone, @@ -851,16 +854,15 @@ /turf/open/floor/rogue/hexstone, /area/rogue/under/cave/inhumen) "hK" = ( -/obj/effect/solid_invisible_barrier, -/turf/open/floor/rogue/underworld/space/quiet, -/area/rogue) +/turf/closed/mineral/rogue/bedrock, +/area) "hO" = ( /obj/structure/noose/gallows, /turf/open/floor/rogue/dirt, /area/rogue/under/cave/inhumen) "hQ" = ( /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "hS" = ( /obj/item/chair/rogue, /turf/open/floor/rogue/concrete, @@ -930,7 +932,7 @@ /obj/item/rogueweapon/flail/sflail, /obj/item/rogueweapon/flail/sflail, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "jL" = ( /obj/structure/closet/crate/chest, /obj/effect/decal/cleanable/blood{ @@ -947,7 +949,7 @@ /obj/item/rogueweapon/huntingknife/idagger, /obj/item/rogueweapon/huntingknife/idagger, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "ki" = ( /turf/open/floor/rogue/wood/herringbone, /area/rogue/indoors/eventarea) @@ -978,7 +980,7 @@ /obj/item/rogueweapon/greatsword, /obj/item/rogueweapon/greatsword, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "kN" = ( /obj/machinery/light/rogue/candle/blue, /turf/open/floor/rogue/cobble, @@ -1007,7 +1009,7 @@ /area/rogue/indoors/eventarea) "lw" = ( /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "lJ" = ( /turf/open/floor/rogue/volcanic, /area/rogue/indoors/eventarea) @@ -1078,7 +1080,7 @@ /obj/item/rogueweapon/sword/cutlass, /obj/item/rogueweapon/sword/cutlass, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "nS" = ( /obj/item/rogueweapon/pick, /turf/open/floor/rogue/naturalstone, @@ -1205,7 +1207,7 @@ /obj/item/rogueweapon/shovel, /obj/item/rogueweapon/shovel, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "pK" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 5 @@ -1295,7 +1297,7 @@ /area/rogue/indoors/eventarea) "rQ" = ( /turf/closed, -/area/rogue) +/area) "rR" = ( /turf/open/floor/rogue/ruinedwood, /area/rogue/indoors/eventarea) @@ -1313,7 +1315,7 @@ aportalloc = "bandit" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "sK" = ( /obj/structure/fluff/statue/femalestatue/zizo{ desc = "An ancient statue depicting an elven woman. An inscription reads: She who split that which was one into that which is many."; @@ -1336,7 +1338,7 @@ /obj/item/rogueweapon/halberd/glaive, /obj/item/rogueweapon/halberd/glaive, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "sU" = ( /turf/open/floor/rogue/rooftop/green/east, /area/rogue/indoors/eventarea) @@ -1442,7 +1444,7 @@ /obj/item/rogueweapon/halberd, /obj/item/rogueweapon/halberd, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "vo" = ( /turf/open/floor/rogue/ruinedwood/chevron, /area/rogue/indoors/eventarea) @@ -1454,10 +1456,10 @@ /obj/item/rogueweapon/shield/tower, /obj/item/rogueweapon/shield/tower, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "vP" = ( /turf/closed/wall/mineral/rogue/stone, -/area/rogue) +/area/rogue/indoors) "vS" = ( /obj/item/reagent_containers/food/snacks/smallrat, /turf/open/floor/rogue/concrete, @@ -1524,7 +1526,7 @@ "xi" = ( /obj/effect/proc_holder/spell/invoked/heal, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "xl" = ( /obj/structure/table/wood{ dir = 10; @@ -1563,7 +1565,7 @@ /obj/item/rogueweapon/huntingknife/idagger/steel, /obj/item/rogueweapon/huntingknife/idagger/steel, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "yd" = ( /turf/open/floor/rogue/rooftop/green/corner1/dirnine, /area/rogue/indoors/eventarea) @@ -1640,7 +1642,7 @@ /obj/item/storage/belt/rogue/surgery_bag/full, /obj/item/storage/belt/rogue/surgery_bag/full, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "AU" = ( /turf/closed/mineral/rogue/bedrock, /area/rogue/outdoors) @@ -1709,7 +1711,7 @@ "CB" = ( /obj/structure/fluff/grindwheel, /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "CQ" = ( /turf/open/floor/rogue/blocks/stonered, /area/rogue/indoors/eventarea) @@ -1747,7 +1749,7 @@ /area/rogue/outdoors) "Dw" = ( /turf/open/floor/rogue/dirt/road, -/area/rogue) +/area/rogue/indoors) "Dz" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/rogue/hexstone, @@ -1799,7 +1801,7 @@ /obj/item/rogueweapon/huntingknife/idagger/silver, /obj/item/rogueweapon/huntingknife/idagger/silver, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "Es" = ( /obj/machinery/light/rogue/candle/l, /turf/open/floor/rogue/blocks, @@ -1981,7 +1983,7 @@ "Is" = ( /obj/machinery/gear_painter, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "Iz" = ( /obj/structure/roguerock, /turf/open/floor/rogue/naturalstone, @@ -2013,7 +2015,7 @@ aportalloc = "spidercave" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "IZ" = ( /obj/structure/table/wood{ dir = 9; @@ -2042,7 +2044,7 @@ /obj/item/rogueweapon/sword/falx, /obj/item/rogueweapon/sword/falx, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "Jx" = ( /turf/open/floor/rogue/cobble/mossy, /area/rogue/indoors/eventarea) @@ -2069,7 +2071,7 @@ /obj/item/rogueweapon/pick, /obj/item/rogueweapon/pick, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "JQ" = ( /turf/open/floor/rogue/tile/masonic/inverted, /area/rogue/indoors/eventarea) @@ -2112,7 +2114,7 @@ aportalloc = "bog" }, /turf/open/floor/rogue/blocks, -/area/rogue) +/area/rogue/indoors) "Lp" = ( /obj/machinery/light/rogue/firebowl{ light_color = "#b30202" @@ -2142,7 +2144,7 @@ /obj/item/rogueweapon/spear/billhook, /obj/item/rogueweapon/spear/billhook, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "LP" = ( /obj/machinery/light/rogue/candle/l, /obj/structure/table/optable, @@ -2208,7 +2210,7 @@ /obj/effect/dream_horror, /obj/effect/solid_invisible_barrier, /turf/open/floor/rogue/underworld/space/quiet, -/area/rogue) +/area/rogue/underworld/dream) "Oe" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/start/gnoll, @@ -2390,7 +2392,7 @@ "TT" = ( /obj/machinery/light/rogue/candle, /turf/closed, -/area/rogue) +/area) "TU" = ( /turf/open/floor/rogue/grassyel, /area/rogue/indoors/eventarea) @@ -2424,7 +2426,7 @@ }, /obj/item/rogueweapon/mace/cudgel, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "Ux" = ( /turf/open/floor/rogue/underworld/space/sparkle_quiet, /area/rogue/indoors/eventarea) @@ -2466,7 +2468,7 @@ /obj/item/rogueweapon/sword/short/gladius, /obj/item/rogueweapon/sword/short/gladius, /turf/open/floor/rogue/cobble, -/area/rogue) +/area/rogue/indoors) "Vm" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/rogue/blocks, @@ -2724,30 +2726,30 @@ rQ rQ rQ rQ -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -2854,10 +2856,10 @@ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP vP vP @@ -2877,7 +2879,7 @@ vP vP vP vP -bX +hK rQ rQ rQ @@ -2984,10 +2986,10 @@ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP am au @@ -3007,7 +3009,7 @@ bu hQ xi vP -bX +hK rQ rQ rQ @@ -3114,10 +3116,10 @@ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP ao av @@ -3137,7 +3139,7 @@ hQ hQ hQ vP -bX +hK rQ rQ rQ @@ -3244,10 +3246,10 @@ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP ap av @@ -3267,7 +3269,7 @@ hQ hQ hQ vP -bX +hK rQ rQ rQ @@ -3351,33 +3353,33 @@ rQ rQ rQ rQ -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP aq av @@ -3397,7 +3399,7 @@ bv hQ Le vP -bX +hK rQ rQ rQ @@ -3481,7 +3483,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -3497,17 +3499,17 @@ RX RX RX Vz -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP ar av @@ -3527,7 +3529,7 @@ hQ hQ hQ vP -bX +hK rQ rQ rQ @@ -3611,7 +3613,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -3627,17 +3629,17 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP as av @@ -3657,7 +3659,7 @@ bw hQ IY vP -bX +hK rQ rQ rQ @@ -3741,7 +3743,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -3757,17 +3759,17 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP at av @@ -3787,7 +3789,7 @@ hQ hQ hQ vP -bX +hK rQ rQ rQ @@ -3871,7 +3873,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -3887,17 +3889,17 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX -bX -bX +hK +hK +hK +hK vP vP lw @@ -3917,7 +3919,7 @@ hQ hQ sz vP -bX +hK rQ rQ rQ @@ -4001,7 +4003,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4017,15 +4019,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK pr pr pr @@ -4047,7 +4049,7 @@ hQ vP vP vP -bX +hK rQ rQ rQ @@ -4131,7 +4133,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4147,15 +4149,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK pr pr pr @@ -4177,7 +4179,7 @@ lw kF vP vP -bX +hK rQ rQ rQ @@ -4261,7 +4263,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4277,15 +4279,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK pr pr pr @@ -4306,8 +4308,8 @@ bm lw jH vP -bX -bX +hK +hK rQ rQ rQ @@ -4391,7 +4393,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4407,15 +4409,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK pr pr RH @@ -4436,8 +4438,8 @@ bn lw fi vP -bX -bX +hK +hK rQ rQ rQ @@ -4521,7 +4523,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4537,15 +4539,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK Do pr RH @@ -4566,8 +4568,8 @@ bo lw vl vP -bX -bX +hK +hK rQ rQ rQ @@ -4651,7 +4653,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4667,15 +4669,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK Do Do RH @@ -4696,8 +4698,8 @@ bp lw LE vP -bX -bX +hK +hK rQ rQ rQ @@ -4781,7 +4783,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4797,15 +4799,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK Do Do RH @@ -4826,8 +4828,8 @@ bq lw Jp vP -bX -bX +hK +hK rQ rQ rQ @@ -4911,7 +4913,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -4927,15 +4929,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK Do Do RH @@ -4956,8 +4958,8 @@ sP lw jQ vP -bX -bX +hK +hK rQ rQ rQ @@ -5041,7 +5043,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -5057,15 +5059,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK Do RH RH @@ -5086,8 +5088,8 @@ br lw Eq vP -bX -bX +hK +hK rQ rQ rQ @@ -5171,7 +5173,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -5187,15 +5189,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK RH RH RH @@ -5216,8 +5218,8 @@ bs lw xO vP -bX -bX +hK +hK rQ rQ rQ @@ -5301,7 +5303,7 @@ rQ rQ rQ rQ -bX +hK RX RX RX @@ -5317,15 +5319,15 @@ RX RX RX RX -bX +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK RH pr RH @@ -5346,8 +5348,8 @@ Is lw Vl vP -bX -bX +hK +hK rQ rQ rQ @@ -5431,31 +5433,31 @@ rQ rQ rQ rQ -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ rQ rQ rQ -bX -bX +hK +hK RH RH RH @@ -5476,8 +5478,8 @@ lw lw JJ vP -bX -bX +hK +hK rQ rQ rQ @@ -5584,8 +5586,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK pr pr RH @@ -5606,8 +5608,8 @@ AQ lw pE vP -bX -bX +hK +hK rQ rQ rQ @@ -5714,8 +5716,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK pr pr RH @@ -5736,8 +5738,8 @@ do lw vq vP -bX -bX +hK +hK rQ rQ rQ @@ -5844,8 +5846,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK pr pr pr @@ -5866,8 +5868,8 @@ lw lw nQ vP -bX -bX +hK +hK rQ rQ rQ @@ -5974,8 +5976,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK pr pr pr @@ -5996,8 +5998,8 @@ bt by Ut vP -bX -bX +hK +hK rQ rQ rQ @@ -6104,8 +6106,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK RH RH pr @@ -6126,8 +6128,8 @@ vP vP vP vP -bX -bX +hK +hK rQ rQ rQ @@ -6234,8 +6236,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK RH RH pr @@ -6249,15 +6251,15 @@ Do Ph Ph yR -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -6364,8 +6366,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK pr RH RH @@ -6379,15 +6381,15 @@ RH Ph Ph tx -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -6494,8 +6496,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK pr pr RH @@ -6509,15 +6511,15 @@ RH Ph Ph Do -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -6624,8 +6626,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK RH pr pr @@ -6639,15 +6641,15 @@ pr Ph Ph Do -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -6754,8 +6756,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK RH pr pr @@ -6769,15 +6771,15 @@ pr pr Ph Do -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -6884,8 +6886,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK RH RH RH @@ -6899,15 +6901,15 @@ pr Ph Ph Do -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -7014,8 +7016,8 @@ rQ rQ rQ rQ -bX -bX +hK +hK RH RH RH @@ -7029,15 +7031,15 @@ pr Ph Ph RH -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -7144,6 +7146,8 @@ rQ rQ rQ rQ +hK +hK bX bX bX @@ -7157,17 +7161,15 @@ bX bX bX bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -7274,30 +7276,30 @@ rQ rQ rQ rQ -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK +hK rQ rQ rQ @@ -13359,18 +13361,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc Bc Bc Bc @@ -13489,18 +13491,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ rZ rZ @@ -13619,18 +13621,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc Bc @@ -13749,18 +13751,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc NY -hK +Bc rZ Bc rZ @@ -13879,18 +13881,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc Bc @@ -14009,18 +14011,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc rZ @@ -14139,18 +14141,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc rZ @@ -14269,18 +14271,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc rZ @@ -14399,18 +14401,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc rZ @@ -14529,18 +14531,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc rZ @@ -14659,18 +14661,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc rZ @@ -14789,18 +14791,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc Bc @@ -14919,18 +14921,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ Bc Bc @@ -15049,18 +15051,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc rZ rZ rZ @@ -15179,18 +15181,18 @@ rQ rQ rQ rQ -bX -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK -hK +bB +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc +Bc Bc Bc Bc @@ -15309,33 +15311,33 @@ rQ rQ rQ rQ -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX -bX +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB +bB AU VS VS diff --git a/_maps/map_files/cove_world/cove_world.dmm b/_maps/map_files/cove_world/cove_world.dmm index 14f54b15f31..3120da0470f 100644 --- a/_maps/map_files/cove_world/cove_world.dmm +++ b/_maps/map_files/cove_world/cove_world.dmm @@ -18,7 +18,7 @@ /area/rogue/under/cave) "aax" = ( /mob/living/simple_animal/hostile/retaliate/rogue/troll/bog, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/water/swamp, /area/rogue/under/cave/fishmandungeon) "aay" = ( @@ -1557,8 +1557,8 @@ /turf/open/floor/rogue/churchbrick, /area/rogue/under/cave/scarymaze) "aqV" = ( -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/metal/barograte/open, /area/rogue/under/underdark/north) "aqX" = ( @@ -2677,7 +2677,7 @@ /turf/open/floor/rogue/dirt/road, /area/rogue/outdoors/mountains) "aEe" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/cave) "aEf" = ( @@ -3266,7 +3266,7 @@ pixel_y = 32 }, /obj/item/ingot/bronze, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/cheap_jewelry_spawner, /obj/effect/spawner/lootdrop/cheap_jewelry_spawner, /obj/effect/spawner/lootdrop/magic_loot_tier_2/x3, @@ -6581,9 +6581,9 @@ locked = 1; lockid = "shop" }, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/hexstone, /area/rogue/indoors/town/shop) "bxZ" = ( @@ -8911,7 +8911,7 @@ /turf/open/floor/carpet/red, /area/rogue/indoors/town) "bYM" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/mountains) "bYP" = ( @@ -9492,7 +9492,7 @@ /turf/open/floor/rogue/dirt/road, /area/rogue/under/cave/dungeon1/gethsmane/inner) "cfB" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/concrete{ dir = 8 }, @@ -17525,7 +17525,7 @@ "dRm" = ( /obj/structure/table/church/end, /obj/effect/spawner/lootdrop/valuable_candle_spawner, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/magic_loot_tier_1, /turf/open/floor/rogue/church, /area/rogue/indoors/shelter) @@ -19857,7 +19857,7 @@ "eqx" = ( /obj/structure/closet/crate/chest/neu_iron, /obj/effect/spawner/lootdrop/roguetown/dungeon/weapons, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/ruinedwood, /area/rogue/indoors/shelter) "eqF" = ( @@ -21156,7 +21156,7 @@ /area/rogue/indoors/town/bath) "eFe" = ( /obj/structure/closet/crate/chest, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cave) "eFg" = ( @@ -22093,7 +22093,7 @@ /turf/open/floor/rogue/cobble, /area/rogue/outdoors/mountains/decap/gunduzirak) "eON" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave/southern) "eOS" = ( @@ -25785,8 +25785,8 @@ /obj/item/roguestatue/gold{ pixel_y = 11 }, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/hexstone, /area/rogue/under/cave/skeletoncrypt) "fDP" = ( @@ -28773,7 +28773,7 @@ /turf/open/floor/rogue/cobble, /area/rogue/under/town/basement/keep) "gmT" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/cavewet/bogcaves/north) "gmY" = ( @@ -29164,8 +29164,8 @@ /obj/item/clothing/cloak/lordcloak, /obj/item/clothing/suit/roguetown/shirt/dress/royal/prince, /obj/item/clothing/head/roguetown/circlet, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/cave/dukecourt) "grD" = ( @@ -31305,7 +31305,7 @@ /turf/open/floor/rogue/herringbone, /area/rogue/under/cave/dungeon1/gethsmane/inner) "gOG" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/concrete{ dir = 1 }, @@ -33827,7 +33827,7 @@ "hoq" = ( /mob/living/simple_animal/hostile/retaliate/rogue/infernal/watcher, /obj/effect/decal/cleanable/roguerune/arcyne/summoning/max, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/church, /area/rogue/under/cave/goblinfort) "hov" = ( @@ -35853,7 +35853,7 @@ /turf/open/floor/rogue/concrete, /area/rogue/under/town/sewer) "hKU" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/cave/orcdungeon) "hKV" = ( @@ -36662,7 +36662,7 @@ /area/rogue/outdoors/rtfield) "hUo" = ( /obj/structure/closet/crate/chest, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cavewet/bogcaves/north) "hUx" = ( @@ -37859,7 +37859,7 @@ pixel_y = 4 }, /obj/item/natural/feather, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/carpet/royalblack, /area/rogue/under/cave/orcdungeon) "ihm" = ( @@ -38331,7 +38331,7 @@ /turf/closed/wall/mineral/rogue/stone/moss/unbreakable, /area/rogue/under/cave/his_vault/puzzle) "imo" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/underdark/north) "imq" = ( @@ -39338,7 +39338,7 @@ pixel_x = -8; pixel_y = 9 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/carpet/royalblack, /area/rogue/under/cave/orcdungeon) "iwT" = ( @@ -39462,7 +39462,7 @@ /turf/open/floor/rogue/twig/platform, /area/rogue/outdoors/town) "iyf" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt/road, /area/rogue/indoors/cave/east) "iyu" = ( @@ -44538,7 +44538,7 @@ /turf/open/floor/rogue/dirt, /area/rogue/under/cave/dukecourt) "jCj" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/church, /area/rogue/under/cave/goblinfort) "jCk" = ( @@ -44622,8 +44622,8 @@ /obj/structure/table/wood/poor, /obj/effect/spawner/lootdrop/roguetown/dungeon, /obj/effect/spawner/lootdrop/potion_vitals, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/magic_loot_tier_1/x3, /turf/open/floor/rogue/ruinedwood/spiral, /area/rogue/outdoors/beach/north) @@ -49525,7 +49525,7 @@ /obj/item/reagent_containers/food/snacks/rogue/friedrat, /obj/item/reagent_containers/food/snacks/rogue/friedrat, /obj/item/reagent_containers/food/snacks/rogue/friedrat, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave) "kFl" = ( @@ -49746,7 +49746,7 @@ /turf/open/floor/rogue/church, /area/rogue/indoors/shelter) "kHr" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cave) "kHu" = ( @@ -52861,7 +52861,7 @@ /obj/structure/closet/crate/chest/neu_iron, /obj/effect/spawner/lootdrop/roguetown/dungeon/weapons, /obj/effect/spawner/lootdrop/roguetown/dungeon/armor, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/ruinedwood, /area/rogue/indoors/shelter) "loW" = ( @@ -52935,7 +52935,7 @@ /obj/structure/table/wood/long_table, /obj/item/ingot/steel, /obj/item/ingot/steel, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/hexstone, /area/rogue/under/cave/fishmandungeon) "lpV" = ( @@ -54900,7 +54900,7 @@ /obj/structure/closet/crate/chest/crate, /obj/item/storage/belt/rogue/pouch/coins/poor, /obj/item/reagent_containers/glass/cup/silver/small, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cave) @@ -56136,7 +56136,7 @@ /turf/open/floor/rogue/concrete, /area/rogue/indoors/town) "lZg" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave) "lZh" = ( @@ -57101,7 +57101,7 @@ "mhA" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/tile/masonic/single, /area/rogue/under/cave/dukecourt) "mhC" = ( @@ -60529,7 +60529,7 @@ "mWY" = ( /obj/structure/closet/crate/chest/old_crate, /obj/effect/spawner/lootdrop/general_loot_hi, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/ruinedwood, /area/rogue/indoors/shelter) "mXb" = ( @@ -60574,7 +60574,7 @@ pixel_y = 16 }, /obj/structure/table/church/end/alt, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/grass, /area/rogue/outdoors/mountains/decap/minotaurfort) "mXo" = ( @@ -63068,7 +63068,7 @@ /area/rogue/indoors/town/garrison) "nzd" = ( /obj/effect/landmark/chest_or_mimic/loot_chest, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/cave/dukecourt) "nzh" = ( @@ -64086,7 +64086,7 @@ /obj/effect/decal/cleanable/dirt/cobweb{ dir = 1 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/mountains) "nLI" = ( @@ -66952,7 +66952,7 @@ "orC" = ( /obj/structure/closet/crate/chest/lootbox, /obj/machinery/light/rogue/candle/blue, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/tile, /area/rogue/indoors/shelter/mountains/decap) "orD" = ( @@ -68260,8 +68260,8 @@ /obj/structure/closet/crate/chest, /obj/effect/spawner/lootdrop/roguetown/dungeon, /obj/effect/spawner/lootdrop/roguetown/dungeon, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/magic_loot_tier_2/x3, /turf/open/floor/rogue/ruinedwood/spiral, /area/rogue/outdoors/beach/north) @@ -69261,7 +69261,7 @@ dir = 1; icon_state = "borderfall" }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/church, /area/rogue/under/cave/orcdungeon) "oSq" = ( @@ -69423,9 +69423,9 @@ dir = 10; pixel_y = 1 }, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/cobble/mossy, /area/rogue/outdoors/bog/south) "oTP" = ( @@ -72282,7 +72282,7 @@ /turf/closed/mineral/rogue/silver, /area/rogue/under/cave/his_vault) "pzG" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/structure/ritualcircle/zizo, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave) @@ -75876,9 +75876,6 @@ /obj/structure/fluff/railing/corner/south_west, /turf/open/floor/rogue/woodturned, /area/rogue/indoors/town) -"qmf" = ( -/turf/closed/mineral/rogue/bedrock, -/area/rogue) "qmg" = ( /turf/open/water/swamp/deep, /area/rogue/under/cave) @@ -76373,7 +76370,7 @@ "qrx" = ( /obj/structure/closet/crate/coffin, /obj/item/listenstone, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/magic_loot_tier_1, /turf/open/floor/rogue/hexstone, /area/rogue/under/cavewet/bogcaves/north) @@ -79638,7 +79635,7 @@ /obj/structure/fluff/psycross/copper{ pixel_y = 16 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/grass, /area/rogue/outdoors/mountains/decap/minotaurfort) "qYH" = ( @@ -80240,8 +80237,8 @@ /area/rogue/under/cave/scarymaze) "reM" = ( /obj/structure/closet/crate/chest/loot_chest/locked, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/cheap_jewelry_spawner, /obj/effect/spawner/lootdrop/cheap_jewelry_spawner, /turf/open/floor/carpet/purple, @@ -84967,7 +84964,7 @@ "sjl" = ( /obj/structure/closet/crate/coffin, /obj/effect/spawner/lootdrop/roguetown/dungeon/tools, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/magic_loot_tier_1, /turf/open/floor/rogue/hexstone, /area/rogue/under/cavewet/bogcaves/north) @@ -86263,7 +86260,7 @@ locked = 1; lockid = "psy_bog_dung_lootkey_two" }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cave/his_vault) "suY" = ( @@ -86573,12 +86570,12 @@ lockid = "craftermaster" }, /obj/effect/spawner/lootdrop/roguetown/dungeon/money, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/roguetown/dungeon/money, /obj/structure/roguemachine/atm, /obj/effect/spawner/lootdrop/roguetown/dungeon/money, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/carpet, /area/rogue/indoors/town/dwarfin) "sym" = ( @@ -86763,7 +86760,7 @@ /turf/open/transparent/openspace, /area/rogue/indoors) "sAq" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/cobblerock, /area/rogue/outdoors/mountains/decap) "sAv" = ( @@ -87991,7 +87988,7 @@ /turf/open/floor/rogue/cobble/mossy, /area/rogue/outdoors/bog/north) "sPU" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/indoors/cave) "sPX" = ( @@ -92327,7 +92324,7 @@ /turf/open/floor/rogue/blocks/green, /area/rogue/under/cave) "tNa" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave) "tNb" = ( @@ -92714,7 +92711,7 @@ /turf/open/floor/rogue/grassred, /area/rogue/outdoors/mountains) "tRx" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/water/swamp, /area/rogue/under/cave/fishmandungeon) "tRA" = ( @@ -92750,7 +92747,7 @@ /turf/open/floor/rogue/hexstone, /area/rogue/indoors) "tRX" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/mountains/decap/minotaurfort) "tRY" = ( @@ -95336,13 +95333,13 @@ /area/rogue/under/cave/scarymaze) "uuc" = ( /obj/structure/table/vtable, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/churchbrick, /area/rogue/under/cave/mazedungeon) "uuh" = ( @@ -97475,7 +97472,7 @@ /turf/open/transparent/openspace, /area/rogue/indoors/town) "uQL" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/church, /area/rogue/under/cave/orcdungeon) "uQM" = ( @@ -99330,7 +99327,7 @@ /obj/structure/fluff/walldeco/bigpainting/lake, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/roguetown/dungeon/spells, /turf/open/floor/rogue/carpet/lord/center, /area/rogue/under/cave/licharena/bossroom) @@ -100417,7 +100414,7 @@ /area/rogue/under/cave/orcdungeon) "vvV" = ( /obj/item/clothing/cloak/cape/fur, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/cave/dukecourt) "vvW" = ( @@ -101798,7 +101795,7 @@ }, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/roguetown/dungeon/spells, /turf/open/floor/rogue/carpet/lord/center, /area/rogue/under/cave/licharena/bossroom) @@ -102142,7 +102139,7 @@ /area/rogue/indoors/cave/southern) "vOE" = ( /mob/living/simple_animal/hostile/retaliate/rogue/infernal/imp, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/church, /area/rogue/under/cave/goblinfort) "vOG" = ( @@ -106902,7 +106899,7 @@ /area/rogue/indoors/town) "wPD" = ( /obj/structure/closet/crate/chest/neu_fancy, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/ruinedwood, /area/rogue/indoors/shelter) "wPZ" = ( @@ -107236,7 +107233,7 @@ /turf/open/floor/rogue/metal/barograte/open, /area/rogue/under/underdark/south) "wSV" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/rtfield) "wSW" = ( @@ -112531,7 +112528,7 @@ /turf/open/floor/rogue/dirt/road, /area/rogue/outdoors/town) "ybs" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/underdark/north) "ybu" = ( @@ -113060,7 +113057,7 @@ /area/rogue/indoors/shelter/mountains/decap) "ygz" = ( /obj/structure/closet/crate/chest/neu_fancy, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/general_loot_hi/x3, /turf/open/floor/rogue/herringbone, /area/rogue/under/cave/dungeon1/gethsmane/inner) @@ -401985,7 +401982,7 @@ ogs ogs "} (129,1,3) = {" -qmf +ujm tsB tsB tsB @@ -402437,7 +402434,7 @@ ogs ogs "} (130,1,3) = {" -qmf +ujm tsB tsB tsB @@ -402889,7 +402886,7 @@ ogs ogs "} (131,1,3) = {" -qmf +ujm tsB tsB tsB @@ -403341,7 +403338,7 @@ ogs ogs "} (132,1,3) = {" -qmf +ujm tsB tsB tsB @@ -403793,7 +403790,7 @@ ogs ogs "} (133,1,3) = {" -qmf +ujm tsB tsB tsB @@ -404245,7 +404242,7 @@ ogs ogs "} (134,1,3) = {" -qmf +ujm tsB tsB tsB @@ -404697,7 +404694,7 @@ ogs ogs "} (135,1,3) = {" -qmf +ujm tsB tsB tsB @@ -405149,7 +405146,7 @@ ogs ogs "} (136,1,3) = {" -qmf +ujm tsB tsB tsB @@ -405601,7 +405598,7 @@ ogs ogs "} (137,1,3) = {" -qmf +ujm tsB tsB tsB @@ -406053,7 +406050,7 @@ ogs ogs "} (138,1,3) = {" -qmf +ujm tsB tsB tsB @@ -406505,7 +406502,7 @@ ogs ogs "} (139,1,3) = {" -qmf +ujm tsB tsB tsB @@ -406957,7 +406954,7 @@ ogs ogs "} (140,1,3) = {" -qmf +ujm tsB tsB ujm @@ -407409,7 +407406,7 @@ ogs ogs "} (141,1,3) = {" -qmf +ujm tsB ujm eID @@ -407861,7 +407858,7 @@ ogs ogs "} (142,1,3) = {" -qmf +ujm tsB ujm uCF @@ -408313,7 +408310,7 @@ ogs ogs "} (143,1,3) = {" -qmf +ujm tsB ujm uCF @@ -408765,7 +408762,7 @@ ogs ogs "} (144,1,3) = {" -qmf +ujm tsB ujm vtQ @@ -409217,7 +409214,7 @@ ogs ogs "} (145,1,3) = {" -qmf +ujm tsB ujm uCF @@ -409669,7 +409666,7 @@ ogs ogs "} (146,1,3) = {" -qmf +ujm tsB ujm uCF @@ -410121,7 +410118,7 @@ ogs ogs "} (147,1,3) = {" -qmf +ujm tsB ujm hji @@ -410573,7 +410570,7 @@ ogs ogs "} (148,1,3) = {" -qmf +ujm tsB tsB ujm @@ -411025,7 +411022,7 @@ ogs ogs "} (149,1,3) = {" -qmf +ujm tsB tsB tsB @@ -411477,7 +411474,7 @@ ogs ogs "} (150,1,3) = {" -qmf +ujm tsB qPv qPv @@ -411929,7 +411926,7 @@ ogs ogs "} (151,1,3) = {" -qmf +ujm tsB qPv qPv @@ -412381,7 +412378,7 @@ ogs ogs "} (152,1,3) = {" -qmf +ujm qPv qPv qPv @@ -412833,7 +412830,7 @@ ogs ogs "} (153,1,3) = {" -qmf +ujm qPv qPv qPv diff --git a/_maps/map_files/dun_world/dun_world.dmm b/_maps/map_files/dun_world/dun_world.dmm index 3a813b355df..fcce6b3f4df 100644 --- a/_maps/map_files/dun_world/dun_world.dmm +++ b/_maps/map_files/dun_world/dun_world.dmm @@ -1556,8 +1556,8 @@ /turf/open/transparent/openspace, /area/rogue/druidsgrove) "aqV" = ( -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/metal/barograte/open, /area/rogue/under/underdark/north) "arh" = ( @@ -2606,7 +2606,7 @@ /turf/open/floor/rogue/dirt/road, /area/rogue/outdoors/mountains) "aEe" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/cave) "aEf" = ( @@ -6541,9 +6541,9 @@ locked = 1; lockid = "shop" }, -/obj/item/roguegem/random, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/hexstone, /area/rogue/indoors/town/shop) "bxZ" = ( @@ -8731,7 +8731,7 @@ /turf/open/floor/carpet/red, /area/rogue/indoors/town) "bYM" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/mountains) "bYP" = ( @@ -20870,7 +20870,7 @@ /area/rogue/under/cave/mazedungeon) "eFe" = ( /obj/structure/closet/crate/chest, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cave) "eFg" = ( @@ -21744,7 +21744,7 @@ /turf/open/floor/rogue/cobble, /area/rogue/outdoors/mountains/decap/gunduzirak) "eON" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave/southern) "ePg" = ( @@ -28285,7 +28285,7 @@ /turf/open/floor/rogue/AzureSand, /area/rogue/outdoors/rtfield) "gmT" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/cavewet/bogcaves/north) "gmX" = ( @@ -35067,7 +35067,7 @@ /turf/open/floor/rogue/concrete, /area/rogue/under/town/sewer) "hKU" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/under/cave/orcdungeon) "hKV" = ( @@ -35802,7 +35802,7 @@ /area/rogue/outdoors/rtfield) "hUo" = ( /obj/structure/closet/crate/chest, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cavewet/bogcaves/north) "hUv" = ( @@ -38612,7 +38612,7 @@ /turf/open/floor/rogue/churchmarble, /area/rogue/under/cave/scarymaze) "iyf" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt/road, /area/rogue/indoors/cave/east) "iys" = ( @@ -41611,7 +41611,7 @@ /turf/open/floor/rogue/hexstone, /area/rogue/indoors/shelter/mountains/decap) "jiu" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave) "jiA" = ( @@ -48587,7 +48587,7 @@ /turf/open/floor/rogue/ruinedwood/spiral, /area/rogue/outdoors/town) "kHr" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cave) "kHS" = ( @@ -51853,7 +51853,7 @@ /obj/structure/table/wood/long_table, /obj/item/ingot/steel, /obj/item/ingot/steel, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/hexstone, /area/rogue/under/cave/fishmandungeon) "lpL" = ( @@ -55112,7 +55112,7 @@ /turf/open/floor/rogue/concrete, /area/rogue/indoors/town) "lZg" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/dirt, /area/rogue/indoors/cave) "lZk" = ( @@ -62499,7 +62499,7 @@ /obj/effect/decal/cleanable/dirt/cobweb{ dir = 1 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/mountains) "nLC" = ( @@ -65241,7 +65241,7 @@ "orC" = ( /obj/structure/closet/crate/chest/lootbox, /obj/machinery/light/rogue/candle/blue, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/tile, /area/rogue/indoors/shelter/mountains/decap) "orD" = ( @@ -68093,7 +68093,7 @@ dir = 10; pixel_y = 1 }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/cobble/mossy, /area/rogue/outdoors/bog/south) "oTN" = ( @@ -83720,7 +83720,7 @@ locked = 1; lockid = "psy_bog_dung_lootkey_two" }, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/under/cave/his_vault) "suY" = ( @@ -84029,7 +84029,7 @@ lockid = "craftermaster" }, /obj/effect/spawner/lootdrop/roguetown/dungeon/money, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /obj/effect/spawner/lootdrop/roguetown/dungeon/money, /obj/structure/roguemachine/atm, /obj/effect/spawner/lootdrop/roguetown/dungeon/money, @@ -84244,7 +84244,7 @@ /turf/open/transparent/openspace, /area/rogue/indoors) "sAq" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/cobblerock, /area/rogue/outdoors/mountains/decap) "sAr" = ( @@ -84503,7 +84503,7 @@ /turf/open/floor/rogue/ruinedwood/spiral, /area/rogue/indoors) "sDO" = ( -/obj/structure/flora/rogueshroom/happy/random, +/obj/effect/spawner/lootdrop/rogueshroom/happy/random, /turf/open/floor/rogue/dirt/road, /area/rogue/under/underdark/north) "sDQ" = ( @@ -85432,7 +85432,7 @@ /turf/open/floor/rogue/dirt/road, /area/rogue/outdoors/rtfield) "sOE" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/mountains/decap/minotaurfort) "sOH" = ( @@ -85526,7 +85526,7 @@ /turf/open/floor/rogue/cobblerock, /area/rogue/outdoors/town) "sPU" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/indoors/cave) "sPX" = ( @@ -92747,8 +92747,8 @@ /area/rogue/under/town/basement/keep) "uuc" = ( /obj/structure/table/vtable, -/obj/item/roguegem/random, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/churchbrick, /area/rogue/under/cave/mazedungeon) "uuh" = ( @@ -96447,7 +96447,7 @@ /obj/structure/fluff/walldeco/bigpainting/lake, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/carpet/lord/center, /area/rogue/under/cave/licharena/bossroom) "vkz" = ( @@ -98836,7 +98836,7 @@ }, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, /obj/effect/spawner/lootdrop/valuable_jewelry_spawner, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/carpet/lord/center, /area/rogue/under/cave/licharena/bossroom) "vLw" = ( @@ -99163,7 +99163,7 @@ /area/rogue/indoors/town/garrison) "vOE" = ( /mob/living/simple_animal/hostile/retaliate/rogue/infernal/imp, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/church, /area/rogue/under/cave/goblinfort) "vOG" = ( @@ -103838,7 +103838,7 @@ /area/rogue/outdoors/rtfield/eora) "wPD" = ( /obj/structure/closet/crate/chest/neu_fancy, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/ruinedwood, /area/rogue/indoors/shelter) "wPE" = ( @@ -104135,7 +104135,7 @@ /turf/open/floor/rogue/metal/barograte/open, /area/rogue/under/underdark/south) "wSV" = ( -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/naturalstone, /area/rogue/outdoors/rtfield) "wSY" = ( @@ -109821,7 +109821,7 @@ /area/rogue/indoors/shelter/mountains/decap) "ygz" = ( /obj/structure/closet/crate/chest/neu_fancy, -/obj/item/roguegem/random, +/obj/effect/spawner/lootdrop/roguegem/random, /turf/open/floor/rogue/herringbone, /area/rogue/under/cave/dungeon1/gethsmane/inner) "ygB" = ( diff --git a/_maps/map_files/otherz/dungeon.dmm b/_maps/map_files/otherz/dungeon.dmm index 03cb6f2b39d..cc3c558b86c 100644 --- a/_maps/map_files/otherz/dungeon.dmm +++ b/_maps/map_files/otherz/dungeon.dmm @@ -1,115 +1,115 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/open/transparent/openspace, -/area/rogue) +/area/template_noop) "c" = ( /obj/structure/fluff/statue/tdummy, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/template_noop) "d" = ( /obj/structure/roguetent, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "e" = ( /obj/structure/fluff/railing/border{ dir = 9 }, /turf/open/transparent/openspace, -/area/rogue) +/area/template_noop) "f" = ( /turf/closed/wall/mineral/rogue/decostone/end{ dir = 4 }, -/area/rogue) +/area/template_noop) "g" = ( /obj/effect/dungeon_directional_helper/east, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "i" = ( /obj/machinery/light/rogue/torchholder/r, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/template_noop) "k" = ( /obj/structure/fluff/railing/border{ dir = 10 }, /turf/open/transparent/openspace, -/area/rogue) +/area/template_noop) "l" = ( /obj/structure/fluff/railing/border{ dir = 6 }, /turf/open/transparent/openspace, -/area/rogue) +/area/template_noop) "o" = ( /turf/closed/wall/mineral/rogue/decostone, -/area/rogue) +/area/template_noop) "p" = ( /obj/machinery/light/rogue/torchholder/l, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "q" = ( /obj/structure/table/wood{ icon_state = "tablewood1" }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "s" = ( /turf/closed/dungeon_void, -/area/rogue) +/area/template_noop) "u" = ( /obj/structure/stairs{ dir = 1 }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "v" = ( /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/template_noop) "w" = ( /obj/structure/dungeon_exit{ dungeon_id = "center" }, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/template_noop) "x" = ( /obj/structure/fluff/railing/border{ dir = 5 }, /turf/open/transparent/openspace, -/area/rogue) +/area/template_noop) "A" = ( /obj/structure/fluff/railing/border{ dir = 8 }, /turf/open/transparent/openspace, -/area/rogue) +/area/template_noop) "B" = ( /obj/effect/dungeon_directional_helper/south, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "C" = ( /obj/structure/stairs, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/template_noop) "D" = ( /turf/closed/mineral/rogue/bedrock, -/area/rogue) +/area/template_noop) "E" = ( /obj/structure/stairs, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "J" = ( /turf/closed/wall/mineral/rogue/decostone/long{ dir = 1 }, -/area/rogue) +/area/template_noop) "N" = ( /obj/structure/fluff/railing/border{ dir = 4 }, /turf/open/transparent/openspace, -/area/rogue) +/area/template_noop) "O" = ( /obj/item/flashlight/flare/torch, /obj/item/flashlight/flare/torch{ @@ -124,44 +124,44 @@ icon_state = "tablewood1" }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "P" = ( /turf/closed/wall/mineral/rogue/decostone/end{ dir = 8 }, -/area/rogue) +/area/template_noop) "Q" = ( /obj/item/reagent_containers/glass/bottle/waterskin, /obj/structure/table/wood{ icon_state = "tablewood1" }, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "R" = ( /obj/machinery/light/rogue/torchholder/l, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/template_noop) "S" = ( /obj/machinery/light/rogue/torchholder/r, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "V" = ( /obj/effect/dungeon_directional_helper/north, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "W" = ( /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) "X" = ( /obj/structure/stairs{ dir = 1 }, /turf/open/floor/rogue/ruinedwood/spiral, -/area/rogue) +/area/template_noop) "Y" = ( /obj/effect/dungeon_directional_helper/west, /turf/open/floor/rogue/hexstone, -/area/rogue) +/area/template_noop) (1,1,1) = {" s diff --git a/_maps/map_files/otherz/wretch_coast.dmm b/_maps/map_files/otherz/wretch_coast.dmm index 125f3406f17..167ca85eaf6 100644 --- a/_maps/map_files/otherz/wretch_coast.dmm +++ b/_maps/map_files/otherz/wretch_coast.dmm @@ -946,8 +946,8 @@ /turf/open/floor/rogue/blocks, /area/rogue/indoors/eventarea/multiz) "eS" = ( -/turf/closed/mineral/rogue/bedrock, -/area/rogue) +/turf/open/water/river/flow, +/area/rogue/indoors/cave) "eT" = ( /obj/structure/stairs/stone{ dir = 4 @@ -2464,6 +2464,9 @@ /obj/structure/bed/rogue/inn/hay, /turf/open/floor/rogue/blocks, /area/rogue/indoors/vampire_manor) +"mO" = ( +/turf/open/water/river/flow/east, +/area/rogue/indoors/cave) "mP" = ( /turf/open/floor/rogue/cobble, /area/rogue/indoors/eventarea/multiz) @@ -3238,6 +3241,9 @@ /obj/machinery/light/rogue/candle/r, /turf/open/floor/rogue/tile/bfloorz, /area/rogue/indoors/vampire_manor) +"ra" = ( +/turf/open/water/cleanshallow, +/area/rogue/indoors/cave) "rc" = ( /turf/open/floor/rogue/ruinedwood/turned, /area/rogue/indoors/eventarea/multiz) @@ -9621,7 +9627,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -9751,7 +9757,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -9881,7 +9887,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -10011,7 +10017,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -10141,7 +10147,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -10271,7 +10277,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -10401,7 +10407,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -10531,7 +10537,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -10661,7 +10667,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -10791,7 +10797,7 @@ PI PI PI PI -eS +PI IL IL lB @@ -10921,7 +10927,7 @@ PI PI PI PI -eS +PI IL IL ZK @@ -11051,7 +11057,7 @@ PI PI PI PI -eS +PI IL IL ZK @@ -11181,7 +11187,7 @@ PI PI PI PI -eS +PI IL IL jh @@ -11311,7 +11317,7 @@ PI PI PI PI -eS +PI IL IL ZK @@ -11441,7 +11447,7 @@ PI PI PI PI -eS +PI IL IL jh @@ -11571,7 +11577,7 @@ PI PI PI PI -eS +PI IL IL ZK @@ -11701,7 +11707,7 @@ PI PI PI PI -eS +PI IL IL ZK @@ -11831,7 +11837,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -11961,7 +11967,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -12091,7 +12097,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -12221,7 +12227,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -12351,7 +12357,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -12481,7 +12487,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -12611,7 +12617,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -12741,7 +12747,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -12871,7 +12877,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13001,7 +13007,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13131,7 +13137,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13261,7 +13267,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13391,7 +13397,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13521,7 +13527,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13651,7 +13657,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13781,7 +13787,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -13911,7 +13917,7 @@ PI PI PI PI -eS +PI IL IL IL @@ -14041,7 +14047,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -14171,7 +14177,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -14301,7 +14307,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -14431,7 +14437,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -14561,7 +14567,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -14691,7 +14697,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -14821,7 +14827,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -14951,7 +14957,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15081,7 +15087,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15211,7 +15217,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15341,7 +15347,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15471,7 +15477,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15601,7 +15607,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15731,7 +15737,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15861,7 +15867,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -15991,7 +15997,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -16121,7 +16127,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -16251,7 +16257,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -16381,7 +16387,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -16511,7 +16517,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -16641,7 +16647,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -16771,7 +16777,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -16901,7 +16907,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17031,7 +17037,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17161,7 +17167,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17291,7 +17297,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17421,7 +17427,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17551,7 +17557,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17681,7 +17687,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17811,7 +17817,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -17941,7 +17947,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -18071,7 +18077,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -18201,7 +18207,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -18331,7 +18337,7 @@ PI PI PI PI -eS +PI gk gk gk @@ -18459,9 +18465,9 @@ QI QI QI QI -QI +mO +PI PI -eS gk gk gk @@ -18589,9 +18595,9 @@ nG nG nG nG -nG -PI eS +PI +PI gk gk gk @@ -18719,9 +18725,9 @@ nG nG nG nG -nG -PI eS +PI +PI gk gk gk @@ -18849,9 +18855,9 @@ nG nG nG nG -nG -PI eS +PI +PI gk gk gk @@ -18979,9 +18985,9 @@ vU vU vU vU -vU +ra +PI PI -eS gk gk gk @@ -19111,7 +19117,7 @@ pa rB PI PI -eS +PI gk gk gk @@ -19241,7 +19247,7 @@ pa rB PI PI -eS +PI gk gk gk @@ -19371,7 +19377,7 @@ rB rB PI PI -eS +PI gk gk gk @@ -19501,7 +19507,7 @@ rB PI PI PI -eS +PI gk gk gk @@ -19631,7 +19637,7 @@ rB PI PI PI -eS +PI gk gk gk @@ -19761,7 +19767,7 @@ PI PI PI PI -eS +PI gk gk gk diff --git a/code/__DEFINES/_tick.dm b/code/__DEFINES/_tick.dm index 05b3a5717c4..de165a547d4 100644 --- a/code/__DEFINES/_tick.dm +++ b/code/__DEFINES/_tick.dm @@ -1,11 +1,21 @@ +/// Percentage of tick to leave for master controller to run +#define MAPTICK_MC_MIN_RESERVE 60 +/// internal_tick_usage is updated every tick by extools +#define MAPTICK_LAST_INTERNAL_TICK_USAGE ((Master.normalized_internal_tick_usage / world.tick_lag) * 100) +/// Amount of a tick to reserve for byond regardless of its reported internal_tick_usage +#define TICK_BYOND_RESERVE 2 /// Tick limit while running normally -#define TICK_LIMIT_RUNNING 80 +#define TICK_LIMIT_RUNNING (max(TICK_LIMIT_RUNNING_BACKGROUND, MAPTICK_MC_MIN_RESERVE)) +/// Tick limit for background things, strictly obeys the internal_tick_usage metric +#define TICK_LIMIT_RUNNING_BACKGROUND (100 - TICK_BYOND_RESERVE - MAPTICK_LAST_INTERNAL_TICK_USAGE) +/// Precent of a tick to require to even bother running anything. (10 percent of the tick_limit_running by default) +#define TICK_MIN_RUNTIME (TICK_LIMIT_RUNNING * 0.1) /// Tick limit used to resume things in stoplag -#define TICK_LIMIT_TO_RUN 70 +#define TICK_LIMIT_TO_RUN (Master.current_ticklimit - TICK_MIN_RUNTIME) /// Tick limit for MC while running -#define TICK_LIMIT_MC 70 +#define TICK_LIMIT_MC (TICK_LIMIT_RUNNING - TICK_MIN_RUNTIME) /// Tick limit while initializing -#define TICK_LIMIT_MC_INIT_DEFAULT 98 +#define TICK_LIMIT_MC_INIT_DEFAULT (100 - TICK_BYOND_RESERVE) /// for general usage of tick_usage #define TICK_USAGE world.tick_usage diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index bb1e3777d0a..5c43b94d0aa 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -819,3 +819,62 @@ GLOBAL_LIST_EMPTY(string_lists) // Finally return the list using regular english_list builder. return english_list(out, nothing_text, and_text, comma_text, final_comma_text) + +/** + * Move a single element from position from_index within a list, to position to_index + * All elements in the range [1,to_index) before the move will be before the pivot afterwards + * All elements in the range [to_index, L.len+1) before the move will be after the pivot afterwards + * In other words, it's as if the range [from_index,to_index) have been rotated using a <<< operation common to other languages. + * from_index and to_index must be in the range [1,L.len+1] + * This will preserve associations ~Carnie +**/ +/proc/move_element(list/inserted_list, from_index, to_index) + if(from_index == to_index || from_index + 1 == to_index) //no need to move + return + if(from_index > to_index) + ++from_index //since a null will be inserted before from_index, the index needs to be nudged right by one + + inserted_list.Insert(to_index, null) + inserted_list.Swap(from_index, to_index) + inserted_list.Cut(from_index, from_index + 1) + +///replaces reverseList ~Carnie +/proc/reverse_range(list/inserted_list, start = 1, end = 0) + if(inserted_list.len) + start = start % inserted_list.len + end = end % (inserted_list.len + 1) + if(start <= 0) + start += inserted_list.len + if(end <= 0) + end += inserted_list.len + 1 + + --end + while(start < end) + inserted_list.Swap(start++, end--) + + return inserted_list + +/** + * Move elements [from_index,from_index+len) to [to_index-len, to_index) + * Same as moveElement but for ranges of elements + * This will preserve associations ~Carnie +**/ +/proc/move_range(list/inserted_list, from_index, to_index, len = 1) + var/distance = abs(to_index - from_index) + if(len >= distance) //there are more elements to be moved than the distance to be moved. Therefore the same result can be achieved (with fewer operations) by moving elements between where we are and where we are going. The result being, our range we are moving is shifted left or right by dist elements + if(from_index <= to_index) + return //no need to move + from_index += len //we want to shift left instead of right + + for(var/i in 1 to distance) + inserted_list.Insert(from_index, null) + inserted_list.Swap(from_index, to_index) + inserted_list.Cut(to_index, to_index + 1) + else + if(from_index > to_index) + from_index += len + + for(var/i in 1 to len) + inserted_list.Insert(to_index, null) + inserted_list.Swap(from_index, to_index) + inserted_list.Cut(from_index, from_index + 1) diff --git a/code/__HELPERS/sorts/InsertSort.dm b/code/__HELPERS/sorts/InsertSort.dm index 4c8c207abe6..54b73ba140c 100644 --- a/code/__HELPERS/sorts/InsertSort.dm +++ b/code/__HELPERS/sorts/InsertSort.dm @@ -8,7 +8,7 @@ if(toIndex <= 0) toIndex += L.len + 1 - var/datum/sortInstance/SI = GLOB.sortInstance + var/datum/sort_instance/SI = GLOB.sort_instance if(!SI) SI = new SI.L = L diff --git a/code/__HELPERS/sorts/MergeSort.dm b/code/__HELPERS/sorts/MergeSort.dm index 9c85f37f7c6..b7266962e63 100644 --- a/code/__HELPERS/sorts/MergeSort.dm +++ b/code/__HELPERS/sorts/MergeSort.dm @@ -8,7 +8,7 @@ if(toIndex <= 0) toIndex += L.len + 1 - var/datum/sortInstance/SI = GLOB.sortInstance + var/datum/sort_instance/SI = GLOB.sort_instance if(!SI) SI = new SI.L = L diff --git a/code/__HELPERS/sorts/TimSort.dm b/code/__HELPERS/sorts/TimSort.dm index 7191d1ee55c..cec104f4057 100644 --- a/code/__HELPERS/sorts/TimSort.dm +++ b/code/__HELPERS/sorts/TimSort.dm @@ -8,7 +8,7 @@ if(toIndex <= 0) toIndex += L.len + 1 - var/datum/sortInstance/SI = GLOB.sortInstance + var/datum/sort_instance/SI = GLOB.sort_instance if(!SI) SI = new diff --git a/code/__HELPERS/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm index cc394a0649a..1ea784a820c 100644 --- a/code/__HELPERS/sorts/__main.dm +++ b/code/__HELPERS/sorts/__main.dm @@ -8,19 +8,19 @@ //When we get into galloping mode, we stay there until both runs win less often than MIN_GALLOP consecutive times. #define MIN_GALLOP 7 - //This is a global instance to allow much of this code to be reused. The interfaces are kept separately -GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) -/datum/sortInstance +//This is a global instance to allow much of this code to be reused. The interfaces are kept separately +GLOBAL_DATUM_INIT(sort_instance, /datum/sort_instance, new()) +/datum/sort_instance //The array being sorted. var/list/L //The comparator proc-reference - var/cmp = /proc/cmp_numeric_asc + var/cmp = GLOBAL_PROC_REF(cmp_numeric_asc) //whether we are sorting list keys (0: L[i]) or associated values (1: L[L[i]]) var/associative = 0 - //This controls when we get *into* galloping mode. It is initialized to MIN_GALLOP. + //This controls when we get *into* galloping mode. It is initialized to MIN_GALLOP. //The mergeLo and mergeHi methods nudge it higher for random data, and lower for highly structured data. var/minGallop = MIN_GALLOP @@ -31,7 +31,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) var/list/runLens = list() -/datum/sortInstance/proc/timSort(start, end) +/datum/sort_instance/proc/timSort(start, end) runBases.Cut() runLens.Cut() @@ -82,26 +82,27 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) return L -/* -Sorts the specified portion of the specified array using a binary -insertion sort. This is the best method for sorting small numbers -of elements. It requires O(n log n) compares, but O(n^2) data -movement (worst case). - -If the initial part of the specified range is already sorted, -this method can take advantage of it: the method assumes that the -elements in range [lo,start) are already sorted - -lo the index of the first element in the range to be sorted -hi the index after the last element in the range to be sorted -start the index of the first element in the range that is not already known to be sorted -*/ -/datum/sortInstance/proc/binarySort(lo, hi, start) + /* + Sorts the specified portion of the specified array using a binary + insertion sort. This is the best method for sorting small numbers + of elements. It requires O(n log n) compares, but O(n^2) data + movement (worst case). + + If the initial part of the specified range is already sorted, + this method can take advantage of it: the method assumes that the + elements in range [lo,start) are already sorted + + lo the index of the first element in the range to be sorted + hi the index after the last element in the range to be sorted + start the index of the first element in the range that is not already known to be sorted + */ +/datum/sort_instance/proc/binarySort(lo, hi, start) //ASSERT(lo <= start && start <= hi) if(start <= lo) start = lo + 1 - for(,start < hi, ++start) + var/list/L = src.L + for(start in start to hi - 1) var/pivot = fetchElement(L,start) //set left and right to the index where pivot belongs @@ -112,34 +113,35 @@ start the index of the first element in the range that is not already known to b //[lo, left) elements <= pivot < [right, start) elements //in other words, find where the pivot element should go using bisection search while(left < right) - var/mid = (left + right) >> 1 //round((left+right)/2) + var/mid = (left + right) >> 1 //round((left+right)/2) if(call(cmp)(fetchElement(L,mid), pivot) > 0) right = mid else left = mid+1 //ASSERT(left == right) - moveElement(L, start, left) //move pivot element to correct location in the sorted range + move_element(L, start, left) //move pivot element to correct location in the sorted range -/* -Returns the length of the run beginning at the specified position and reverses the run if it is back-to-front + /* + Returns the length of the run beginning at the specified position and reverses the run if it is back-to-front -A run is the longest ascending sequence with: - a[lo] <= a[lo + 1] <= a[lo + 2] <= ... -or the longest descending sequence with: - a[lo] > a[lo + 1] > a[lo + 2] > ... + A run is the longest ascending sequence with: + a[lo] <= a[lo + 1] <= a[lo + 2] <= ... + or the longest descending sequence with: + a[lo] > a[lo + 1] > a[lo + 2] > ... -For its intended use in a stable mergesort, the strictness of the -definition of "descending" is needed so that the call can safely -reverse a descending sequence without violating stability. -*/ -/datum/sortInstance/proc/countRunAndMakeAscending(lo, hi) + For its intended use in a stable mergesort, the strictness of the + definition of "descending" is needed so that the call can safely + reverse a descending sequence without violating stability. + */ +/datum/sort_instance/proc/countRunAndMakeAscending(lo, hi) //ASSERT(lo < hi) var/runHi = lo + 1 if(runHi >= hi) return 1 + var/list/L = src.L var/last = fetchElement(L,lo) var/current = fetchElement(L,runHi++) @@ -150,7 +152,7 @@ reverse a descending sequence without violating stability. if(call(cmp)(current, last) >= 0) break ++runHi - reverseRange(L, lo, runHi) + reverse_range(L, lo, runHi) else while(runHi < hi) last = current @@ -161,22 +163,22 @@ reverse a descending sequence without violating stability. return runHi - lo -//Returns the minimum acceptable run length for an array of the specified length. -//Natural runs shorter than this will be extended with binarySort -/datum/sortInstance/proc/minRunLength(n) + //Returns the minimum acceptable run length for an array of the specified length. + //Natural runs shorter than this will be extended with binarySort +/datum/sort_instance/proc/minRunLength(n) //ASSERT(n >= 0) - var/r = 0 //becomes 1 if any bits are shifted off + var/r = 0 //becomes 1 if any bits are shifted off while(n >= MIN_MERGE) r |= (n & 1) n >>= 1 return n + r -//Examines the stack of runs waiting to be merged and merges adjacent runs until the stack invariants are reestablished: -// runLen[i-3] > runLen[i-2] + runLen[i-1] -// runLen[i-2] > runLen[i-1] -//This method is called each time a new run is pushed onto the stack. -//So the invariants are guaranteed to hold for i runLen[i-2] + runLen[i-1] + // runLen[i-2] > runLen[i-1] + //This method is called each time a new run is pushed onto the stack. + //So the invariants are guaranteed to hold for i= 2) var/n = runBases.len - 1 if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) @@ -186,12 +188,12 @@ reverse a descending sequence without violating stability. else if(runLens[n] <= runLens[n+1]) mergeAt(n) else - break //Invariant is established + break //Invariant is established -//Merges all runs on the stack until only one remains. -//Called only once, to finalise the sort -/datum/sortInstance/proc/mergeForceCollapse() + //Merges all runs on the stack until only one remains. + //Called only once, to finalise the sort +/datum/sort_instance/proc/mergeForceCollapse() while(runBases.len >= 2) var/n = runBases.len - 1 if(n > 1 && runLens[n-1] < runLens[n+1]) @@ -199,10 +201,10 @@ reverse a descending sequence without violating stability. mergeAt(n) -//Merges the two consecutive runs at stack indices i and i+1 -//Run i must be the penultimate or antepenultimate run on the stack -//In other words, i must be equal to stackSize-2 or stackSize-3 -/datum/sortInstance/proc/mergeAt(i) + //Merges the two consecutive runs at stack indices i and i+1 + //Run i must be the penultimate or antepenultimate run on the stack + //In other words, i must be equal to stackSize-2 or stackSize-3 +/datum/sort_instance/proc/mergeAt(i) //ASSERT(runBases.len >= 2) //ASSERT(i >= 1) //ASSERT(i == runBases.len - 1 || i == runBases.len - 2) @@ -221,7 +223,6 @@ reverse a descending sequence without violating stability. runLens.Cut(i+1, i+2) runBases.Cut(i+1, i+2) - //Find where the first element of run2 goes in run1. //Prior elements in run1 can be ignored (because they're already in place) var/k = gallopRight(fetchElement(L,base2), base1, len1, 0) @@ -245,20 +246,21 @@ reverse a descending sequence without violating stability. mergeHi(base1, len1, base2, len2) -/* - Locates the position to insert key within the specified sorted range - If the range contains elements equal to key, this will return the index of the LEFTMOST of those elements + /* + Locates the position to insert key within the specified sorted range + If the range contains elements equal to key, this will return the index of the LEFTMOST of those elements - key the element to be inserted into the sorted range - base the index of the first element of the sorted range - len the length of the sorted range, must be greater than 0 - hint the offset from base at which to begin the search, such that 0 <= hint < len; i.e. base <= hint < base+hint + key the element to be inserted into the sorted range + base the index of the first element of the sorted range + len the length of the sorted range, must be greater than 0 + hint the offset from base at which to begin the search, such that 0 <= hint < len; i.e. base <= hint < base+hint - Returns the index at which to insert element 'key' -*/ -/datum/sortInstance/proc/gallopLeft(key, base, len, hint) + Returns the index at which to insert element 'key' + */ +/datum/sort_instance/proc/gallopLeft(key, base, len, hint) //ASSERT(len > 0 && hint >= 0 && hint < len) + var/list/L = src.L var/lastOffset = 0 var/offset = 1 if(call(cmp)(key, fetchElement(L,base+hint)) > 0) @@ -302,29 +304,30 @@ reverse a descending sequence without violating stability. //ASSERT(lastOffset == offset) return offset -/** - * Like gallopLeft, except that if the range contains an element equal to - * key, gallopRight returns the index after the rightmost equal element. - * - * @param key the key whose insertion point to search for - * @param a the array in which to search - * @param base the index of the first element in the range - * @param len the length of the range; must be > 0 - * @param hint the index at which to begin the search, 0 <= hint < n. - * The closer hint is to the result, the faster this method will run. - * @param c the comparator used to order the range, and to search - * @return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k] - */ -/datum/sortInstance/proc/gallopRight(key, base, len, hint) + /** + * Like gallopLeft, except that if the range contains an element equal to + * key, gallopRight returns the index after the rightmost equal element. + * + * @param key the key whose insertion point to search for + * @param a the array in which to search + * @param base the index of the first element in the range + * @param len the length of the range; must be > 0 + * @param hint the index at which to begin the search, 0 <= hint < n. + * The closer hint is to the result, the faster this method will run. + * @param c the comparator used to order the range, and to search + * @return the int k, 0 <= k <= n such that `a[b + k - 1] <= key < a[b + k]` + */ +/datum/sort_instance/proc/gallopRight(key, base, len, hint) //ASSERT(len > 0 && hint >= 0 && hint < len) + var/list/L = src.L var/offset = 1 var/lastOffset = 0 - if(call(cmp)(key, fetchElement(L,base+hint)) < 0) //key <= L[base+hint] - var/maxOffset = hint + 1 //therefore we want to insert somewhere in the range [base,base+hint] = [base+,base+(hint+1)) - while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards + if(call(cmp)(key, fetchElement(L,base+hint)) < 0) //key <= L[base+hint] + var/maxOffset = hint + 1 //therefore we want to insert somewhere in the range [base,base+hint] = [base+,base+(hint+1)) + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards lastOffset = offset - offset = (offset << 1) + 1 //1 3 7 15 + offset = (offset << 1) + 1 //1 3 7 15 if(offset > maxOffset) offset = maxOffset @@ -333,8 +336,8 @@ reverse a descending sequence without violating stability. lastOffset = hint - offset offset = hint - temp - else //key > L[base+hint] - var/maxOffset = len - hint //therefore we want to insert somewhere in the range (base+hint,base+len) = [base+hint+1, base+hint+(len-hint)) + else //key > L[base+hint] + var/maxOffset = len - hint //therefore we want to insert somewhere in the range (base+hint,base+len) = [base+hint+1, base+hint+(len-hint)) while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0) lastOffset = offset offset = (offset << 1) + 1 @@ -351,9 +354,9 @@ reverse a descending sequence without violating stability. while(lastOffset < offset) var/m = lastOffset + ((offset - lastOffset) >> 1) - if(call(cmp)(key, fetchElement(L,base+m)) < 0) //key <= L[base+m] + if(call(cmp)(key, fetchElement(L,base+m)) < 0) //key <= L[base+m] offset = m - else //key > L[base+m] + else //key > L[base+m] lastOffset = m + 1 //ASSERT(lastOffset == offset) @@ -361,39 +364,40 @@ reverse a descending sequence without violating stability. return offset -//Merges two adjacent runs in-place in a stable fashion. -//For performance this method should only be called when len1 <= len2! -/datum/sortInstance/proc/mergeLo(base1, len1, base2, len2) + //Merges two adjacent runs in-place in a stable fashion. + //For performance this method should only be called when len1 <= len2! +/datum/sort_instance/proc/mergeLo(base1, len1, base2, len2) //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) + var/list/L = src.L var/cursor1 = base1 var/cursor2 = base2 //degenerate cases if(len2 == 1) - moveElement(L, cursor2, cursor1) + move_element(L, cursor2, cursor1) return if(len1 == 1) - moveElement(L, cursor1, cursor2+len2) + move_element(L, cursor1, cursor2+len2) return //Move first element of second run - moveElement(L, cursor2++, cursor1++) + move_element(L, cursor2++, cursor1++) --len2 outer: while(1) - var/count1 = 0 //# of times in a row that first run won - var/count2 = 0 // " " " " " " second run won + var/count1 = 0 //# of times in a row that first run won + var/count2 = 0 // " " " " " " second run won - //do the straightfoward thin until one run starts winning consistently + //do the straightforward thin until one run starts winning consistently do //ASSERT(len1 > 1 && len2 > 0) if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) - moveElement(L, cursor2++, cursor1++) + move_element(L, cursor2++, cursor1++) --len2 ++count2 @@ -413,7 +417,7 @@ reverse a descending sequence without violating stability. while((count1 | count2) < minGallop) - //one run is winning consistently so galloping may provide huge benifits + //one run is winning consistently so galloping may provide huge benefits //so try galloping, until such time as the run is no longer consistently winning do //ASSERT(len1 > 1 && len2 > 0) @@ -426,7 +430,7 @@ reverse a descending sequence without violating stability. if(len1 <= 1) break outer - moveElement(L, cursor2, cursor1) + move_element(L, cursor2, cursor1) ++cursor2 ++cursor1 if(--len2 == 0) @@ -434,7 +438,7 @@ reverse a descending sequence without violating stability. count2 = gallopLeft(fetchElement(L,cursor1), cursor2, len2, 0) if(count2) - moveRange(L, cursor2, cursor1, count2) + move_range(L, cursor2, cursor1, count2) cursor2 += count2 cursor1 += count2 @@ -458,41 +462,42 @@ reverse a descending sequence without violating stability. if(len1 == 1) //ASSERT(len2 > 0) - moveElement(L, cursor1, cursor2+len2) + move_element(L, cursor1, cursor2+len2) //else //ASSERT(len2 == 0) //ASSERT(len1 > 1) -/datum/sortInstance/proc/mergeHi(base1, len1, base2, len2) +/datum/sort_instance/proc/mergeHi(base1, len1, base2, len2) //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) - var/cursor1 = base1 + len1 - 1 //start at end of sublists + var/list/L = src.L + var/cursor1 = base1 + len1 - 1 //start at end of sublists var/cursor2 = base2 + len2 - 1 //degenerate cases if(len2 == 1) - moveElement(L, base2, base1) + move_element(L, base2, base1) return if(len1 == 1) - moveElement(L, base1, cursor2+1) + move_element(L, base1, cursor2+1) return - moveElement(L, cursor1--, cursor2-- + 1) + move_element(L, cursor1--, cursor2-- + 1) --len1 outer: while(1) - var/count1 = 0 //# of times in a row that first run won - var/count2 = 0 // " " " " " " second run won + var/count1 = 0 //# of times in a row that first run won + var/count2 = 0 // " " " " " " second run won - //do the straightfoward thing until one run starts winning consistently + //do the straightforward thing until one run starts winning consistently do //ASSERT(len1 > 0 && len2 > 1) if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) - moveElement(L, cursor1--, cursor2-- + 1) + move_element(L, cursor1--, cursor2-- + 1) --len1 ++count1 @@ -511,16 +516,16 @@ reverse a descending sequence without violating stability. break outer while((count1 | count2) < minGallop) - //one run is winning consistently so galloping may provide huge benifits + //one run is winning consistently so galloping may provide huge benefits //so try galloping, until such time as the run is no longer consistently winning do //ASSERT(len1 > 0 && len2 > 1) - count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1? + count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1? if(count1) cursor1 -= count1 - moveRange(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition + move_range(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition cursor2 -= count1 len1 -= count1 @@ -541,7 +546,7 @@ reverse a descending sequence without violating stability. if(len2 <= 1) break outer - moveElement(L, cursor1--, cursor2-- + 1) + move_element(L, cursor1--, cursor2-- + 1) --len1 if(len1 == 0) @@ -552,20 +557,20 @@ reverse a descending sequence without violating stability. if(minGallop < 0) minGallop = 0 - minGallop += 2 // Penalize for leaving gallop mode + minGallop += 2 // Penalize for leaving gallop mode if(len2 == 1) //ASSERT(len1 > 0) cursor1 -= len1 - moveRange(L, cursor1+1, cursor2+1, len1) + move_range(L, cursor1+1, cursor2+1, len1) //else //ASSERT(len1 == 0) //ASSERT(len2 > 0) -/datum/sortInstance/proc/mergeSort(start, end) +/datum/sort_instance/proc/mergeSort(start, end) var/remaining = end - start //If array is small, do an insertion sort @@ -599,7 +604,7 @@ reverse a descending sequence without violating stability. else if(runLens[n] <= runLens[n+1]) mergeAt2(n) else - break //Invariant is established + break //Invariant is established while(runBases.len >= 2) var/n = runBases.len - 1 @@ -609,7 +614,8 @@ reverse a descending sequence without violating stability. return L -/datum/sortInstance/proc/mergeAt2(i) +/datum/sort_instance/proc/mergeAt2(i) + var/list/L = src.L var/cursor1 = runBases[i] var/cursor2 = runBases[i+1] @@ -625,7 +631,7 @@ reverse a descending sequence without violating stability. break val1 = fetchElement(L,cursor1) else - moveElement(L,cursor2,cursor1) + move_element(L,cursor2,cursor1) if(++cursor2 >= end2) break diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 0a50d6adf4c..04aabb6c448 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -103,7 +103,7 @@ GLOBAL_VAR_INIT(date_override_offset, 0) SStreasury.distribute_estate_incomes() SStreasury.distribute_daily_payments() SStreasury.distribute_interest() - for(var/mob/living/player in GLOB.mob_list) + for(var/mob/living/player in GLOB.joined_player_list) //CC Edit mob_list -> joined_player_list if(player.stat != DEAD && player.client) player.do_time_change() diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index c25828c2c64..7f243aed026 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1144,20 +1144,27 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) //as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful #define DELTA_CALC max(((max(TICK_USAGE, world.cpu) / 100) * max(Master.sleep_delta-1,1)), 1) -//returns the number of ticks slept +///returns the number of ticks slept /proc/stoplag(initial_delay) - if (!Master || !(Master.current_runlevel & RUNLEVELS_DEFAULT)) + if (!Master ||!(Master.current_runlevel & RUNLEVELS_DEFAULT)) sleep(world.tick_lag) return 1 if (!initial_delay) initial_delay = world.tick_lag +// Unit tests are not the normal environemnt. The mc can get absolutely thigh crushed, and sleeping procs running for ages is much more common +// We don't want spurious hard deletes off this, so let's only sleep for the requested period of time here yeah? +#ifdef UNIT_TESTS + sleep(initial_delay) + return CEILING(DS2TICKS(initial_delay), 1) +#else . = 0 var/i = DS2TICKS(initial_delay) do - . += CEILING(i*DELTA_CALC, 1) - sleep(i*world.tick_lag*DELTA_CALC) + . += CEILING(i * DELTA_CALC, 1) + sleep(i * world.tick_lag * DELTA_CALC) i *= 2 while (TICK_USAGE > min(TICK_LIMIT_TO_RUN, Master.current_ticklimit)) +#endif #undef DELTA_CALC diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 199d199b913..57fdcea570d 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -33,3 +33,5 @@ GLOBAL_VAR(bible_icon_state) GLOBAL_VAR(bible_item_state) GLOBAL_VAR(holy_weapon_type) GLOBAL_VAR(holy_armor_type) + +GLOBAL_VAR_INIT(internal_tick_usage, 0.2 * world.tick_lag) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 4d4bc96676b..327e7b20e91 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -36,7 +36,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/sleep_delta = 1 - var/make_runtime = 0 + ///Only run ticker subsystems for the next n ticks. + var/skip_ticks = 0 + + var/make_runtime = FALSE var/initializations_finished_with_no_players_logged_in //I wonder what this could be? @@ -58,9 +61,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/static/random_seed - //current tick limit, assigned before running a subsystem. - //used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits + ///current tick limit, assigned before running a subsystem. used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits var/static/current_ticklimit = TICK_LIMIT_RUNNING + /// normalized version of the byond internal tick usage metric to smooth out peaks. + var/normalized_internal_tick_usage = 0 /datum/controller/master/New() if(!config) @@ -68,11 +72,11 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // Highlander-style: there can only be one! Kill off the old and replace it with the new. if(!random_seed) -#ifdef UNIT_TESTS + #ifdef UNIT_TESTS random_seed = 29051994 -#else + #else random_seed = rand(1, 1e9) -#endif + #endif rand_seed(random_seed) var/list/_subsystems = list() @@ -83,7 +87,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new qdel(Master) else var/list/subsytem_types = subtypesof(/datum/controller/subsystem) - sortTim(subsytem_types, GLOBAL_PROC_REF(cmp_subsystem_init)) + sortTim(subsytem_types, /proc/cmp_subsystem_init) for(var/I in subsytem_types) _subsystems += new I Master = src @@ -98,7 +102,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new /datum/controller/master/Shutdown() processing = FALSE - sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) + sortTim(subsystems, /proc/cmp_subsystem_init) reverseRange(subsystems) for(var/datum/controller/subsystem/ss in subsystems) log_world("Shutting down [ss.name] subsystem...") @@ -166,31 +170,25 @@ GLOBAL_REAL(Master, /datum/controller/master) = new to_chat(world, "The Master Controller is having some issues, we will need to re-initialize EVERYTHING") Initialize(20, TRUE) + // Please don't stuff random bullshit here, // Make a subsystem, give it the SS_NO_FIRE flag, and do your work in it's Initialize() /datum/controller/master/Initialize(delay, init_sss, tgs_prime) - set waitfor = 0 + set waitfor = FALSE if(delay) sleep(delay) - if(tgs_prime) - world.TgsInitializationComplete() - if(init_sss) init_subtypes(/datum/controller/subsystem, subsystems) -#ifdef TESTING + to_chat(world, "Initializing subsystems...") -#endif + // Sort subsystems by init_order, so they initialize in the correct order. - sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) + sortTim(subsystems, /proc/cmp_subsystem_init) var/start_timeofday = REALTIMEOFDAY // Initialize subsystems. -//#ifndef TESTSERVER -// var/thing_done = FALSE -//#endif - current_ticklimit = CONFIG_GET(number/tick_limit_mc_init) for (var/datum/controller/subsystem/SS in subsystems) if (SS.flags & SS_NO_INIT) @@ -201,22 +199,21 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/time = (REALTIMEOFDAY - start_timeofday) / 10 var/msg = "Initializations complete within [time] second[time == 1 ? "" : "s"]!" - -#ifdef TESTING to_chat(world, "[msg]") -#endif log_world(msg) if (!current_runlevel) SetRunLevel(1) - setup_cargo_boat() // Sort subsystems by display setting for easy access. - sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display)) + sortTim(subsystems, /proc/cmp_subsystem_display) // Set world options. world.change_fps(CONFIG_GET(number/fps)) var/initialized_tod = REALTIMEOFDAY + if(tgs_prime) + world.TgsInitializationComplete() + if(sleep_offline_after_initializations) world.sleep_offline = TRUE sleep(1) @@ -226,24 +223,23 @@ GLOBAL_REAL(Master, /datum/controller/master) = new initializations_finished_with_no_players_logged_in = initialized_tod < REALTIMEOFDAY - 10 // Loop. Master.StartProcessing(0) - SSgamemode.handle_picking_storyteller() /datum/controller/master/proc/SetRunLevel(new_runlevel) var/old_runlevel = current_runlevel if(isnull(old_runlevel)) old_runlevel = "NULL" - + testing("MC: Runlevel changed from [old_runlevel] to [new_runlevel]") current_runlevel = log(2, new_runlevel) + 1 if(current_runlevel < 1) CRASH("Attempted to set invalid runlevel: [new_runlevel]") // Starts the mc, and sticks around to restart it if the loop ever ends. /datum/controller/master/proc/StartProcessing(delay) - set waitfor = 0 + set waitfor = FALSE if(delay) sleep(delay) - + testing("Master starting processing") var/rtn = Loop() if (rtn > 0 || processing < 0) return //this was suppose to happen. @@ -276,8 +272,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new SS.state = SS_IDLE if (SS.flags & SS_TICKER) tickersubsystems += SS - // Timer subsystems aren't allowed to bunch up, so we offset them a bit - timer += world.tick_lag * rand(0, 1) + timer += world.tick_lag * rand(1, 5) SS.next_fire = timer continue @@ -298,7 +293,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new //(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add) sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority)) for(var/I in runlevel_sorted_subsystems) - sortTim(I, GLOBAL_PROC_REF(cmp_subsystem_priority)) //I is a list, sort it bro + sortTim(I, GLOBAL_PROC_REF(cmp_subsystem_priority)) I += tickersubsystems var/cached_runlevel = current_runlevel @@ -315,12 +310,15 @@ GLOBAL_REAL(Master, /datum/controller/master) = new while (1) tickdrift = max(0, MC_AVERAGE_FAST(tickdrift, (((REALTIMEOFDAY - init_timeofday) - (world.time - init_time)) / world.tick_lag))) + normalized_internal_tick_usage = max(0, MC_AVG_FAST_UP_SLOW_DOWN(normalized_internal_tick_usage, GLOB.internal_tick_usage)) var/starting_tick_usage = TICK_USAGE if (processing <= 0) current_ticklimit = TICK_LIMIT_RUNNING sleep(10) continue + sleep_delta = MC_AVERAGE_FAST(sleep_delta, 1) //decay sleep_delta + //Anti-tick-contention heuristics: //if there are mutiple sleeping procs running before us hogging the cpu, we have to run later. // (because sleeps are processed in the order received, longer sleeps are more likely to run first) @@ -334,39 +332,36 @@ GLOBAL_REAL(Master, /datum/controller/master) = new if (last_run + CEILING(world.tick_lag * (processing * sleep_delta), world.tick_lag) < world.time) sleep_delta += 1 - sleep_delta = MC_AVERAGE_FAST(sleep_delta, 1) //decay sleep_delta - if (starting_tick_usage > (TICK_LIMIT_MC*0.75)) //we ran 3/4 of the way into the tick sleep_delta += 1 //debug if (make_runtime) var/datum/controller/subsystem/SS - SS.can_fire = 0 + SS.can_fire = FALSE if (!Failsafe || (Failsafe.processing_interval > 0 && (Failsafe.lasttick+(Failsafe.processing_interval*5)) < world.time)) new/datum/controller/failsafe() // (re)Start the failsafe. //now do the actual stuff - if (!queue_head || !(iteration % 3)) + if (!skip_ticks) var/checking_runlevel = current_runlevel if(cached_runlevel != checking_runlevel) //resechedule subsystems - var/list/old_subsystems = current_runlevel_subsystems cached_runlevel = checking_runlevel current_runlevel_subsystems = runlevel_sorted_subsystems[cached_runlevel] - //now we'll go through all the subsystems we want to offset and give them a next_fire - for(var/datum/controller/subsystem/SS as anything in current_runlevel_subsystems) - //we only want to offset it if it's new and also behind - if(SS.next_fire > world.time || (SS in old_subsystems)) - continue - SS.next_fire = world.time + world.tick_lag * rand(0, DS2TICKS(min(SS.wait, 2 SECONDS))) + var/stagger = world.time + for(var/I in current_runlevel_subsystems) + var/datum/controller/subsystem/SS = I + if(SS.next_fire <= world.time) + stagger += world.tick_lag * rand(1, 5) + SS.next_fire = stagger subsystems_to_check = current_runlevel_subsystems else subsystems_to_check = tickersubsystems - if (CheckQueue(subsystems_to_check) <= 0) + if (!CheckQueue(subsystems_to_check)) if (!SoftReset(tickersubsystems, runlevel_sorted_subsystems)) log_world("MC: SoftReset() failed, crashing") return @@ -378,7 +373,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new continue if (queue_head) - if (RunQueue() <= 0) + if (!RunQueue()) if (!SoftReset(tickersubsystems, runlevel_sorted_subsystems)) log_world("MC: SoftReset() failed, crashing") return @@ -395,10 +390,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new iteration++ last_run = world.time + if (skip_ticks) + skip_ticks-- src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta) current_ticklimit = TICK_LIMIT_RUNNING - if (processing * sleep_delta <= world.tick_lag) - current_ticklimit -= (TICK_LIMIT_RUNNING * 0.25) //reserve the tail 1/4 of the next tick for the mc if we plan on running next tick sleep(world.tick_lag * (processing * sleep_delta)) @@ -406,8 +401,6 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // This is what decides if something should run. /datum/controller/master/proc/CheckQueue(list/subsystemstocheck) - . = 0 //so the mc knows if we runtimed - //we create our variables outside of the loops to save on overhead var/datum/controller/subsystem/SS var/SS_flags @@ -429,136 +422,139 @@ GLOBAL_REAL(Master, /datum/controller/master) = new if ((SS_flags & (SS_TICKER|SS_KEEP_TIMING)) == SS_KEEP_TIMING && SS.last_fire + (SS.wait * 0.75) > world.time) continue SS.enqueue() - . = 1 + return TRUE // so MC knows if we runtime // Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage /datum/controller/master/proc/RunQueue() - . = 0 - var/datum/controller/subsystem/queue_node - var/queue_node_flags - var/queue_node_priority + var/datum/controller/subsystem/queue_node = queue_head //The subsystem we're running right now + var/queue_node_flags //Cache of queue node flags + var/queue_node_priority //Cache of queue node priority var/queue_node_paused - var/current_tick_budget - var/tick_precentage - var/tick_remaining - var/ran = TRUE //this is right - var/ran_non_ticker = FALSE - var/bg_calc //have we swtiched current_tick_budget to background mode yet? - var/tick_usage + var/current_tick_budget = queue_priority_count + var/tick_precentage //tick % used, used for calculating tick remaining + var/tick_remaining //How much of the tick we've got left over to do stuff + var/ran_non_ticker = FALSE //Whether we've started running non-ticker subsystems yet + var/bg_calc = FALSE //have we swtiched current_tick_budget to background mode yet? + var/tick_usage //How much of a tick we're using in this queue node //keep running while we have stuff to run and we haven't gone over a tick - // this is so subsystems paused eariler can use tick time that later subsystems never used - while (ran && queue_head && TICK_USAGE < TICK_LIMIT_MC) - ran = FALSE - bg_calc = FALSE - current_tick_budget = queue_priority_count - queue_node = queue_head - while (queue_node) - if (ran && TICK_USAGE > TICK_LIMIT_RUNNING) - break - - queue_node_flags = queue_node.flags - queue_node_priority = queue_node.queued_priority - - //super special case, subsystems where we can't make them pause mid way through - //if we can't run them this tick (without going over a tick) - //we bump up their priority and attempt to run them next tick - //(unless we haven't even ran anything this tick, since its unlikely they will ever be able run - // in those cases, so we just let them run) - if (queue_node_flags & SS_NO_TICK_CHECK) - if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_ticker) + //this is so subsystems paused eariler can use tick time that later subsystems never used + while (queue_head && queue_node && TICK_USAGE < TICK_LIMIT_MC) + queue_node_flags = queue_node.flags + queue_node_priority = queue_node.queued_priority + + + if(!(queue_node_flags & SS_TICKER) && skip_ticks) + queue_node = queue_node.queue_next + continue + + //super special case, subsystems where we can't make them pause mid way through + //if we can't run them this tick (without going over a tick) + //we bump up their priority and attempt to run them next tick + //(unless we haven't even ran anything this tick, since its unlikely they will ever be able run + // in those cases, so we just let them run) + + + if (queue_node_flags & SS_NO_TICK_CHECK) + if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_ticker) + if (!(queue_node_flags & SS_BACKGROUND)) queue_node.queued_priority += queue_priority_count * 0.1 queue_priority_count -= queue_node_priority queue_priority_count += queue_node.queued_priority - current_tick_budget -= queue_node_priority - queue_node = queue_node.queue_next - continue + current_tick_budget -= queue_node_priority + queue_node = queue_node.queue_next + continue - if ((queue_node_flags & SS_BACKGROUND) && !bg_calc) - current_tick_budget = queue_priority_count_bg - bg_calc = TRUE + //Checks if we're in background calculation mode yet and sets us to it if we are + if (!bg_calc && (queue_node_flags & SS_BACKGROUND)) + current_tick_budget = queue_priority_count_bg + bg_calc = TRUE - tick_remaining = TICK_LIMIT_RUNNING - TICK_USAGE + tick_remaining = ((bg_calc) ? (TICK_LIMIT_RUNNING_BACKGROUND) : (TICK_LIMIT_RUNNING)) - TICK_USAGE - if (current_tick_budget > 0 && queue_node_priority > 0) - tick_precentage = tick_remaining / (current_tick_budget / queue_node_priority) - else - tick_precentage = tick_remaining + if (tick_remaining < TICK_MIN_RUNTIME) + current_tick_budget -= queue_node_priority + queue_node = queue_node.queue_next + continue - tick_precentage = max(tick_precentage*0.5, tick_precentage-queue_node.tick_overrun) + if (current_tick_budget > 0 && queue_node_priority > 0) + tick_precentage = tick_remaining / (current_tick_budget / queue_node_priority) + else + tick_precentage = tick_remaining - current_ticklimit = round(TICK_USAGE + tick_precentage) + tick_precentage = max(TICK_MIN_RUNTIME, tick_precentage*0.5, tick_precentage-queue_node.tick_overrun) - if (!(queue_node_flags & SS_TICKER)) - ran_non_ticker = TRUE - ran = TRUE + current_ticklimit = round(TICK_USAGE + tick_precentage) - queue_node_paused = (queue_node.state == SS_PAUSED || queue_node.state == SS_PAUSING) - last_type_processed = queue_node + //Check for if we ran a non-ticker ss, used for check if we can start processing SS_NO_TICK_CHECK stuff yet + if(!(queue_node_flags & SS_TICKER)) + ran_non_ticker = TRUE - queue_node.state = SS_RUNNING + queue_node_paused = (queue_node.state == SS_PAUSED || queue_node.state == SS_PAUSING) + last_type_processed = queue_node - tick_usage = TICK_USAGE - var/state = queue_node.ignite(queue_node_paused) - tick_usage = TICK_USAGE - tick_usage + queue_node.state = SS_RUNNING - if (state == SS_RUNNING) - state = SS_IDLE - current_tick_budget -= queue_node_priority + tick_usage = TICK_USAGE + var/state = queue_node.ignite(queue_node_paused) + tick_usage = TICK_USAGE - tick_usage + if(state == SS_RUNNING) + state = SS_IDLE + current_tick_budget -= queue_node_priority - if (tick_usage < 0) - tick_usage = 0 - queue_node.tick_overrun = max(0, MC_AVG_FAST_UP_SLOW_DOWN(queue_node.tick_overrun, tick_usage-tick_precentage)) - queue_node.state = state + if(tick_usage < 0) + tick_usage = 0 + queue_node.tick_overrun = max(0, MC_AVG_FAST_UP_SLOW_DOWN(queue_node.tick_overrun, tick_usage-tick_precentage)) + queue_node.state = state - if (state == SS_PAUSED) - queue_node.paused_ticks++ - queue_node.paused_tick_usage += tick_usage - queue_node = queue_node.queue_next - continue - - queue_node.ticks = MC_AVERAGE(queue_node.ticks, queue_node.paused_ticks) - tick_usage += queue_node.paused_tick_usage - - queue_node.tick_usage = MC_AVERAGE_FAST(queue_node.tick_usage, tick_usage) + if(state == SS_PAUSED) + queue_node.paused_ticks++ + queue_node.paused_tick_usage += tick_usage + queue_node = queue_node.queue_next + continue - queue_node.cost = MC_AVERAGE_FAST(queue_node.cost, TICK_DELTA_TO_MS(tick_usage)) - queue_node.paused_ticks = 0 - queue_node.paused_tick_usage = 0 + queue_node.ticks = MC_AVERAGE(queue_node.ticks, queue_node.paused_ticks) + tick_usage += queue_node.paused_tick_usage - if (queue_node_flags & SS_BACKGROUND) //update our running total - queue_priority_count_bg -= queue_node_priority - else - queue_priority_count -= queue_node_priority + queue_node.tick_usage = MC_AVERAGE_FAST(queue_node.tick_usage, tick_usage) - queue_node.last_fire = world.time - queue_node.times_fired++ + queue_node.cost = MC_AVERAGE_FAST(queue_node.cost, TICK_DELTA_TO_MS(tick_usage)) + queue_node.paused_ticks = 0 + queue_node.paused_tick_usage = 0 - if (queue_node_flags & SS_TICKER) - queue_node.next_fire = world.time + (world.tick_lag * queue_node.wait) - else if (queue_node_flags & SS_POST_FIRE_TIMING) - queue_node.next_fire = world.time + queue_node.wait + (world.tick_lag * (queue_node.tick_overrun/100)) - else if (queue_node_flags & SS_KEEP_TIMING) - queue_node.next_fire += queue_node.wait - else - queue_node.next_fire = queue_node.queued_time + queue_node.wait + (world.tick_lag * (queue_node.tick_overrun/100)) + if (bg_calc) //update our running total + queue_priority_count_bg -= queue_node_priority + else + queue_priority_count -= queue_node_priority + + queue_node.last_fire = world.time + queue_node.times_fired++ + + //Calculate next fire + if (queue_node_flags & SS_TICKER) + queue_node.next_fire = world.time + (world.tick_lag * queue_node.wait) + else if (queue_node_flags & SS_POST_FIRE_TIMING) + queue_node.next_fire = world.time + queue_node.wait + (world.tick_lag * (queue_node.tick_overrun/100)) + else if (queue_node_flags & SS_KEEP_TIMING) + queue_node.next_fire += queue_node.wait + else + queue_node.next_fire = queue_node.queued_time + queue_node.wait + (world.tick_lag * (queue_node.tick_overrun/100)) - queue_node.queued_time = 0 + queue_node.queued_time = 0 - //remove from queue - queue_node.dequeue() + //remove from queue + queue_node.dequeue() - queue_node = queue_node.queue_next + queue_node = queue_node.queue_next - . = 1 + return TRUE // so MC knows if we runtime //resets the queue, and all subsystems, while filtering out the subsystem lists // called if any mc's queue procs runtime or exit improperly. /datum/controller/master/proc/SoftReset(list/ticker_SS, list/runlevel_SS) - . = 0 log_world("MC: SoftReset called, resetting MC queue state.") if (!istype(subsystems) || !istype(ticker_SS) || !istype(runlevel_SS)) log_world("MC: SoftReset: Bad list contents: '[subsystems]' '[ticker_SS]' '[runlevel_SS]'") @@ -595,16 +591,18 @@ GLOBAL_REAL(Master, /datum/controller/master) = new queue_priority_count = 0 queue_priority_count_bg = 0 log_world("MC: SoftReset: Finished.") - . = 1 + return TRUE // so MC knows if we runtime +/// Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick. +/datum/controller/master/proc/laggy_byond_map_update_incoming() + if (!skip_ticks) + skip_ticks = 1 -/datum/controller/master/stat_entry() - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) +/datum/controller/master/stat_entry(msg) + msg = "(TickRate:[Master.processing]) (Iteration:[Master.iteration]) (TickLimit: [round(Master.current_ticklimit, 0.1)])" + return msg - stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))") - stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration])")) /datum/controller/master/StartLoadingMap() //disallow more than one map to load at once, multithreading it will just cause race conditions @@ -632,6 +630,6 @@ GLOBAL_REAL(Master, /datum/controller/master) = new processing = CONFIG_GET(number/mc_tick_rate/high_pop_mc_tick_rate) /datum/controller/master/proc/OnConfigLoad() - for(var/thing in subsystems) + for (var/thing in subsystems) var/datum/controller/subsystem/SS = thing SS.OnConfigLoad() diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index fdb29430632..b1d10349735 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -886,7 +886,7 @@ SUBSYSTEM_DEF(job) /////////////////////////////////// /datum/controller/subsystem/job/proc/get_living_heads() . = list() - for(var/i in GLOB.human_list) + for(var/i in GLOB.joined_player_list) //CC Edit human_list -> joined_player_list var/mob/living/carbon/human/player = i if(player.stat != DEAD && player.mind && (player.mind.assigned_role in GLOB.command_positions)) . |= player.mind @@ -897,7 +897,7 @@ SUBSYSTEM_DEF(job) //////////////////////////// /datum/controller/subsystem/job/proc/get_all_heads() . = list() - for(var/i in GLOB.mob_list) + for(var/i in GLOB.joined_player_list) //CC Edit mob_list -> joined_player_list var/mob/player = i if(player.mind && (player.mind.assigned_role in GLOB.command_positions)) . |= player.mind @@ -907,7 +907,7 @@ SUBSYSTEM_DEF(job) ////////////////////////////////////////////// /datum/controller/subsystem/job/proc/get_living_sec() . = list() - for(var/i in GLOB.human_list) + for(var/i in GLOB.joined_player_list) //CC Edit human_list -> joined_player_list var/mob/living/carbon/human/player = i if(player.stat != DEAD && player.mind && (player.mind.assigned_role in GLOB.security_positions)) . |= player.mind @@ -917,7 +917,7 @@ SUBSYSTEM_DEF(job) //////////////////////////////////////// /datum/controller/subsystem/job/proc/get_all_sec() . = list() - for(var/i in GLOB.human_list) + for(var/i in GLOB.joined_player_list) //CC Edit human_list -> joined_player_list var/mob/living/carbon/human/player = i if(player.mind && (player.mind.assigned_role in GLOB.security_positions)) . |= player.mind diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 12eca8af2df..627e8de048c 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -9,6 +9,7 @@ SUBSYSTEM_DEF(lighting) var/static/list/sources_queue = list() // List of lighting sources queued for update. var/static/list/corners_queue = list() // List of lighting corners queued for update. var/static/list/objects_queue = list() // List of lighting objects queued for update. + var/static/list/current_sources = list() //CC Edit - Updated Lighting from TG processing_flag = PROCESSING_LIGHTING /datum/controller/subsystem/lighting/stat_entry() @@ -34,67 +35,96 @@ SUBSYSTEM_DEF(lighting) /datum/controller/subsystem/lighting/proc/enable_lighting() can_fire = TRUE +//CC Edit Begin - Updated Lighting from TG /datum/controller/subsystem/lighting/fire(resumed, init_tick_checks) MC_SPLIT_TICK_INIT(3) if(!init_tick_checks) MC_SPLIT_TICK - var/list/queue = sources_queue + + if(!resumed) + current_sources = sources_queue + sources_queue = list() + + // UPDATE SOURCE QUEUE var/i = 0 - for (i in 1 to length(queue)) - var/datum/light_source/L = queue[i] + var/list/queue = current_sources + while(i < length(queue)) //we don't use for loop here because i cannot be changed during an iteration + i++ + var/datum/light_source/L = queue[i] L.update_corners() + if(!QDELETED(L)) + L.needs_update = LIGHTING_NO_UPDATE + else + i -= 1 // update_corners() has removed L from the list, move back so we don't overflow or skip the next element - L.needs_update = LIGHTING_NO_UPDATE - + // We unroll TICK_CHECK here so we can clear out the queue to ensure any removals/additions when sleeping don't fuck us if(init_tick_checks) - CHECK_TICK - else if (MC_TICK_CHECK) + if(!TICK_CHECK) + continue + queue.Cut(1, i + 1) + i = 0 + stoplag() + else if(MC_TICK_CHECK) break - if (i) - queue.Cut(1, i+1) + if(i) + queue.Cut(1, i + 1) i = 0 if(!init_tick_checks) MC_SPLIT_TICK + // UPDATE CORNERS QUEUE queue = corners_queue - for (i in 1 to length(queue)) - var/datum/lighting_corner/C = queue[i] + while(i < length(queue)) //we don't use for loop here because i cannot be changed during an iteration + i++ + var/datum/lighting_corner/C = queue[i] + C.needs_update = FALSE //update_objects() can call qdel if the corner is storing no data C.update_objects() - C.needs_update = FALSE + + // We unroll TICK_CHECK here so we can clear out the queue to ensure any removals/additions when sleeping don't fuck us if(init_tick_checks) - CHECK_TICK - else if (MC_TICK_CHECK) + if(!TICK_CHECK) + continue + queue.Cut(1, i + 1) + i = 0 + stoplag() + else if(MC_TICK_CHECK) break - if (i) + if(i) queue.Cut(1, i+1) i = 0 - if(!init_tick_checks) MC_SPLIT_TICK + // UPDATE OBJECTS QUEUE queue = objects_queue - for (i in 1 to length(queue)) - var/atom/movable/lighting_object/O = queue[i] + while(i < length(queue)) //we don't use for loop here because i cannot be changed during an iteration + i++ - if (QDELETED(O)) + var/atom/movable/lighting_object/O = queue[i] + if(QDELETED(O)) continue - O.update() O.needs_update = FALSE + + // We unroll TICK_CHECK here so we can clear out the queue to ensure any removals/additions when sleeping don't fuck us if(init_tick_checks) - CHECK_TICK - else if (MC_TICK_CHECK) + if(!TICK_CHECK) + continue + queue.Cut(1, i + 1) + i = 0 + stoplag() + else if(MC_TICK_CHECK) break - if (i) - queue.Cut(1, i+1) - + if(i) + queue.Cut(1, i + 1) +//CC Edit End - Updated Lighting from TG /datum/controller/subsystem/lighting/Recover() initialized = SSlighting.initialized ..() -#undef LIGHTING_INITIAL_FIRE_DELAY \ No newline at end of file +#undef LIGHTING_INITIAL_FIRE_DELAY diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 72098ebe64d..cb5c7cafed2 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -2,7 +2,7 @@ SUBSYSTEM_DEF(machines) name = "Machines" init_order = INIT_ORDER_MACHINES flags = SS_KEEP_TIMING -// wait = 1 + //wait = 1 var/list/processing = list() var/list/currentrun = list() diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index c5d6dfa1268..8a8dca3b3a0 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -3,7 +3,7 @@ SUBSYSTEM_DEF(processing) name = "Processing" priority = FIRE_PRIORITY_PROCESS - flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT + flags = SS_POST_FIRE_TIMING|SS_NO_INIT wait = 10 var/stat_tag = "P" //Used for logging diff --git a/code/controllers/subsystem/tracks.dm b/code/controllers/subsystem/tracks.dm index bb5d31f0181..2eeeb5f4e08 100644 --- a/code/controllers/subsystem/tracks.dm +++ b/code/controllers/subsystem/tracks.dm @@ -1,8 +1,8 @@ PROCESSING_SUBSYSTEM_DEF(tracks) name = "Tracks" priority = FIRE_PRIORITY_TRACKS - wait = 100 - flags = SS_BACKGROUND + wait = 10 SECONDS + flags = SS_TICKER runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME // Object pooling diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 763e595bd29..bcfbb3ed90c 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -160,7 +160,7 @@ GLOBAL_LIST_EMPTY(created_sound_groups) if(direct) S.channel = channel S.volume = volume - var/atom/thing = parent?.resolve() //Caustic Edit - This was causing 70k+ Runtimes in 2 hours cause Parent here was null somehow? I hope this ? prevents it. + var/atom/thing = parent.resolve() if (!thing) return diff --git a/code/game/objects/items/rogueitems/gems.dm b/code/game/objects/items/rogueitems/gems.dm index 26a49985b17..e86a0a0024e 100644 --- a/code/game/objects/items/rogueitems/gems.dm +++ b/code/game/objects/items/rogueitems/gems.dm @@ -204,7 +204,27 @@ name = "naledic amythortz" desc = "A deep lavender crystal, crackling with magical energy. To a Disciple, it might simply be a keepsake from pilgrimages abroad: but to a Sojourner, it is the leyline to their arcyne-enchanted form of martial combat.
This gemstone can be applied to a yet-unfinished spelltome by those with arcyne potential, in order to recall more spells." -/obj/item/roguegem/random +//CC Edit Begin - Like the Mushrooms, gems should also respect lootdrop spawners for better performance and less strain on the GC. +/obj/effect/spawner/lootdrop/roguegem/random + lootcount = 1 //Its 1 by default but lets make sure to always stay 1. + loot = list(/obj/item/roguegem/ruby = 5, + /obj/item/roguegem/green = 15, + /obj/item/roguegem/blue = 10, + /obj/item/roguegem/yellow = 20, + /obj/item/roguegem/violet = 10, + /obj/item/roguegem/diamond = 5, + /obj/item/riddleofsteel = 1, + /obj/item/rogueore/silver = 3, + /obj/item/roguegem/onyxa = 5, + /obj/item/roguegem/jade = 3, + /obj/item/roguegem/coral = 3, + /obj/item/roguegem/turq = 3, + /obj/item/roguegem/amber = 3, + /obj/item/roguegem/opal = 3, + /obj/item/roguegem/blood_diamond = 1) + fan_out_items = FALSE + +/* /obj/item/roguegem/random name = "random gem" desc = "You shouldn't be seeing this." icon_state = null @@ -228,8 +248,8 @@ /obj/item/roguegem/blood_diamond = 1) var/pickgem = pickweight(newgem) new pickgem(get_turf(src)) - qdel(src) - + qdel(src) */ +//CC Edit End - Performance Improving for the GC /// riddle diff --git a/code/game/objects/items/rogueitems/natural/stones.dm b/code/game/objects/items/rogueitems/natural/stones.dm index 80a6da3e90b..8e0abb58834 100644 --- a/code/game/objects/items/rogueitems/natural/stones.dm +++ b/code/game/objects/items/rogueitems/natural/stones.dm @@ -491,7 +491,7 @@ GLOBAL_LIST_INIT(stone_personality_descs, list( mineralType = /obj/item/reagent_containers/powder/salt /obj/item/natural/rock/gem - mineralType = /obj/item/roguegem/random + mineralType = /obj/effect/spawner/lootdrop/roguegem/random /obj/item/natural/rock/random_ore name = "rock?" diff --git a/code/game/objects/lighting/_base_light.dm b/code/game/objects/lighting/_base_light.dm index b2578ff6c91..72430bf8117 100644 --- a/code/game/objects/lighting/_base_light.dm +++ b/code/game/objects/lighting/_base_light.dm @@ -109,6 +109,7 @@ /obj/machinery/light/Initialize(mapload) . = ..() fog_parter_effect = new fog_parter_effect(get_turf(src), light_outer_range) + update(0) //CC Edit - Turn these fricken lights on. return INITIALIZE_HINT_LATELOAD /obj/machinery/light/LateInitialize() diff --git a/code/game/objects/lighting/_base_roguelight.dm b/code/game/objects/lighting/_base_roguelight.dm index dd0273bd132..4431ca88dd9 100644 --- a/code/game/objects/lighting/_base_roguelight.dm +++ b/code/game/objects/lighting/_base_roguelight.dm @@ -24,6 +24,10 @@ update_icon() if(!roundstart_forbid) seton(TRUE) + //CC Edit Begin - LET THERE BE LIGHT!!! + if(light_system == STATIC_LIGHT) + update_light() + //CC Edit Begin - LET THERE BE LIGHT!!! . = ..() /obj/machinery/light/rogue/weather_trigger(W) diff --git a/code/game/objects/structures/roguetown/rogueflora.dm b/code/game/objects/structures/roguetown/rogueflora.dm index 9e6c631c77a..5f5abd23233 100644 --- a/code/game/objects/structures/roguetown/rogueflora.dm +++ b/code/game/objects/structures/roguetown/rogueflora.dm @@ -815,7 +815,17 @@ static_debris = null mush_animate = FALSE -/obj/structure/flora/rogueshroom/happy/random +//CC Edit Begin - Because holy shit these Hdels. +/obj/effect/spawner/lootdrop/rogueshroom/happy/random + loot = list(/obj/structure/flora/rogueshroom/happy = 249, + /obj/structure/flora/rogueshroom/happy/white = 249, + /obj/structure/flora/rogueshroom/happy/fat = 249, + /obj/structure/flora/rogueshroom/happy/angel = 249, + /obj/structure/flora/rogueshroom/happy/metal = 1, + ) + fan_out_items = FALSE + +/* /obj/structure/flora/rogueshroom/happy/random /obj/structure/flora/rogueshroom/happy/random/Initialize() . = ..() @@ -828,7 +838,8 @@ ) var/mushroom_type = pickweight(mushroom_types) new mushroom_type(loc) - qdel(src) + qdel(src) */ +//CC Edit End - For future reference, loot drops are way more efficient than deleting a whole mushroom object. /obj/structure/flora/rogueshroom/happy/New(loc) ..() diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index bb910c28132..c10b2abcf14 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -101,7 +101,8 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( //We do this here so anything that doesn't want to persist can clear itself var/list/old_comp_lookup = comp_lookup?.Copy() var/list/old_signal_procs = signal_procs?.Copy() - if(!path) //CC Edit: This shouldn't runtime yet here we are... it's already checked above, so the path was nulled sometime between here and there? Logs don't lie. + //CC Edit; The Path returns a value but the value is 2 points, ex. (25, 250), which obviously isn't a turf. It's causing this to freak out. + if(!path) //This doesn't do anything but it'll stay until we can figure out what's causing these errant path's. return var/turf/W = new path(src) diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 61f9260ffd8..6c637645390 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -345,7 +345,7 @@ /turf/closed/mineral/rogue/gem icon_state = "mingold" - mineralType = /obj/item/roguegem/random + mineralType = /obj/effect/spawner/lootdrop/roguegem/random rockType = /obj/item/natural/rock/gem spreadChance = 3 spread = 2 diff --git a/code/modules/roguetown/mapgen/underdark.dm b/code/modules/roguetown/mapgen/underdark.dm index 44ef75664f9..807f7682c41 100644 --- a/code/modules/roguetown/mapgen/underdark.dm +++ b/code/modules/roguetown/mapgen/underdark.dm @@ -13,7 +13,7 @@ clusterCheckFlags = CLUSTER_CHECK_DIFFERENT_ATOMS allowed_turfs = list(/turf/open/floor/rogue/naturalstone) allowed_areas = list(/area/rogue/under/underdark) - spawnableAtoms = list(/obj/structure/flora/rogueshroom/happy/random = 30, + spawnableAtoms = list(/obj/effect/spawner/lootdrop/rogueshroom/happy/random = 30, /obj/structure/flora/mushroomcluster = 20, /obj/structure/flora/tinymushrooms = 20, /obj/structure/roguerock = 25, @@ -27,7 +27,7 @@ excluded_turfs = list(/turf/open/floor/rogue/dirt/road) spawnableAtoms = list(/obj/structure/flora/mushroomcluster = 20, /obj/structure/flora/roguegrass/thorn_bush = 10, - /obj/structure/flora/rogueshroom/happy/random = 40, + /obj/effect/spawner/lootdrop/rogueshroom/happy/random = 40, /obj/structure/flora/rogueshroom = 20, /obj/structure/flora/tinymushrooms = 20, /obj/structure/flora/roguegrass = 30, diff --git a/code/modules/roguetown/roguemachine/questing/questing_components.dm b/code/modules/roguetown/roguemachine/questing/questing_components.dm index 720b6df7748..1f68dd4c6f0 100644 --- a/code/modules/roguetown/roguemachine/questing/questing_components.dm +++ b/code/modules/roguetown/roguemachine/questing/questing_components.dm @@ -16,6 +16,7 @@ if(is_mob) var/mob/M = parent M.add_filter(outline_filter_id, 2, list("type" = "outline", "color" = "#ff0000", "size" = 0.5)) + GLOB.quest_mobs += M //CC Edit for registering mobs to quests so we don't go through a global list RegisterSignal(parent, COMSIG_MOB_DEATH, PROC_REF(on_target_death)) RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_mob_examine)) else diff --git a/code/modules/roguetown/roguemachine/questing/types/__quest.dm b/code/modules/roguetown/roguemachine/questing/types/__quest.dm index 5841eda2584..108acbab8cd 100644 --- a/code/modules/roguetown/roguemachine/questing/types/__quest.dm +++ b/code/modules/roguetown/roguemachine/questing/types/__quest.dm @@ -1,3 +1,8 @@ +//CC Edit Begin +//This list holds all mobs currently associated with active quests. +GLOBAL_LIST_EMPTY(quest_mobs) +//CC Edit End + /datum/quest var/title = "" var/datum/weakref/quest_giver_reference @@ -37,7 +42,7 @@ /datum/quest/Destroy() // Clean up mobs with quest components - for(var/mob/living/M in GLOB.mob_list) + for(var/mob/living/M in GLOB.quest_mobs) var/datum/component/quest_object/Q = M.GetComponent(/datum/component/quest_object) if(Q && Q.quest_ref?.resolve() == src) M.remove_filter("quest_item_outline") diff --git a/code/modules/roguetown/roguemachine/scomm/scomm.dm b/code/modules/roguetown/roguemachine/scomm/scomm.dm index 1d269b7e78b..9e36199190a 100644 --- a/code/modules/roguetown/roguemachine/scomm/scomm.dm +++ b/code/modules/roguetown/roguemachine/scomm/scomm.dm @@ -102,13 +102,15 @@ popup.open(FALSE) /obj/structure/roguemachine/scomm/process() - if(world.time <= next_decree) - return - next_decree = world.time + rand(3 MINUTES, 8 MINUTES) + //CC Edit Begin - Moves this to return earlier if we really don't have any decrees or are muted so we don't check for the time and set a new RANDOM time every process... if(!GLOB.lord_decrees.len) return if(!speaking) return + //CC Edit End + if(world.time <= next_decree) + return + next_decree = world.time + rand(3 MINUTES, 8 MINUTES) say("The [SSticker.rulertype] Decrees: [pick(GLOB.lord_decrees)]", spans = list("info")) /obj/structure/roguemachine/scomm/attack_hand(mob/living/user) diff --git a/code/modules/spells/pantheon/inhumen/matthios.dm b/code/modules/spells/pantheon/inhumen/matthios.dm index f6ee7c36133..65037608a3c 100644 --- a/code/modules/spells/pantheon/inhumen/matthios.dm +++ b/code/modules/spells/pantheon/inhumen/matthios.dm @@ -333,8 +333,8 @@ explosion(get_turf(target), light_impact_range = 1, flame_range = 1, smoke = FALSE) new /obj/item/roguecoin/silver/pile(target.loc) new /obj/item/roguecoin/gold/pile(target.loc) - new /obj/item/roguegem/random(target.loc) - new /obj/item/roguegem/random(target.loc) + new /obj/effect/spawner/lootdrop/roguegem/random(target.loc) + new /obj/effect/spawner/lootdrop/roguegem/random(target.loc) var/list/possible_limbs = list() for(var/zone in list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) diff --git a/code/modules/spells/roguetown/acolyte/necra.dm b/code/modules/spells/roguetown/acolyte/necra.dm index f92704b2750..4a187e8e122 100644 --- a/code/modules/spells/roguetown/acolyte/necra.dm +++ b/code/modules/spells/roguetown/acolyte/necra.dm @@ -124,7 +124,7 @@ var/mob/living/carbon/spirit/capturedsoul = null var/list/souloptions = list() var/list/itemstore = list() - for(var/mob/living/carbon/spirit/S in GLOB.mob_list) + for(var/mob/living/carbon/spirit/S in GLOB.player_list) //CC Edit mob_list -> player_list if(S.summoned) continue if(!S.client) @@ -134,7 +134,7 @@ if(!pickedsoul) to_chat(user, span_warning("I was unable to commune with a soul.")) return - for(var/mob/living/carbon/spirit/P in GLOB.mob_list) + for(var/mob/living/carbon/spirit/P in GLOB.player_list) //CC Edit mob_list -> player_list if(P.livingname == pickedsoul) to_chat(P, "You feel yourself being pulled out of the Underworld.") sleep(2 SECONDS) diff --git a/code/modules/spells/spell_types/wizard/utility/light.dm b/code/modules/spells/spell_types/wizard/utility/light.dm index ed6cf90e7f2..22b959bea1b 100644 --- a/code/modules/spells/spell_types/wizard/utility/light.dm +++ b/code/modules/spells/spell_types/wizard/utility/light.dm @@ -75,7 +75,7 @@ /obj/item/flashlight/flare/light/Initialize() . = ..() - soundloop = new(list(src), FALSE) + soundloop = new(src, FALSE) on = TRUE START_PROCESSING(SSobj, src) diff --git a/code/modules/vampire_neu/objects/scrying.dm b/code/modules/vampire_neu/objects/scrying.dm index 9b5ca96bdeb..458e04bb49b 100644 --- a/code/modules/vampire_neu/objects/scrying.dm +++ b/code/modules/vampire_neu/objects/scrying.dm @@ -100,7 +100,7 @@ to_chat(V, span_boldnotice("A message from [src.real_name]:[msg]")) for(var/datum/mind/D in SSmapping.retainer.death_knights) to_chat(D, span_boldnotice("A message from [src.real_name]:[msg]")) - for(var/mob/dead/observer/rogue/arcaneeye/A in GLOB.mob_list) + for(var/mob/dead/observer/rogue/arcaneeye/A in GLOB.player_list) //CC Edit mob_list -> player_list to_chat(A, span_boldnotice("A message from [src.real_name]:[msg]")) /mob/dead/observer/rogue/arcaneeye/proc/eye_up() diff --git a/modular_causticcove/code/modules/events/adventure/random_loot/random_loot.dm b/modular_causticcove/code/modules/events/adventure/random_loot/random_loot.dm index 58dddb2cc35..c773aab1753 100644 --- a/modular_causticcove/code/modules/events/adventure/random_loot/random_loot.dm +++ b/modular_causticcove/code/modules/events/adventure/random_loot/random_loot.dm @@ -22,5 +22,5 @@ for(var/obj/structure/flora/bush/B in world) if(prob(1)) - new /obj/item/roguegem/random(B) + new /obj/effect/spawner/lootdrop/roguegem/random(B) */ diff --git a/modular_causticcove/code/modules/reformgem/reformportal.dm b/modular_causticcove/code/modules/reformgem/reformportal.dm index 3d969342100..743211046ee 100644 --- a/modular_causticcove/code/modules/reformgem/reformportal.dm +++ b/modular_causticcove/code/modules/reformgem/reformportal.dm @@ -15,7 +15,7 @@ /obj/structure/respawn_portal/Initialize() . = ..() - soundloop = new(list(src), FALSE) + soundloop = new(src, FALSE) soundloop.start() /obj/structure/respawn_portal/attack_ghost(mob/dead/observer/user) //Bit Jank for now but just copied over the Reform Option code... Maybe this will work? If a Ghost escapes the belly somehow lol