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 1/4] 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) From 0b7437359ae52525751e14300b5252dab94dfd4c Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 12 Nov 2019 01:57:33 +0100 Subject: [PATCH 2/4] Dynamic. --- .../dynamic/dynamic_rulesets_roundstart.dm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 6a9aefa996..abca269eeb 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -126,7 +126,7 @@ /datum/dynamic_ruleset/roundstart/changeling/execute() var/team_mode = FALSE - if(prob(team_mode_probability)) + if(prob(team_mode_probability)) team_mode = TRUE var/list/team_objectives = subtypesof(/datum/objective/changeling_team_objective) var/list/possible_team_objectives = list() @@ -174,14 +174,14 @@ /datum/dynamic_ruleset/roundstart/wizard/pre_execute() if(GLOB.wizardstart.len == 0) return FALSE - + var/mob/M = pick(candidates) if (M) candidates -= M assigned += M.mind M.mind.assigned_role = ROLE_WIZARD M.mind.special_role = ROLE_WIZARD - + return TRUE /datum/dynamic_ruleset/roundstart/wizard/execute() @@ -189,7 +189,7 @@ M.current.forceMove(pick(GLOB.wizardstart)) M.add_antag_datum(new antag_datum()) return TRUE - + ////////////////////////////////////////////// // // // BLOOD CULT // @@ -238,7 +238,7 @@ var/datum/antagonist/cult/new_cultist = new antag_datum() new_cultist.cult_team = main_cult new_cultist.give_equipment = TRUE - M.add_antag_datum(new_cultist) + M.add_antag_datum(new_cultist) main_cult.setup_objectives() return TRUE @@ -390,7 +390,7 @@ SSshuttle.registerHostileEnvironment(src) return TRUE - + /datum/dynamic_ruleset/roundstart/delayed/revs/rule_process() if(check_rev_victory()) finished = 1 @@ -492,6 +492,7 @@ number_players -= 30 starter_servants += round(number_players / 10) starter_servants = min(starter_servants, 8) + GLOB.clockwork_vitality += 50 * starter_servants //some starter Vitality to help recover from initial fuck ups for (var/i in 1 to starter_servants) var/mob/servant = pick(candidates) candidates -= servant @@ -605,7 +606,7 @@ high_population_requirement = 101 var/devil_limit = 4 // Hard limit on devils if scaling is turned off -/datum/dynamic_ruleset/roundstart/devil/pre_execute() +/datum/dynamic_ruleset/roundstart/devil/pre_execute() var/tsc = CONFIG_GET(number/traitor_scaling_coeff) var/num_devils = 1 From a18bcd05d7d7a20eca6a6d10081fdaf8ababd476 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 12 Nov 2019 02:38:45 +0100 Subject: [PATCH 3/4] makes it compile. --- code/game/gamemodes/clock_cult/clock_cult.dm | 4 +--- .../antagonists/clockcult/clock_effects/clock_sigils.dm | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index a2a01fe6bd..76e6268977 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -167,7 +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 + GLOB.clockwork_vitality += 50 * starter_servants //some starter Vitality to help recover from initial fuck ups while(starter_servants) var/datum/mind/servant = antag_pick(antag_candidates) servants_to_serve += servant @@ -343,8 +343,6 @@ 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 0a3232e3a7..1866a93246 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm @@ -151,9 +151,9 @@ var/burndamage = L.getFireLoss() if(brutedamage || burndamage) var/efficiency = 0.75 - var/vitality_cost = FLOOR((brutedamage + burndamage * efficienty) / 10, 1) + var/vitality_cost = FLOOR((brutedamage + burndamage * efficiency) / 10, 1) if(GLOB.clockwork_vitality < vitality_cost) - efficiency = efficienty * round(GLOB.clockwork_vitality / vitality_cost, 0.1) + efficiency = efficiency * 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) From 2b8b8882fb440217684232d390522ed8cb661eda Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 12 Nov 2019 15:49:20 +0100 Subject: [PATCH 4/4] You are actually rifght, that's bad. --- .../antagonists/clockcult/clock_effects/clock_sigils.dm | 9 ++------- .../clockcult/clock_scriptures/scripture_drivers.dm | 4 ++-- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm index 1866a93246..b5a218131b 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm @@ -150,13 +150,8 @@ var/brutedamage = L.getBruteLoss() var/burndamage = L.getFireLoss() if(brutedamage || burndamage) - var/efficiency = 0.75 - var/vitality_cost = FLOOR((brutedamage + burndamage * efficiency) / 10, 1) - if(GLOB.clockwork_vitality < vitality_cost) - efficiency = efficiency * 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.adjustBruteLoss(-(brutedamage * 0.25)) + L.adjustFireLoss(-(burndamage * 0.25)) 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 diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm index 9009283743..4ab481cfe2 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 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 " + creator_message = "A luminous sigil appears below you. Any non-Servants to cross it will be converted and healed of some of their wounds after 8 seconds if they do not move." + usage_tip = "This is the primary conversion method, though it will not penetrate mindshield implants." tier = SCRIPTURE_DRIVER one_per_tile = TRUE primary_component = HIEROPHANT_ANSIBLE