From 388a7579b97240a82647e658028dafdb29cb7bbe Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 12 Nov 2019 01:49:36 +0100 Subject: [PATCH] A few minor clock cult improvements. --- code/game/gamemodes/clock_cult/clock_cult.dm | 3 +++ .../clockcult/clock_effects/clock_sigils.dm | 12 +++++++++++- .../clockcult/clock_scriptures/scripture_drivers.dm | 4 ++-- .../clockcult/clock_structures/_trap_object.dm | 9 +++++++++ .../clockcult/clock_structures/ocular_warden.dm | 4 +--- .../trap_triggers/pressure_sensor.dm | 10 +--------- 6 files changed, 27 insertions(+), 15 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 51a34f4194..a2a01fe6bd 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -167,6 +167,7 @@ Credit where due: number_players -= 30 starter_servants += round(number_players / 10) starter_servants = min(starter_servants, 8) //max 8 servants (that sould only happen with a ton of players) + GLOB.clockwork_vitality += 60 * starter_servants //Add some starter vitality based on while(starter_servants) var/datum/mind/servant = antag_pick(antag_candidates) servants_to_serve += servant @@ -342,6 +343,8 @@ Credit where due: or splashed onto metal sheets to make brass. This chemical can be found in minimal quantities by grinding brass sheets.\
  • Brass Flasks:Intended to store Zelus Oil in, but can also be used as fragile single use throwing weapons in a pinch! \ These are crafted with a single sheet of brass and fit in the Clockwork Cuirass' suit storage.\ +
    \ +
  • Extra Vitality Matrix: You start your quest with some spare Vitality charge to help recover from any initial foul up. \ Good luck!" /obj/item/paper/servant_primer/Initialize() diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm index 8000be87e6..0a3232e3a7 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm @@ -147,6 +147,16 @@ if(iscarbon(L)) var/mob/living/carbon/M = L M.uncuff() + var/brutedamage = L.getBruteLoss() + var/burndamage = L.getFireLoss() + if(brutedamage || burndamage) + var/efficiency = 0.75 + var/vitality_cost = FLOOR((brutedamage + burndamage * efficienty) / 10, 1) + if(GLOB.clockwork_vitality < vitality_cost) + efficiency = efficienty * round(GLOB.clockwork_vitality / vitality_cost, 0.1) + L.adjustBruteLoss(-(brutedamage * efficiency)) + L.adjustFireLoss(-(burndamage * efficiency)) + GLOB.clockwork_vitality = min(GLOB.clockwork_vitality - vitality_cost, 0) L.Knockdown(50) //Completely defenseless for five seconds - mainly to give them time to read over the information they've just been presented with if(iscarbon(L)) var/mob/living/carbon/C = L @@ -262,7 +272,7 @@ clockwork_desc = "A sigil that will drain non-Servants that remain on it. Servants that remain on it will be healed if it has any vitality drained." icon_state = "sigilvitality" layer = SIGIL_LAYER - alpha = 75 + alpha = 125 color = "#123456" affects_servants = TRUE stat_affected = DEAD diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm index 82c1291433..9009283743 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm @@ -80,8 +80,8 @@ power_cost = 125 whispered = TRUE object_path = /obj/effect/clockwork/sigil/submission - creator_message = "A luminous sigil appears below you. Any non-Servants to cross it will be converted after 8 seconds if they do not move." - usage_tip = "This is the primary conversion method, though it will not penetrate mindshield implants." + creator_message = "A luminous sigil appears below you. Any non-Servants to cross it will be converted after 8 seconds if they do not move and are healed of most of their traumas at a vitality matrix cost." + usage_tip = "This is the primary conversion method, though it will not penetrate mindshield implants. Convertees " tier = SCRIPTURE_DRIVER one_per_tile = TRUE primary_component = HIEROPHANT_ANSIBLE diff --git a/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm b/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm index 00a3406da1..491f1d24b3 100644 --- a/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm +++ b/code/modules/antagonists/clockcult/clock_structures/_trap_object.dm @@ -71,6 +71,7 @@ return TRUE /obj/structure/destructible/clockwork/trap/proc/activate() + return //These objects send signals to normal traps to activate /obj/structure/destructible/clockwork/trap/trigger @@ -79,6 +80,14 @@ break_message = "The trigger breaks apart!" density = FALSE +/obj/structure/destructible/clockwork/trap/trigger/Initialize() + . = ..() + for(var/obj/structure/destructible/clockwork/trap/T in get_turf(src)) + if(!istype(T, /obj/structure/destructible/clockwork/trap/trigger)) + wired_to += T + T.wired_to += src + to_chat(usr, "[src] automatically links with [T] beneath it.") + /obj/structure/destructible/clockwork/trap/trigger/activate() for(var/obj/structure/destructible/clockwork/trap/T in wired_to) if(istype(T, /obj/structure/destructible/clockwork/trap/trigger)) //Triggers don't go off multiple times diff --git a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm index 7afd9e7dbc..35c1ea7bdd 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm @@ -110,9 +110,7 @@ if(!(BI.resistance_flags & ON_FIRE)) BI.fire_act() continue - if(is_servant_of_ratvar(L) || (HAS_TRAIT(L, TRAIT_BLIND)) || L.anti_magic_check(TRUE, TRUE)) - continue - if(L.stat || L.lying) + if(is_servant_of_ratvar(L) || (HAS_TRAIT(L, TRAIT_BLIND)) || L.anti_magic_check(TRUE, TRUE) || L.incapacitated(TRUE)) continue if (iscarbon(L)) var/mob/living/carbon/c = L diff --git a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/pressure_sensor.dm b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/pressure_sensor.dm index 94f0ba7112..af29bc9b31 100644 --- a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/pressure_sensor.dm +++ b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/pressure_sensor.dm @@ -7,18 +7,10 @@ icon_state = "pressure_sensor" alpha = 50 -/obj/structure/destructible/clockwork/trap/trigger/Initialize() - . = ..() - for(var/obj/structure/destructible/clockwork/trap/T in get_turf(src)) - if(!istype(T, /obj/structure/destructible/clockwork/trap/trigger)) - wired_to += T - T.wired_to += src - to_chat(usr, "[src] automatically links with [T] beneath it.") - /obj/structure/destructible/clockwork/trap/trigger/pressure_sensor/Crossed(atom/movable/AM) if(isliving(AM) && !is_servant_of_ratvar(AM)) var/mob/living/L = AM - if(L.stat || L.m_intent == MOVE_INTENT_WALK || L.lying) + if(L.stat || L.m_intent == MOVE_INTENT_WALK || L.movement_type & (FLYING|FLOATING)) return audible_message("*click*") playsound(src, 'sound/items/screwdriver2.ogg', 50, TRUE)