Skip to content
6 changes: 4 additions & 2 deletions _maps/PentestMaps/BeachRuins/beach_fishing_hut_modular.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,8 @@
/obj/effect/landmark/modular_marker/small{
placement_traits = list("faction_pirate","enemy_pirate");
approved_rooms = list(/datum/map_template/modular_room/pirate/pirate_9x4_v1,/datum/map_template/modular_room/pirate/pirate_9x4_v2);
required_size = "9x4"
required_size = "9x4";
forbidden_room_traits = null
},
/turf/open/floor/modular_guide,
/area/ruin/beach)
Expand Down Expand Up @@ -627,7 +628,8 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"Vt" = (
/obj/effect/landmark/modular_marker/small{
placement_traits = list("noop","faction_pirate","enemy_pirate")
placement_traits = list("noop","faction_pirate","enemy_pirate");
forbidden_room_traits = null
},
/turf/open/floor/modular_guide,
/area/ruin/beach)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
"bd" = (
/obj/effect/landmark/modular_marker{
approved_rooms = list(/datum/map_template/modular_room/pirate/pirate_19x19_v1,/datum/map_template/modular_room/pirate/pirate_19x19_v2);
required_size = "19x19"
required_size = "19x19";
forbidden_room_traits = null
},
/turf/open/floor/modular_guide,
/area/ruin/unpowered)
Expand Down Expand Up @@ -55,6 +56,9 @@
/area/ruin/beach/treasure_cove)
"eI" = (
/obj/effect/overlay/palmtree_r,
/obj/item/toy/plush/pentest/ipcplushie{
name = "SYNAPSE"
},
/turf/open/floor/plating/asteroid/dirt/grass/beach,
/area/ruin/unpowered)
"eM" = (
Expand Down Expand Up @@ -105,7 +109,8 @@
"jV" = (
/obj/effect/landmark/modular_marker{
approved_rooms = list(/datum/map_template/modular_room/pirate/pirate_16x8_v1,/datum/map_template/modular_room/pirate/pirate_16x8_v2);
required_size = "16x8"
required_size = "16x8";
forbidden_room_traits = null
},
/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
Expand Down Expand Up @@ -435,7 +440,7 @@
},
/obj/structure/flora/ausbushes/ppflowers,
/mob/living/basic/mouse/rat,
/turf/open/space/basic,
/turf/open/floor/plating/asteroid/dirt/jungle,
/area/ruin/unpowered)
"SL" = (
/obj/effect/turf_decal/siding/wood{
Expand Down Expand Up @@ -1912,7 +1917,7 @@ oC
oC
oC
jT
DC
Dk
yS
yS
yS
Expand Down Expand Up @@ -2059,7 +2064,7 @@ yS
yS
oC
oC
oC
uF
oC
oC
oC
Expand Down
20 changes: 7 additions & 13 deletions _maps/RandomRuins/SpaceRuins/spacemall_modular.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -1896,8 +1896,7 @@
/area/ruin/space/has_grav/spacemall/maint)
"iT" = (
/obj/effect/landmark/modular_marker/shop{
required_size = "8x5";
placement_traits = list("shop")
required_size = "8x5"
},
/turf/open/floor/modular_guide,
/area/ruin/space/has_grav/spacemall/shop)
Expand Down Expand Up @@ -2019,8 +2018,7 @@
/area/ruin/space/has_grav/spacemall)
"jr" = (
/obj/effect/landmark/modular_marker/shop{
required_size = "8x4";
placement_traits = list("shop")
required_size = "8x4"
},
/turf/open/floor/modular_guide,
/area/ruin/space/has_grav/spacemall/shop2)
Expand Down Expand Up @@ -2840,8 +2838,7 @@
/area/ruin/space/has_grav/spacemall/shop)
"nF" = (
/obj/effect/landmark/modular_marker/shop{
required_size = "6x7";
placement_traits = list("shop")
required_size = "6x7"
},
/turf/open/floor/modular_guide,
/area/ruin/space/has_grav/spacemall/shop2)
Expand Down Expand Up @@ -2991,8 +2988,7 @@
/area/ruin/space/has_grav/spacemall/maint)
"or" = (
/obj/effect/landmark/modular_marker/shop{
required_size = "6x5";
placement_traits = list("shop")
required_size = "6x5"
},
/turf/open/floor/modular_guide,
/area/ruin/space/has_grav/spacemall/shop)
Expand Down Expand Up @@ -5885,7 +5881,8 @@
"CD" = (
/obj/effect/landmark/modular_marker/shop{
required_size = "8x5";
placement_traits = list("shop","noop")
placement_traits = list("noop");
forbidden_room_traits = null
},
/turf/open/floor/modular_guide,
/area/ruin/space/has_grav/spacemall/shop)
Expand Down Expand Up @@ -6235,9 +6232,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/dorms)
"DW" = (
/obj/effect/landmark/modular_marker/shop{
placement_traits = list("shop")
},
/obj/effect/landmark/modular_marker/shop,
/turf/open/floor/modular_guide,
/area/ruin/space/has_grav/spacemall/shop2)
"DZ" = (
Expand Down Expand Up @@ -9228,7 +9223,6 @@
/area/ruin/space/has_grav/spacemall/maint)
"Rl" = (
/obj/effect/landmark/modular_marker/shop{
placement_traits = list("shop");
required_size = "6x5"
},
/turf/open/floor/modular_guide,
Expand Down
4 changes: 4 additions & 0 deletions code/controllers/subsystem/modular_ruins.dm
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,10 @@ SUBSYSTEM_DEF(modular_ruins)
var/start_time = world.timeofday
log_modular_ruins("PROCESSING: Ruin '[ruin_datum.name]' started")

// PENTEST CHANGE - MODULAR RUINS - Reset used rooms list for each new ruin placement instance
// This allows the same room types to appear in different instances of the same ruin type
ruin_datum.used_modular_rooms = list()

// Find all modular markers in this ruin's area
ruin_datum.find_modular_markers()

Expand Down
8 changes: 3 additions & 5 deletions modular_pentest/modules/modular_ruins/_modular_marker.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@

/// Optional: List of room traits that are forbidden (rooms with ANY of these traits will not spawn here)
/// Example: list(MODULAR_ENV_VACUUM) - prevents rooms with vacuum from spawning on breathable planets
var/list/forbidden_room_traits = null
var/list/forbidden_room_traits = list(
MODULAR_NOOP // Exclude NOOP rooms by default, since they have no connections and often cause placement failures
)

/// Whether to pick randomly among compatible rooms or use the highest weighted one
var/random_selection = TRUE
Expand Down Expand Up @@ -217,10 +219,6 @@
required_size = "5x10"
forced_category = MODULAR_ROOM_HALLWAY

/obj/effect/landmark/modular_marker/shop
required_size = "6x6"
forced_category = MODULAR_ROOM_SHOP

/**
* ## Visual Guide Turfs
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
if(GLOB.modular_connections_debug)
log_modular_ruins("MODULAR_CONNECTIONS: Debug logging ENABLED")

// PENTEST CHANGE - MODULAR RUINS - Reset used rooms list for each new ruin placement instance
// This allows the same room types to appear in different instances of the same ruin type
used_modular_rooms = list()

// Find all modular markers in this ruin's area
find_modular_markers()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@
/datum/map_template/ruin/space/pentest/syndicircle
this_ruin_uses_modular_rooms = TRUE

// LANDMARKS

/obj/effect/landmark/modular_marker/proving_grounds
required_size = "14x14"
placement_traits = list(
MODULAR_FACTION_SYNDICATE,
MODULAR_LOOT_MAJOR,
MODULAR_ENEMY_SYNDICATE
)
forbidden_room_traits = null

/obj/effect/landmark/modular_marker/proving_grounds/northeast
name = "Proving Grounds Marker - Northeast"
Expand Down
8 changes: 8 additions & 0 deletions modular_pentest/modules/modular_ruins/ruins/shops.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@

*/

// LANDMARKS

/obj/effect/landmark/modular_marker/shop
required_size = "6x6"
forced_category = MODULAR_ROOM_SHOP

// MAP TEMPLATES

/datum/map_template/modular_room/shop
abstract_type = /datum/map_template/modular_room/shop
room_category = MODULAR_ROOM_SHOP
Expand Down
8 changes: 5 additions & 3 deletions modular_pentest/modules/modular_ruins/ruins/small_rooms.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@

*/

// LANDMARKS

/obj/effect/landmark/modular_marker/mall_bedrooms_2x2
name = "Small Bedroom Marker - 2x2"
required_size = "2x2"
placement_traits = list(
MODULAR_ROOM_BEDROOM
)
forced_category = MODULAR_ROOM_BEDROOM

approved_rooms = list(
/datum/map_template/modular_room/bedroom/bedroom_2x2_v1,
Expand All @@ -30,6 +30,8 @@
/datum/map_template/modular_room/bedroom/bedroom_2x2_v10
)

// MAP TEMPLATES

/datum/map_template/modular_room/bedroom
abstract_type = /datum/map_template/modular_room/bedroom
room_category = MODULAR_ROOM_BEDROOM
Expand Down
Loading