mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
Restricts some more areas from servant warp, and lets admins start the Ark on non-clockcult rounds (#31723)
* Cleans up clockcult code a little * Another thing with servants_active * Now it compiles
This commit is contained in:
committed by
CitadelStationBot
parent
0a32eb3162
commit
37bb75a645
@@ -649,6 +649,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "chapel"
|
||||
ambientsounds = list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg','sound/ambience/ambicha4.ogg')
|
||||
flags_1 = NONE
|
||||
clockwork_warp_allowed = FALSE
|
||||
clockwork_warp_fail = "The consecration here prevents you from warping in."
|
||||
|
||||
/area/chapel/main
|
||||
name = "Chapel"
|
||||
@@ -706,6 +708,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/engine/gravity_generator
|
||||
name = "Gravity Generator Room"
|
||||
icon_state = "grav_gen"
|
||||
clockwork_warp_allowed = FALSE
|
||||
clockwork_warp_fail = "The gravitons generated here could throw off your warp's destination and possibly throw you into deep space."
|
||||
|
||||
/area/engine/secure_construction
|
||||
name = "Secure Construction Area"
|
||||
@@ -1276,10 +1280,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/storage/eva
|
||||
name = "EVA Storage"
|
||||
icon_state = "eva"
|
||||
clockwork_warp_allowed = FALSE
|
||||
|
||||
/area/storage/secure
|
||||
name = "Secure Storage"
|
||||
icon_state = "storage"
|
||||
clockwork_warp_allowed = FALSE
|
||||
|
||||
/area/storage/emergency/starboard
|
||||
name = "Starboard Emergency Storage"
|
||||
@@ -1442,6 +1448,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
// Telecommunications Satellite
|
||||
|
||||
/area/tcommsat
|
||||
clockwork_warp_allowed = FALSE
|
||||
clockwork_warp_fail = "For safety reasons, warping here is disallowed; the radio and bluespace noise could cause catastrophic results."
|
||||
ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg')
|
||||
|
||||
/area/tcommsat/entrance
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/area/ai_monitored
|
||||
name = "AI Monitored Area"
|
||||
clockwork_warp_allowed = FALSE
|
||||
var/list/obj/machinery/camera/motioncameras = list()
|
||||
var/list/motionTargets = list()
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
var/valid_territory = TRUE // If it's a valid territory for gangs to claim
|
||||
var/blob_allowed = TRUE // Does it count for blobs score? By default, all areas count.
|
||||
var/clockwork_warp_allowed = TRUE // Can servants warp into this area from Reebe?
|
||||
var/clockwork_warp_fail = "The structure there is too dense for warping to pierce. (This is normal in high-security areas.)"
|
||||
|
||||
var/eject = null
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
GLOBAL_VAR_INIT(servants_active, FALSE) //This var controls whether or not a lot of the cult's structures work or not
|
||||
|
||||
/*
|
||||
|
||||
CLOCKWORK CULT: Based off of the failed pull requests from /vg/
|
||||
@@ -143,11 +145,7 @@ Credit where due:
|
||||
equip_servant(L)
|
||||
add_servant_of_ratvar(L, TRUE)
|
||||
var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.ark_of_the_clockwork_justiciar //that's a mouthful
|
||||
G.initial_activation_delay = ark_time * 60
|
||||
G.seconds_until_activation = ark_time * 60 //60 seconds in a minute * number of minutes
|
||||
for(var/obj/item/clockwork/construct_chassis/cogscarab/C in GLOB.all_clockwork_objects)
|
||||
C.infinite_resources = FALSE
|
||||
SSshuttle.registerHostileEnvironment(GLOB.ark_of_the_clockwork_justiciar)
|
||||
G.final_countdown(ark_time)
|
||||
..()
|
||||
return 1
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
/obj/item/clockwork/construct_chassis/cogscarab/Initialize()
|
||||
. = ..()
|
||||
if(istype(SSticker.mode, /datum/game_mode/clockwork_cult))
|
||||
if(GLOB.servants_active)
|
||||
infinite_resources = FALSE //For any that are somehow spawned in late
|
||||
|
||||
/obj/item/clockwork/construct_chassis/cogscarab/pre_spawn()
|
||||
|
||||
@@ -34,6 +34,16 @@
|
||||
GLOB.ark_of_the_clockwork_justiciar = src
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/final_countdown(ark_time)
|
||||
if(!ark_time)
|
||||
ark_time = 30 //minutes
|
||||
initial_activation_delay = ark_time * 60
|
||||
seconds_until_activation = ark_time * 60 //60 seconds in a minute * number of minutes
|
||||
for(var/obj/item/clockwork/construct_chassis/cogscarab/C in GLOB.all_clockwork_objects)
|
||||
C.infinite_resources = FALSE
|
||||
GLOB.servants_active = TRUE
|
||||
SSshuttle.registerHostileEnvironment(src)
|
||||
|
||||
/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/cry_havoc()
|
||||
visible_message("<span class='boldwarning'>[src] shudders and roars to life, its parts beginning to whirr and screech!</span>")
|
||||
hierophant_message("<span class='bold large_brass'>The Ark is activating! Get back to the base!</span>")
|
||||
@@ -255,6 +265,20 @@
|
||||
T.ratvar_act(dist)
|
||||
CHECK_TICK
|
||||
|
||||
/obj/structure/destructible/clockwork/massive/celestial_gateway/attack_ghost(mob/user)
|
||||
if(!user.client || !user.client.holder)
|
||||
return
|
||||
if(GLOB.servants_active)
|
||||
to_chat(user, "<span class='danger'>The Ark is already counting down.</span>")
|
||||
return
|
||||
if(alert(user, "Activate the Ark's countdown?", name, "Yes", "No") == "Yes")
|
||||
if(alert(user, "REALLY activate the Ark's countdown?", name, "Yes", "No") == "Yes")
|
||||
if(alert(user, "You're REALLY SURE? This cannot be undone.", name, "Yes - Activate the Ark", "No") == "Yes - Activate the Ark")
|
||||
message_admins("<span class='danger'>Admin [key_name_admin(user)] started the Ark's countdown!</span>")
|
||||
to_chat(user, "<span class='userdanger'>The gamemode is now being treated as clockwork cult, and the Ark is counting down from 30 \
|
||||
minutes. You will need to create servant players yourself.</span>")
|
||||
final_countdown(35)
|
||||
|
||||
|
||||
|
||||
//the actual appearance of the Ark of the Clockwork Justicar; an object so the edges of the gate can be clicked through.
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
/datum/action/innate/servant_warp/Activate()
|
||||
if(QDELETED(target) || !(ishuman(owner) || iscyborg(owner)) || !owner.canUseTopic(target) || warping)
|
||||
return
|
||||
if(!istype(SSticker.mode, /datum/game_mode/clockwork_cult)) //No leaving unless there's servants from the get-go
|
||||
if(!GLOB.servants_active) //No leaving unless there's servants from the get-go
|
||||
return
|
||||
var/mob/living/carbon/human/user = owner
|
||||
var/mob/camera/aiEye/remote/remote_eye = user.remote_control
|
||||
@@ -296,8 +296,8 @@
|
||||
to_chat(user, "<span class='sevtug_small'>[prob(1) ? "Servant cannot into space." : "You can't teleport into space."]</span>")
|
||||
return
|
||||
var/area/AR = get_area(T)
|
||||
if(istype(AR, /area/ai_monitored))
|
||||
to_chat(user, "<span class='sevtug_small'>The structure there is too dense for [src] to pierce. (This is normal in high-security areas.)</span>")
|
||||
if(!AR.clockwork_warp_allowed)
|
||||
to_chat(user, "<span class='sevtug_small'>[AR.clockwork_warp_fail]</span>")
|
||||
return
|
||||
if(alert(user, "Are you sure you want to warp to [AR]?", target.name, "Warp", "Cancel") == "Cancel" || QDELETED(R) || !user.canUseTopic(R))
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user