From 0187b8827847a468f9b86c1cfb6e67605a0521a6 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Tue, 26 Nov 2019 15:40:31 -0700
Subject: [PATCH 01/11] Update scripture_applications.dm
---
.../scripture_applications.dm | 37 +++++++------------
1 file changed, 13 insertions(+), 24 deletions(-)
diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
index 3d467350ff..12fad2b7e0 100644
--- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
+++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
@@ -87,9 +87,18 @@
object_path = /obj/item/clockwork/construct_chassis/clockwork_marauder
construct_type = /mob/living/simple_animal/hostile/clockwork/marauder
combat_construct = TRUE
- var/static/recent_marauders = 0
- var/static/time_since_last_marauder = 0
- var/static/scaled_recital_time = 0
+ var/static/last_marauder = 0
+
+/datum/clockwork_scripture/create_object/construct/clockwork_marauder/post_recital()
+ last_marauder = world.time
+ return ..()
+
+/datum/clockwork_scripture/create_object/construct/clockwork_marauder/pre_recital()
+ if(!is_reebe(invoker.z) && (world.time < (last_marauder + CONFIG_GET(number/marauder_delay_non_reebe))))
+ to_chat(invoker, "The hierophant network is still strained from the last summoning of a marauder on a plane without the strong energy connection of Reebe to support it. \
+ You must wait another [DisplayTimeText((last_marauder + CONFIG_GET(number/marauder_delay_non_reebe)) - world.time, TRUE)]!")
+ return FALSE
+ return ..()
/datum/clockwork_scripture/create_object/construct/clockwork_marauder/update_construct_limit()
var/human_servants = 0
@@ -98,27 +107,7 @@
var/mob/living/L = M.current
if(ishuman(L) && L.stat != DEAD)
human_servants++
- construct_limit = round(CLAMP((human_servants / 4), 1, 3)) - recent_marauders //1 per 4 human servants, maximum of 3, reduced by recent marauder creation
- if(recent_marauders)
- to_chat(invoker, "The Hierophant Network is depleted by a summoning in the last [DisplayTimeText(MARAUDER_SCRIPTURE_SCALING_THRESHOLD, TRUE)] - limiting the number of available marauders by [recent_marauders]!")
-
-/datum/clockwork_scripture/create_object/construct/clockwork_marauder/pre_recital()
- channel_time = initial(channel_time)
- if(recent_marauders)
- scaled_recital_time = min(recent_marauders * MARAUDER_SCRIPTURE_SCALING_TIME, MARAUDER_SCRIPTURE_SCALING_MAX)
- to_chat(invoker, "The Hierophant Network is under strain from repeated summoning, making this scripture [DisplayTimeText(scaled_recital_time)] slower!")
- channel_time += scaled_recital_time
- return TRUE
-
-/datum/clockwork_scripture/create_object/construct/clockwork_marauder/scripture_effects()
- . = ..()
- recent_marauders++
- addtimer(CALLBACK(GLOBAL_PROC, .proc/marauder_reset),MARAUDER_SCRIPTURE_SCALING_THRESHOLD)
-
-/proc/marauder_reset()
- var/datum/clockwork_scripture/create_object/construct/clockwork_marauder/CM = new()
- CM.recent_marauders--
- qdel(CM)
+ construct_limit = round(CLAMP((human_servants / 4), 1, 3)) //1 per 4 human servants, maximum of 3
//Summon Neovgre: Summon a very powerful combat mech that explodes when destroyed for massive damage.
/datum/clockwork_scripture/create_object/summon_arbiter
From cf141c3a927fc728b395ab3c042b0f903a1d24c5 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Tue, 26 Nov 2019 15:41:32 -0700
Subject: [PATCH 02/11] Update game_options.dm
---
code/controllers/configuration/entries/game_options.dm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index fdddbda344..ee46842743 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -379,3 +379,7 @@
/datum/config_entry/number/auto_transfer_delay
config_entry_value = 72000
min_val = 0
+
+/datum/config_entry/number/marauder_delay_non_reebe
+ config_entry_value = 1800
+ min_val = 0
From 2f58e4527a9279376d5cf9989333f64c93c65938 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Tue, 26 Nov 2019 15:47:04 -0700
Subject: [PATCH 03/11] Update clockwork_marauder.dm
---
.../clockcult/clock_mobs/clockwork_marauder.dm | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
index 42ca9e07e2..6c2a7b5f71 100644
--- a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
+++ b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
@@ -1,5 +1,6 @@
#define MARAUDER_SLOWDOWN_PERCENTAGE 0.40 //Below this percentage of health, marauders will become slower
#define MARAUDER_SHIELD_REGEN_TIME 200 //In deciseconds, how long it takes for shields to regenerate after breaking
+#define MARAUDER_SPACE_DAMAGE 4 //amount of damage taking per Life() tick from space.
//Clockwork marauder: A well-rounded frontline construct. Only one can exist for every two human servants.
/mob/living/simple_animal/hostile/clockwork/marauder
@@ -20,12 +21,14 @@
movement_type = FLYING
a_intent = INTENT_HARM
loot = list(/obj/item/clockwork/component/geis_capacitor/fallen_armor)
- light_range = 2
- light_power = 1.1
+ light_range = 3
+ light_power = 1.7
playstyle_string = "You are a clockwork marauder, a well-rounded frontline construct of Ratvar. Although you have no \
unique abilities, you're a fearsome fighter in one-on-one combat, and your shield protects from projectiles!
Obey the Servants and do as they \
- tell you. Your primary goal is to defend the Ark from destruction; they are your allies in this, and should be protected from harm."
+ tell you. Your primary goal is to defend the Ark from destruction; they are your allies in this, and should be protected from harm. \
+ Be warned, however, that you will rapidly decay near the void of space."
empower_string = "The Anima Bulwark's power flows through you! Your weapon will strike harder, your armor is sturdier, and your shield is more durable."
+ var/default_speed = 0
var/max_shield_health = 3
var/shield_health = 3 //Amount of projectiles that can be deflected within
var/shield_health_regen = 0 //When world.time equals this, shield health will regenerate
@@ -36,10 +39,14 @@
/mob/living/simple_animal/hostile/clockwork/marauder/Life()
..()
+ var/turf/open/space/S = locate() in view(1)
+ if(S)
+ to_chat(src, "The void of space drains Ratvar's Light from you! You feel yourself rapidly decaying. It would be wise to get back inside!")
+ adjustBruteLoss(MARAUDER_SPACE_DAMAGE)
if(!GLOB.ratvar_awakens && health / maxHealth <= MARAUDER_SLOWDOWN_PERCENTAGE)
- speed = initial(speed) + 1 //Yes, this slows them down
+ speed = default_speed + 1 //Yes, this slows them down
else
- speed = initial(speed)
+ speed = default_speed
if(shield_health < max_shield_health && world.time >= shield_health_regen)
shield_health_regen = world.time + MARAUDER_SHIELD_REGEN_TIME
to_chat(src, "Your shield has recovered, [shield_health] blocks remaining!")
From ff5e07ac675bea56c36027aec7d757df51195da8 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Tue, 26 Nov 2019 15:54:15 -0700
Subject: [PATCH 04/11] Update clockwork_marauder.dm
---
.../clockcult/clock_mobs/clockwork_marauder.dm | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
index 6c2a7b5f71..a8d4ad6790 100644
--- a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
+++ b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
@@ -1,6 +1,7 @@
#define MARAUDER_SLOWDOWN_PERCENTAGE 0.40 //Below this percentage of health, marauders will become slower
#define MARAUDER_SHIELD_REGEN_TIME 200 //In deciseconds, how long it takes for shields to regenerate after breaking
-#define MARAUDER_SPACE_DAMAGE 4 //amount of damage taking per Life() tick from space.
+#define MARAUDER_SPACE_DIRECT_DAMAGE 6 //amount of damage per life tick while inside space
+#define MARAUDER_SPACE_NEAR_DAMAGE 4 //amount of damage taking per Life() tick from being next to space.
//Clockwork marauder: A well-rounded frontline construct. Only one can exist for every two human servants.
/mob/living/simple_animal/hostile/clockwork/marauder
@@ -39,10 +40,17 @@
/mob/living/simple_animal/hostile/clockwork/marauder/Life()
..()
- var/turf/open/space/S = locate() in view(1)
+ var/turf/T = get_turf(src)
+ var/turf/open/space/S = isspaceturf(T)? T : null
+ var/less_space_damage
+ if(!istype(S))
+ var/turf/open/space/nearS = locate() in oview(1)
+ if(nearS)
+ S = nearS
+ less_space_damage = TRUE
if(S)
to_chat(src, "The void of space drains Ratvar's Light from you! You feel yourself rapidly decaying. It would be wise to get back inside!")
- adjustBruteLoss(MARAUDER_SPACE_DAMAGE)
+ adjustBruteLoss(less_space_damage? MARAUDER_SPACE_NEAR_DAMAGE : MARAUDER_SPACE_FULL_DAMAGE)
if(!GLOB.ratvar_awakens && health / maxHealth <= MARAUDER_SLOWDOWN_PERCENTAGE)
speed = default_speed + 1 //Yes, this slows them down
else
From 00bc22d3750f5a3836f872d180e236637c7d8f5b Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Tue, 26 Nov 2019 19:27:05 -0700
Subject: [PATCH 05/11] Update clockwork_marauder.dm
---
.../antagonists/clockcult/clock_mobs/clockwork_marauder.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
index a8d4ad6790..311f552467 100644
--- a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
+++ b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm
@@ -1,6 +1,6 @@
#define MARAUDER_SLOWDOWN_PERCENTAGE 0.40 //Below this percentage of health, marauders will become slower
#define MARAUDER_SHIELD_REGEN_TIME 200 //In deciseconds, how long it takes for shields to regenerate after breaking
-#define MARAUDER_SPACE_DIRECT_DAMAGE 6 //amount of damage per life tick while inside space
+#define MARAUDER_SPACE_FULL_DAMAGE 6 //amount of damage per life tick while inside space
#define MARAUDER_SPACE_NEAR_DAMAGE 4 //amount of damage taking per Life() tick from being next to space.
//Clockwork marauder: A well-rounded frontline construct. Only one can exist for every two human servants.
From f776db7ab1a5294fbc514fb554a94c3988343aa7 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Wed, 27 Nov 2019 21:16:42 -0700
Subject: [PATCH 06/11] Update game_options.dm
---
code/controllers/configuration/entries/game_options.dm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index ee46842743..d72d7393a5 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -383,3 +383,6 @@
/datum/config_entry/number/marauder_delay_non_reebe
config_entry_value = 1800
min_val = 0
+
+/datum/config_entry/flag/allow_clockwork_marauder
+ config_entry_value = TRUE
From 4719de2830368c7ba2171bc31f70578126bcc612 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Wed, 27 Nov 2019 21:19:51 -0700
Subject: [PATCH 07/11] Update scripture_applications.dm
---
.../clock_scriptures/scripture_applications.dm | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
index 12fad2b7e0..ccf4aa45f1 100644
--- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
+++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
@@ -94,10 +94,15 @@
return ..()
/datum/clockwork_scripture/create_object/construct/clockwork_marauder/pre_recital()
- if(!is_reebe(invoker.z) && (world.time < (last_marauder + CONFIG_GET(number/marauder_delay_non_reebe))))
- to_chat(invoker, "The hierophant network is still strained from the last summoning of a marauder on a plane without the strong energy connection of Reebe to support it. \
- You must wait another [DisplayTimeText((last_marauder + CONFIG_GET(number/marauder_delay_non_reebe)) - world.time, TRUE)]!")
- return FALSE
+ if(!is_reebe(invoker.z))
+ if(!CONFIG_GET(flag/allow_clockwork_marauder_on_station))
+ to_chat(invoker, "This particular station is too far from the influence of the Hierophant Network. You can not summon a marauder here \
+ ((OOC NOTE: Station marauders are config-disabled.))")
+ return FALSE
+ if(world.time < (last_marauder + CONFIG_GET(number/marauder_delay_non_reebe)))
+ to_chat(invoker, "The hierophant network is still strained from the last summoning of a marauder on a plane without the strong energy connection of Reebe to support it. \
+ You must wait another [DisplayTimeText((last_marauder + CONFIG_GET(number/marauder_delay_non_reebe)) - world.time, TRUE)]!")
+ return FALSE
return ..()
/datum/clockwork_scripture/create_object/construct/clockwork_marauder/update_construct_limit()
From 9fef2343a72a1261b8ab086b5a6939c9429c5948 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Wed, 27 Nov 2019 21:20:12 -0700
Subject: [PATCH 08/11] Update game_options.dm
---
code/controllers/configuration/entries/game_options.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index d72d7393a5..e263b1dd36 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -384,5 +384,5 @@
config_entry_value = 1800
min_val = 0
-/datum/config_entry/flag/allow_clockwork_marauder
+/datum/config_entry/flag/allow_station_clockwork_marauder
config_entry_value = TRUE
From 4551a795e41957483702b10b3f1ebc59a1fd90d6 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Wed, 27 Nov 2019 21:20:33 -0700
Subject: [PATCH 09/11] Update game_options.dm
---
code/controllers/configuration/entries/game_options.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index e263b1dd36..21d9d4e093 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -384,5 +384,5 @@
config_entry_value = 1800
min_val = 0
-/datum/config_entry/flag/allow_station_clockwork_marauder
+/datum/config_entry/flag/allow_clockwork_marauder_on_station
config_entry_value = TRUE
From daf099388e32e88fedcbcf61543eebb75349b747 Mon Sep 17 00:00:00 2001
From: Ghom <42542238+Ghommie@users.noreply.github.com>
Date: Sat, 21 Dec 2019 16:37:28 +0100
Subject: [PATCH 10/11] Unnecessary OOC note.
---
.../clockcult/clock_scriptures/scripture_applications.dm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
index ccf4aa45f1..5a473d4778 100644
--- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
+++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
@@ -96,8 +96,7 @@
/datum/clockwork_scripture/create_object/construct/clockwork_marauder/pre_recital()
if(!is_reebe(invoker.z))
if(!CONFIG_GET(flag/allow_clockwork_marauder_on_station))
- to_chat(invoker, "This particular station is too far from the influence of the Hierophant Network. You can not summon a marauder here \
- ((OOC NOTE: Station marauders are config-disabled.))")
+ to_chat(invoker, "This particular station is too far from the influence of the Hierophant Network. You can not summon a marauder here.)
return FALSE
if(world.time < (last_marauder + CONFIG_GET(number/marauder_delay_non_reebe)))
to_chat(invoker, "The hierophant network is still strained from the last summoning of a marauder on a plane without the strong energy connection of Reebe to support it. \
From 2a76743747e7003205d69279df6500350710c598 Mon Sep 17 00:00:00 2001
From: Ghom <42542238+Ghommie@users.noreply.github.com>
Date: Sat, 21 Dec 2019 16:42:27 +0100
Subject: [PATCH 11/11] I'm playing dirty because we have too many PRs to merge
anyway.
---
.../clockcult/clock_scriptures/scripture_applications.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
index 5a473d4778..13b1b9975e 100644
--- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
+++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
@@ -96,7 +96,7 @@
/datum/clockwork_scripture/create_object/construct/clockwork_marauder/pre_recital()
if(!is_reebe(invoker.z))
if(!CONFIG_GET(flag/allow_clockwork_marauder_on_station))
- to_chat(invoker, "This particular station is too far from the influence of the Hierophant Network. You can not summon a marauder here.)
+ to_chat(invoker, "This particular station is too far from the influence of the Hierophant Network. You can not summon a marauder here.")
return FALSE
if(world.time < (last_marauder + CONFIG_GET(number/marauder_delay_non_reebe)))
to_chat(invoker, "The hierophant network is still strained from the last summoning of a marauder on a plane without the strong energy connection of Reebe to support it. \