From 17f85d7d8d30ae88cda352ef834bef52cb0ea4d0 Mon Sep 17 00:00:00 2001 From: Dan-Neposh Date: Mon, 25 Jan 2021 05:22:20 -0500 Subject: [PATCH] war golem, cyborg, soul vessel rites added, scarab scripture added --- .../clockcult/clock_helpers/clock_rites.dm | 62 +++++++++++++++++++ .../antagonists/clockcult/clock_scripture.dm | 5 +- .../scripture_applications.dm | 24 +++++++ 3 files changed, 90 insertions(+), 1 deletion(-) diff --git a/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm b/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm index 59a86ffa34..10bd76db6c 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm @@ -194,4 +194,66 @@ CL.visible_message("[CL] materialises out of thin air!") new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2) +//summons a soul vessel, which is the clockwork cult version of a soul shard. It acts like a posibrain and, as long as the target has a brain, a soul shard. +/datum/clockwork_rite/soul_vessel + name = "Rite of the Vessel" //The name of the rite + desc = "This rite is used to summon a soul vessel, a special posibrain that makes whoever has their brain put into it loyal to the Justiciar.,\ + When put into a cyborg shell, the created cyborg will automatically be a servant of Ratvar." + list/required_ingredients = list(/obj/item/stack/cable_coil, /obj/item/stock_parts/cell/, /obj/item/organ/cyberimp) + power_cost = 2500 //These things are pretty strong, I won't lie + requires_full_power = TRUE + cast_time = 50 + limit = INFINITE + rite_cast_sound = 'sound/magic/summon_guns.ogg' + +/datum/clockwork_rite/soul_vessel/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target) + . = ..() + if(!.) + return FALSE + var/obj/item/mmi/posibrain/soul_vessel/SV = new /obj/item/mmi/posibrain/soul_vessel(T) + SV.visible_message("[SV] materalizes out of thin air!") + new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2) + + +/datum/clockwork_rite/cyborg_transform + name = "Rite of the Divine Form" + desc = "This rite is used to ascend into a cyborg, gaining unique scripture and a loadout that depends on which module is chosen. Consult the wiki for details on each cyborg module's loadout. Mutually exclusive to Enhanced Form." + list/required_ingredients = list(/obj/item/mmi/posibrain, /obj/item/stack/cable_coil, /obj/item/stock_parts/cell/super, /obj/item/bodypart/l_arm/robot, /obj/item/bodypart/r_arm/robot, /obj/item/bodypart/l_leg/robot, /obj/item/bodypart/r_leg/robot, /obj/item/bodypart/chest/robot, /obj/item/bodypart/head/robot, /obj/item/bodypart/r_leg/robot, /obj/item/bodypart/l_leg/robot) + power_cost = 20000 + requires_human = TRUE + requires_full_power = FALSE + cast_time = 100 + limit = INFINITE + rite_cast_sound = 'sound/magic/disable_tech.ogg' + +/datum/clockwork_rite/cyborg_transform/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target) + . = ..() + if(!.) + return FALSE + target.visible_message("The robotic parts magnetize to [target], the new frame's eyes glowing in a brilliant yellow!") + var/mob/living/silicon/robot/R = target.Robotize() + R.cell = new /obj/item/stock_parts/cell/upgraded/plus(R) + new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2) + +/datum/clockwork_rite/golem_transform + name = "Rite of the Enhanced Form" + desc = "This rite is used to shed one's flesh to become a clockwork automaton, becoming immune to many environmental hazards as well as being more resilient to incoming damage. Mutually exclusive to Divine Form." + list/required_ingredients = list(/obj/item/mmi/posibrain, /obj/item/stock_parts/cell/super, /obj/item/bodypart/l_arm/robot, /obj/item/bodypart/r_arm/robot, /obj/item/bodypart/l_leg/robot, /obj/item/bodypart/r_leg/robot, /obj/item/bodypart/chest/robot, /obj/item/bodypart/head/robot, /obj/item/bodypart/r_leg/robot, /obj/item/bodypart/l_leg/robot) + power_cost = 20000 + requires_human = TRUE + requires_full_power = FALSE + cast_time = 100 + limit = INFINITE + rite_cast_sound = 'sound/magic/disable_tech.ogg' + + +/datum/clockwork_rite/golem_transform/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target) + . = ..() + if(!.) + return FALSE + target.visible_message("The robotic parts magnetize to [target], the humanoid shape's eye glowing with an inner flame!") + to_chat(target, "The rite's power warps your body into a clockwork form! You are now immune to many hazards, and your body is more robust against damage!") + target.set_species(/datum/species/golem/clockwork/no_scrap) + new /obj/effect/temp_visual/ratvar/sigil/transmission(T,2) + #undef INFINITE diff --git a/code/modules/antagonists/clockcult/clock_scripture.dm b/code/modules/antagonists/clockcult/clock_scripture.dm index aa0f7f03fa..af1fb5fdc3 100644 --- a/code/modules/antagonists/clockcult/clock_scripture.dm +++ b/code/modules/antagonists/clockcult/clock_scripture.dm @@ -5,7 +5,7 @@ Pieces of scripture require certain follower counts, contruction value, and acti Drivers: Unlocked by default Scripts: 35k power or one convert Applications: 50k or three converts -Judgement 5 converts +Judgement 80k power or nine converts */ /datum/clockwork_scripture @@ -16,6 +16,9 @@ Judgement 5 converts var/chanting = FALSE //If the invocation's words are being spoken var/channel_time = 10 //In deciseconds, how long a ritual takes to chant var/power_cost = 5 //In watts, how much a scripture takes to invoke + var/vitality_cost = 0 //how much vitality a scripture requires to be used + var/special_vitality_text//if the scripture can use additional vitality to have a unique function, use this; put + var/special_vitality_cost var/special_power_text //If the scripture can use additional power to have a unique function, use this; put POWERCOST here to display the special power cost. var/special_power_cost //This should be a define in __DEFINES/clockcult.dm, such as ABSCOND_ABDUCTION_COST var/obj/item/clockwork/slab/slab //The parent clockwork slab diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm index 069e480325..99cf40b432 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm @@ -23,6 +23,30 @@ quickbind = TRUE quickbind_desc = "Creates a Sigil of Transmission, which can drain and will store power for clockwork structures." +/datum/clockwork_scripture/create_object/cogscarab + name = "Summon Cogscarab" + desc = "Summon a Cogscarab shell, which will be possessed by fallen Ratvarian soldiers. Takes longer the more cogscarabs are alive. Requires 20 vitality." + usage_tip = "Use Cogscarabs to fortify bases while the human servants convert and sabotage the crew." + button_icon_state = "Cogscarab" + power_cost = 900 + channel_time = 120 + invocations = list("My fallen brothers,", "Now is the time we rise", "Protect our lord", "Achieve greatness!") + tier = SCRIPTURE_APPLICATION + invokers_required = 2 + quickbind = TRUE + quickbind_desc = "Creates a cogscarab shell, which can be possessed by a ghost to assist in construction and base maintenance" + +/datum/clockcult/scripture/cogscarab/begin_invoke(mob/living/M, obj/item/clockwork/clockwork_slab/slab, bypass_unlock_checks) + invokation_time = 120 + (60 * GLOB.cogscarabs.len) + if(GLOB.cogscarabs.len > 8) + to_chat(M, "You can't summon anymore cogscarabs.") + return + . = ..() + +/datum/clockcult/scripture/cogscarab/invoke_success() + new /obj/item/drone_shell/cogscarab(get_turf(invoker)) + + //Prolonging Prism: Creates a prism that will delay the shuttle at a power cost /datum/clockwork_scripture/create_object/prolonging_prism descname = "Powered Structure, Delay Emergency Shuttles"