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