Merge pull request #14766 from Linzolle/cultfix

Fix cult area shenanigans, cult can do stuff in maint again.
This commit is contained in:
silicons
2021-06-09 11:22:26 -07:00
committed by GitHub
13 changed files with 23 additions and 27 deletions
+2 -2
View File
@@ -56,8 +56,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define UNUSED_RESERVATION_TURF_1 (1<<1)
/// If a turf can be made dirty at roundstart. This is also used in areas.
#define CAN_BE_DIRTY_1 (1<<2)
/// If blood cultists can draw runes or build structures on this turf
#define CULT_PERMITTED_1 (1<<3)
/// Blocks lava rivers being generated on the turf
#define NO_LAVA_GEN_1 (1<<6)
/// Blocks ruins spawning on the turf
@@ -92,6 +90,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define ABDUCTOR_PROOF (1<<11)
/// If an area should be hidden from power consoles, power/atmosphere alerts, etc.
#define NO_ALERTS (1<<12)
/// If blood cultists can draw runes or build structures on this AREA.
#define CULT_PERMITTED (1<<13)
/*
These defines are used specifically with the atom/pass_flags bitmask
+1 -1
View File
@@ -15,7 +15,7 @@ GLOBAL_LIST_INIT(bitfields, list(
"ABDUCTOR_PROOF" = ABDUCTOR_PROOF,
"BLOBS_ALLOWED" = BLOBS_ALLOWED,
"BLOCK_SUICIDE" = BLOCK_SUICIDE,
// "CULT_PERMITTED" = CULT_PERMITTED,
"CULT_PERMITTED" = CULT_PERMITTED,
"FLORA_ALLOWED" = FLORA_ALLOWED,
"HIDDEN_AREA" = HIDDEN_AREA,
"MEGAFAUNA_SPAWN_ALLOWED" = MEGAFAUNA_SPAWN_ALLOWED,
+10 -13
View File
@@ -209,7 +209,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Generic Maintenance"
// ambience_index = AMBIENCE_MAINT
ambientsounds = MAINTENANCE
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
// airlock_wires = /datum/wires/airlock/maint
sound_environment = SOUND_AREA_TUNNEL_ENCLOSED
@@ -294,7 +294,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/maintenance/department/science/xenobiology
name = "Xenobiology Maintenance"
icon_state = "xenomaint"
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE | CULT_PERMITTED
//Maintenance - Generic
@@ -598,11 +598,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/commons
name = "Crew Quarters"
sound_environment = SOUND_AREA_STANDARD_STATION
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/commons/dorms
name = "Dormitories"
icon_state = "dorms"
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA
/area/commons/dorms/barracks
name = "Sleep Barracks"
@@ -899,7 +899,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
// mood_bonus = 5
// mood_message = "<span class='nicegreen'>I love being in the library!</span>\n"
// mood_trait = TRAIT_INTROVERT
flags_1 = CULT_PERMITTED_1
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
sound_environment = SOUND_AREA_LARGE_SOFTFLOOR
/area/service/library/lounge
@@ -926,7 +926,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/service/library/abandoned
name = "Abandoned Library"
icon_state = "abandoned_library"
flags_1 = CULT_PERMITTED_1
nightshift_public_area = NIGHTSHIFT_AREA_NONE
/area/service/chapel
@@ -973,8 +972,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/service/janitor
name = "Custodial Closet"
icon_state = "janitor"
flags_1 = CULT_PERMITTED_1
sound_environment = SOUND_AREA_SMALL_ENCLOSED
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/service/janitor/aux
name = "Auxiliary Custodial Closet"
@@ -1027,7 +1026,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/atmos
name = "Atmospherics"
icon_state = "atmos"
flags_1 = CULT_PERMITTED_1
/area/engineering/atmos/upper
name = "Upper Atmospherics"
@@ -1035,7 +1033,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/atmospherics_engine
name = "Atmospherics Engine"
icon_state = "atmos_engine"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/engineering/lobby
name = "Engineering Lobby"
@@ -1044,7 +1042,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/supermatter
name = "Supermatter Engine"
icon_state = "engine_sm"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/engineering/break_room
@@ -1084,7 +1082,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/storage/tcomms
name = "Telecomms Storage"
icon_state = "tcom"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
clockwork_warp_allowed = FALSE
//Engineering - Construction
@@ -1314,7 +1312,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/medical/virology
name = "Virology"
icon_state = "virology"
flags_1 = CULT_PERMITTED_1
/area/medical/morgue
name = "Morgue"
@@ -1608,7 +1605,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/science/test_area
name = "Toxins Test Area"
icon_state = "tox_test"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/science/mixing
name = "Toxins Mixing Lab"
@@ -1617,7 +1614,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/science/mixing/chamber
name = "Toxins Mixing Chamber"
icon_state = "tox_mix_chamber"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/science/misc_lab
name = "Testing Lab"
+1 -1
View File
@@ -13,7 +13,7 @@
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
invisibility = INVISIBILITY_LIGHTING
var/area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA
var/area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
var/fire = null
///Whether there is an atmos alarm in this area
+1 -1
View File
@@ -11,7 +11,7 @@
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
requires_power = FALSE
has_gravity = STANDARD_GRAVITY
area_flags = VALID_TERRITORY | UNIQUE_AREA | NOTELEPORT
area_flags = UNIQUE_AREA | NOTELEPORT
flags_1 = NONE
/area/centcom/control
-1
View File
@@ -3,7 +3,6 @@
icon_state = "Holodeck"
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
flags_1 = NONE
area_flags = VALID_TERRITORY | UNIQUE_AREA
sound_environment = SOUND_ENVIRONMENT_PADDED_CELL
var/obj/machinery/computer/holodeck/linked
+2 -2
View File
@@ -157,10 +157,10 @@
/area/shuttle/escape
name = "Emergency Shuttle"
area_flags = BLOBS_ALLOWED
area_flags = BLOBS_ALLOWED | CULT_PERMITTED
// area_limited_icon_smoothing = /area/shuttle/escape
canSmoothWithAreas = /area/shuttle/escape
flags_1 = CAN_BE_DIRTY_1 // | CULT_PERMITTED_1
flags_1 = CAN_BE_DIRTY_1
/area/shuttle/escape/backup
name = "Backup Emergency Shuttle"
@@ -593,7 +593,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \
return
var/turf/T = get_turf(user) //we may have moved. adjust as needed...
var/area/A = get_area(user)
if((!is_station_level(T.z) && !is_mining_level(T.z)) || (A && !(A.flags_1 & CULT_PERMITTED_1)))
if((!is_station_level(T.z) && !is_mining_level(T.z)) || !(A?.area_flags & CULT_PERMITTED))
to_chat(user, "<span class='warning'>The veil is not weak enough here.</span>")
return FALSE
return ..()
@@ -25,7 +25,7 @@
/datum/clockwork_scripture/create_object/stargazer/check_special_requirements()
var/area/A = get_area(invoker)
var/turf/T = get_turf(invoker)
if(!is_station_level(invoker.z) || isspaceturf(T) || !(A.area_flags & VALID_TERRITORY))
if(!is_station_level(invoker.z) || isspaceturf(T) || !(A?.area_flags & CULT_PERMITTED))
to_chat(invoker, "<span class='danger'>Stargazers can't be built off-station.</span>")
return
return ..()
@@ -34,7 +34,7 @@
return FALSE
var/area/A = get_area(invoker)
var/turf/T = get_turf(invoker)
if(!is_station_level(T.z) || isspaceturf(T) || !(A.area_flags & VALID_TERRITORY) || isshuttleturf(T))
if(!is_station_level(T.z) || isspaceturf(T) || !(A?.area_flags & CULT_PERMITTED) || isshuttleturf(T))
to_chat(invoker, "<span class='warning'>You must be on the station to activate the Ark!</span>")
return FALSE
if(GLOB.clockwork_gateway_activated)
@@ -52,7 +52,7 @@
break
if(has_starlight && anchored)
var/area/A = get_area(src)
if(A.outdoors || A.map_name == "Space" || !(A.area_flags & VALID_TERRITORY))
if(A.outdoors || A.map_name == "Space" || !(A?.area_flags & CULT_PERMITTED))
has_starlight = FALSE
if(old_status != has_starlight)
if(has_starlight)
+1 -1
View File
@@ -419,7 +419,7 @@
var/sanity = 0
while(summon_spots.len < SUMMON_POSSIBILITIES && sanity < 100)
var/area/summon = pick(GLOB.sortedAreas - summon_spots)
if(summon && is_station_level(summon.z) && !(summon.area_flags & VALID_TERRITORY))
if(summon && is_station_level(summon.z) && (summon.area_flags & VALID_TERRITORY))
summon_spots += summon
sanity++
update_explanation_text()
+1 -1
View File
@@ -148,7 +148,7 @@ This file contains the cult dagger and rune list code
to_chat(user, "<span class='cult'>There is already a rune here.</span>")
return FALSE
var/area/A = get_area(T)
if((!is_station_level(T.z) && !is_mining_level(T.z)) || !(A?.area_flags & VALID_TERRITORY))
if((!is_station_level(T.z) && !is_mining_level(T.z)) || !(A?.area_flags & CULT_PERMITTED))
to_chat(user, "<span class='warning'>The veil is not weak enough here.</span>")
return FALSE
return TRUE