From 977e72c148ccc8c54840d2e3e36f13cb4048542d Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Thu, 13 Jul 2017 10:58:17 -0400 Subject: [PATCH] Removes Soul Vessel, Cogscarab, and Anima Fragment Scriptures --- .../clock_cult/clock_items/clockwork_slab.dm | 15 +-- .../clock_cult/clock_mobs/anima_fragment.dm | 93 ------------------- .../scripture_applications.dm | 20 ---- .../clock_scriptures/scripture_scripts.dm | 39 -------- .../clock_structures/clock_shells.dm | 48 ---------- strings/tips.txt | 8 +- tgstation.dme | 2 - 7 files changed, 8 insertions(+), 217 deletions(-) delete mode 100644 code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm delete mode 100644 code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm index 15dc5bbe52a..fa3b1d16b56 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -50,9 +50,8 @@ maximum_quickbound = 6 //we usually have one or two unique scriptures, so if ratvar is up let us bind one more actions_types = list() -/obj/item/clockwork/slab/cyborg/engineer //five scriptures, plus a fabricator - quickbound = list(/datum/clockwork_scripture/create_object/replicant, /datum/clockwork_scripture/create_object/cogscarab, \ - /datum/clockwork_scripture/create_object/soul_vessel, /datum/clockwork_scripture/create_object/sigil_of_transmission, /datum/clockwork_scripture/create_object/interdiction_lens) +/obj/item/clockwork/slab/cyborg/engineer //three scriptures, plus a fabricator + quickbound = list(/datum/clockwork_scripture/create_object/replicant, /datum/clockwork_scripture/create_object/sigil_of_transmission, /datum/clockwork_scripture/create_object/interdiction_lens) /obj/item/clockwork/slab/cyborg/medical //five scriptures, plus a spear quickbound = list(/datum/clockwork_scripture/ranged_ability/linked_vanguard, /datum/clockwork_scripture/ranged_ability/sentinels_compromise, \ @@ -127,7 +126,7 @@ production_time = world.time + SLAB_PRODUCTION_TIME + production_slowdown var/mob/living/L L = get_atom_on_turf(src, /mob/living) - if(istype(L) && can_recite_scripture(L)) + if(istype(L) && (no_cost || can_recite_scripture(L))) var/component_to_generate = target_component_id if(!component_to_generate) component_to_generate = get_weighted_component_id(src) //more likely to generate components that we have less of @@ -258,7 +257,7 @@ if(busy) to_chat(user, "[src] refuses to work, displaying the message: \"[busy]!\"") return 0 - if(!can_recite_scripture(user)) + if(!no_cost && !can_recite_scripture(user)) to_chat(user, "[src] hums fitfully in your hands, but doesn't seem to do anything...") return 0 access_display(user) @@ -278,7 +277,7 @@ ui.open() /obj/item/clockwork/slab/proc/recite_scripture(datum/clockwork_scripture/scripture, mob/living/user) - if(!scripture || !user || !user.canUseTopic(src) || !can_recite_scripture(user)) + if(!scripture || !user || !user.canUseTopic(src) || (!no_cost && !can_recite_scripture(user))) return FALSE if(user.get_active_held_item() != src) to_chat(user, "You need to hold the slab in your active hand to recite scripture!") @@ -408,10 +407,6 @@ dat += "Spear: A Ratvarian spear, which is a very powerful melee weapon.
" dat += "Fabricator: A replica fabricator, which converts objects into clockwork versions.

" dat += "Constructs
" - dat += "Vessel: A soul vessel, a clockwork brain used to activate constructs.
" - dat += "Shell: A construct shell of some type that can accept a soul vessel to activate.
" - dat += "Scarab: A cogscarab construct, which is a drone that maintains the cult's bases.
" - dat += "Fragment: An anim[prob(1) ? "e" : "a"] fragment, which is a fragile but powerful offensive construct.
" dat += "Marauder: A clockwork marauder, which is a powerful bodyguard that hides in its owner.

" dat += "Structures (* = requires power)
" dat += "Warden: An ocular warden, which is a ranged turret that damages non-Servants that see it.
" diff --git a/code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm b/code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm deleted file mode 100644 index 5626e0b0e5e..00000000000 --- a/code/game/gamemodes/clock_cult/clock_mobs/anima_fragment.dm +++ /dev/null @@ -1,93 +0,0 @@ -//Anima fragment: Low health and high melee damage, but slows down when struck. Created by inserting a soul vessel into an empty fragment. -/mob/living/simple_animal/hostile/clockwork/fragment - name = "anima fragment" - desc = "An ominous humanoid shell with a spinning cogwheel as its head, lifted by a jet of blazing red flame." - icon_state = "anime_fragment" - health = 90 - maxHealth = 90 - speed = -1 - melee_damage_lower = 18 - melee_damage_upper = 18 - attacktext = "crushes" - attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' - loot = list(/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment) - weather_immunities = list("lava") - movement_type = FLYING - light_range = 2 - light_power = 0.8 - playstyle_string = "You are an anima fragment, a clockwork creation of Ratvar. As a fragment, you have decent health that very gradually regenerates, do \ - decent damage, and move at extreme speed in addition to being immune to extreme temperatures and pressures. Taking damage, and slamming into non-Servants, will temporarily slow you down, however.\n\ - Your goal is to serve the Justiciar and his servants in any way you can. You yourself are one of these servants, and will be able to utilize anything they can, assuming it doesn't require \ - opposable thumbs." - var/movement_delay_time //how long the fragment is slowed after being hit - -/mob/living/simple_animal/hostile/clockwork/fragment/Initialize() - . = ..() - if(prob(1)) - name = "anime fragment" - desc = "I-it's not like I want to show you the light of the Justiciar or anything, B-BAKA!" - -/mob/living/simple_animal/hostile/clockwork/fragment/Life() - ..() - if(GLOB.ratvar_awakens) - adjustHealth(-5) - else if(movement_delay_time > world.time) - adjustHealth(-0.2) - else - adjustHealth(-1) - -/mob/living/simple_animal/hostile/clockwork/fragment/Stat() - ..() - if(statpanel("Status") && movement_delay_time > world.time && !GLOB.ratvar_awakens) - stat(null, "Movement delay(seconds): [max(round((movement_delay_time - world.time)*0.1, 0.1), 0)]") - -/mob/living/simple_animal/hostile/clockwork/fragment/death(gibbed) - visible_message("[src]'s flame jets cut out as it falls to the floor with a tremendous crash.", \ - "Your gears seize up. Your flame jets flicker out. Your soul vessel belches smoke as you helplessly crash down.") - ..() - -/mob/living/simple_animal/hostile/clockwork/fragment/Process_Spacemove(movement_dir = 0) - return 1 - -/mob/living/simple_animal/hostile/clockwork/fragment/Bump(atom/movable/AM) - . = ..() - if(movement_delay_time <= world.time && next_move <= world.time && isliving(AM) && !is_servant_of_ratvar(AM)) - var/mob/living/L = AM - if(L.stat) //we don't want to attack them if they're unconscious or dead because that feels REALLY BAD for the player - return - var/previousattacktext = attacktext - attacktext = "slams into" - UnarmedAttack(L) - attacktext = previousattacktext - changeNext_move(CLICK_CD_MELEE) - if(!GLOB.ratvar_awakens) - adjustHealth(4) - adjust_movement_delay(10) //with the above damage, total of 20 movement delay plus speed = 0 due to damage - -/mob/living/simple_animal/hostile/clockwork/fragment/emp_act(severity) - adjust_movement_delay(50/severity) - -/mob/living/simple_animal/hostile/clockwork/fragment/movement_delay() - . = ..() - if(movement_delay_time > world.time && !GLOB.ratvar_awakens) - . += min((movement_delay_time - world.time) * 0.1, 10) //the more delay we have, the slower we go - -/mob/living/simple_animal/hostile/clockwork/fragment/adjustHealth(amount) - . = ..() - if(amount > 0) - adjust_movement_delay(amount*2.5) - -/mob/living/simple_animal/hostile/clockwork/fragment/proc/adjust_movement_delay(amount) - if(GLOB.ratvar_awakens) //if ratvar is up we ignore movement delay - movement_delay_time = 0 - else if(movement_delay_time > world.time) - movement_delay_time = movement_delay_time + amount - else - movement_delay_time = world.time + amount - -/mob/living/simple_animal/hostile/clockwork/fragment/updatehealth() - ..() - if(health == maxHealth) - speed = initial(speed) - else - speed = 0 //slow down if damaged at all diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm index 27bf4551eb8..86adedb2cbd 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -151,26 +151,6 @@ return TRUE -//Anima Fragment: Creates an empty anima fragment, which produces an anima fragment that moves at extreme speed and does high damage. -/datum/clockwork_scripture/create_object/anima_fragment - descname = "Fast Soul Vessel Shell" - name = "Anima Fragment" - desc = "Creates a large shell fitted for soul vessels. Adding an active soul vessel to it results in a powerful construct with decent health and slight regeneration, notable melee power, \ - and exceptional speed, though taking damage will temporarily slow it down." - invocations = list("Call forth...", "...the soldiers of Armorer.") - channel_time = 80 - consumed_components = list(BELLIGERENT_EYE = 2, VANGUARD_COGWHEEL = 2, REPLICANT_ALLOY = 4) - object_path = /obj/structure/destructible/clockwork/shell/fragment - creator_message = "You form an anima fragment, a powerful soul vessel receptacle." - observer_message = "The slab disgorges a puddle of black metal that expands and forms into a strange shell!" - usage_tip = "Useless without a soul vessel and should not be created without one." - tier = SCRIPTURE_APPLICATION - primary_component = REPLICANT_ALLOY - sort_priority = 4 - quickbind = TRUE - quickbind_desc = "Creates a Fragment Shell, which produces an Anima Fragment when filled with a Soul Vessel." - - //Sigil of Transmission: Creates a sigil of transmission that can store power for clockwork structures. /datum/clockwork_scripture/create_object/sigil_of_transmission descname = "Structure Battery" diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm index 6d8402ede0e..68f998af2bb 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm @@ -29,25 +29,6 @@ return ..() -//Cogscarab: Creates an empty cogscarab shell, which produces a cogscarab dedicated to maintaining and defending the cult. -/datum/clockwork_scripture/create_object/cogscarab - descname = "Constructor Soul Vessel Shell" - name = "Cogscarab" - desc = "Creates a small shell fitted for soul vessels. Adding an active soul vessel to it results in a small construct with tools and an inbuilt fabricator." - invocations = list("Call forth...", "...the workers of Armorer.") - channel_time = 60 - consumed_components = list(BELLIGERENT_EYE = 2, HIEROPHANT_ANSIBLE = 1) - object_path = /obj/structure/destructible/clockwork/shell/cogscarab - creator_message = "You form a cogscarab, a constructor soul vessel receptacle." - observer_message = "The slab disgorges a puddle of black metal that contracts and forms into a strange shell!" - usage_tip = "Useless without a soul vessel and should not be created without one." - tier = SCRIPTURE_SCRIPT - primary_component = BELLIGERENT_EYE - sort_priority = 2 - quickbind = TRUE - quickbind_desc = "Creates a Cogscarab Shell, which produces a Cogscarab when filled with a Soul Vessel." - - //Vitality Matrix: Creates a sigil which will drain health from nonservants and can use that health to heal or even revive servants. /datum/clockwork_scripture/create_object/vitality_matrix descname = "Trap, Damage to Healing" @@ -201,26 +182,6 @@ quickbind_desc = "Creates a Sigil of Submission, which will convert one non-Servant that remains on it." -//Soul Vessel: Creates a soul vessel, which can seek a ghost or be used on the uncovered head of a dead or dying human to take their brain. -/datum/clockwork_scripture/create_object/soul_vessel - descname = "Clockwork Posibrain" - name = "Soul Vessel" - desc = "Forms an ancient positronic brain with an overriding directive to serve Ratvar." - invocations = list("Herd the souls of...", "...the blasphemous damned!") - channel_time = 30 - consumed_components = list(VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 2) - whispered = TRUE - object_path = /obj/item/device/mmi/posibrain/soul_vessel - creator_message = "You form a soul vessel, which can be used in-hand to attract spirits, or used on an unconscious or dead human to extract their consciousness." - usage_tip = "The vessel can be used as a teleport target for Spatial Gateway, though it is generally better-used by placing it in a shell or cyborg body." - tier = SCRIPTURE_SCRIPT - space_allowed = TRUE - primary_component = GEIS_CAPACITOR - sort_priority = 6 - quickbind = TRUE - quickbind_desc = "Creates a Soul Vessel, which can be placed in construct shells and cyborg bodies once filled." - - //Replica Fabricator: Creates a replica fabricator, used to convert objects and repair clockwork structures. /datum/clockwork_scripture/create_object/replica_fabricator descname = "Replaces Objects with Ratvarian Versions" diff --git a/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm b/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm deleted file mode 100644 index a2f1022abcc..00000000000 --- a/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm +++ /dev/null @@ -1,48 +0,0 @@ -//Useless on their own, these shells can create powerful constructs. -/obj/structure/destructible/clockwork/shell - construction_value = 0 - anchored = FALSE - density = FALSE - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - var/mobtype = /mob/living/simple_animal/hostile/clockwork - var/spawn_message = " is an error and you should yell at whoever spawned this shell." - -/obj/structure/destructible/clockwork/shell/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/device/mmi/posibrain/soul_vessel)) - if(!is_servant_of_ratvar(user)) - ..() - return 0 - var/obj/item/device/mmi/posibrain/soul_vessel/S = I - if(!S.brainmob) - to_chat(user, "[S] is inactive! Turn it on or capture a mind first.") - return 0 - if(S.brainmob && (!S.brainmob.client || !S.brainmob.mind)) - to_chat(user, "[S]'s trapped consciousness appears inactive!") - return 0 - user.visible_message("[user] places [S] in [src], where it fuses to the shell.", "You place [S] in [src], fusing it to the shell.") - var/mob/living/simple_animal/A = new mobtype(get_turf(src)) - A.visible_message("[src][spawn_message]") - S.brainmob.mind.transfer_to(A) - A.fully_replace_character_name(null, "[findtext(A.name, initial(A.name)) ? "[initial(A.name)]":"[A.name]"] ([S.brainmob.name])") - user.drop_item() - qdel(S) - qdel(src) - return 1 - else - return ..() - -/obj/structure/destructible/clockwork/shell/cogscarab - name = "cogscarab shell" - desc = "A small brass shell with a cube-shaped receptable in its center. It gives off an aura of obsessive perfectionism." - clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a weak construct with an inbuilt fabricator." - icon_state = "clockdrone_shell" - mobtype = /mob/living/simple_animal/drone/cogscarab - spawn_message = "'s eyes blink open, glowing bright red." - -/obj/structure/destructible/clockwork/shell/fragment - name = "fragment shell" - desc = "A massive brass shell with a small cube-shaped receptable in its center. It gives off an aura of contained power." - clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a powerful construct." - icon_state = "anime_fragment" - mobtype = /mob/living/simple_animal/hostile/clockwork/fragment - spawn_message = " whirs and rises from the ground on a flickering jet of reddish fire." diff --git a/strings/tips.txt b/strings/tips.txt index fa2bd82c395..3fedea4a104 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -159,23 +159,21 @@ As a Servant, your Clockwork Slab fits in pockets and does not need to be held t As a Servant, remember that while the selection of scripture and tools Servant cyborgs get is limited, it is still extremely useful, and some of it is unique; for example, engineering and janitor cyborgs get a proselytizer that can use their own power in addition to its own. As a Servant, the Judicial Visor is an effective defensive combat tool in small spaces, as it stuns and mutes anyone still on it after 3 seconds. It is also useful for stunning already-stunned enemies for long enough to convert them or finish them off. As a Servant, making, and protecting, Tinkerer's Caches is extremely important, as caches are required to unlock scripture and share components. -As a Servant, Ocular Wardens, while fragile, do very high, rapid damage to a target non-servant that can see them and will even attack mechs that contain heretics. Place them behind objects that don't block vision to get the most use out of them. +As a Servant, Ocular Wardens, while fragile, do very high, rapid damage to a target non-Servant that can see them and will even attack mechs that contain heretics. Place them behind objects that don't block vision to get the most use out of them. As a Servant, Clockwork Structures that require power will draw power from the APC if they cannot find a different source of power, and most power-using Structures will rapidly drain the APC. -As a Servant, you can repair Servant cyborgs, Clockwork Constructs, and Clockwork Structures with a Replica Fabricator at a rate of 25W power to 1 health. +As a Servant, you can repair Servant cyborgs and Clockwork Structures with a Replica Fabricator at a rate of 25W power to 1 health. As a Servant, securing a reliable source of component generation is high-priority, as simply handing out slabs will slowly become inefficient. Try placing Tinkerer's Caches near clockwork walls or creating and powering Tinkerer's Daemons. -As a Servant, only a single held Clockwork Slab will generate components, no matter how many you're holding. In addition, slabs will generate components slower with large amounts of servants; you can see the exact time with Recollection. +As a Servant, only a single held Clockwork Slab will generate components, no matter how many you're holding. In addition, slabs will generate components slower with large amounts of Servants; you can see the exact time with Recollection. As a Servant, you can use Geis to easily convert single targets, as it binds them in place, preventing escape unless they react quickly enough. Having another Servant apply Geis to someone already bound will prevent their escape and mute them, even if they reacted quickly. As a Servant, placing components in a slab or cache places those components in a globally-accessable storage that slabs will draw from to invoke scripture. As a Servant, you can stack different types of Sigils on the same turf; try stacking a Sigil of Transgression and a Sigil of Submission for a subtle conversion trap. As a Servant, you can deconstruct a Clockwork Wall with a Replica Fabricator to regain 1000W power. You can also construct Clockwork Walls on Clockwork Floors for a cost of 1000W power. -As a Servant, Volt Void will drain power from nearby Sigils of Transmission to up to double the damage of each volt ray. It'll even use your own power if you happen to be a cyborg! As a Servant, Fellowship Armory invokes much faster for each nearby servant and attempts to provide each affected servant with powerful armor against melee, bullet, and bomb attacks. The gauntlets provided are also immune to elecricity. As a Servant, Spatial Gateway can teleport to any living Servant or Clockwork Obelisk, and gains additional uses and duration for each Servant assisting in the invocation. As a Servant, creating and activating the Gateway to the Celestial Derelict is your ultimate goal, and you must defend it with all the tools you have available. As a Servant, you can impale human targets with a Ratvarian Spear by pulling them, then attacking them. This does massive damage and stuns them, and should effectively win the fight. As a Servant, Sentinel's Compromise can instantly return you or another Servant to a fighting state by converting half of all their brute, burn, and oxygen damage to toxin, effectively halving the damage they have. Clockwork Floors will also rapidly heal toxin damage in Servants, allowing the Compromise more effectiveness. As a Servant, Belligerent and Taunting Tirade are extremely powerful for disabling and disrupting large groups of enemies, though they render you somewhat vulnerable, as Belligerent requires that you stand still, and Taunting Tirade makes you extremely obvious. -As a Servant, Soul Vessels can be placed in cyborg shells, mecha, Cogscarab shells, and Anima Fragment shells. As a Servant, you can unwrench Clockwork Structures, but doing so will damage them, severely weakening them until repaired with a Replica Fabricator or Mending Mantra. Damage from other sources will also similarly weaken structures. You can deconvert Cultists of Nar-Sie and Servants of Ratvar by feeding them large amounts of holy water. As a Wizard, you can turn people to stone, then animate the resulting statue with a staff of animation to create an extremely powerful minion, for all of 5 minutes at least. diff --git a/tgstation.dme b/tgstation.dme index 08a51574511..59cae3419e1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -428,7 +428,6 @@ #include "code\game\gamemodes\clock_cult\clock_items\replica_fabricator.dm" #include "code\game\gamemodes\clock_cult\clock_items\soul_vessel.dm" #include "code\game\gamemodes\clock_cult\clock_items\wraith_spectacles.dm" -#include "code\game\gamemodes\clock_cult\clock_mobs\anima_fragment.dm" #include "code\game\gamemodes\clock_cult\clock_mobs\clockwork_marauder.dm" #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_applications.dm" #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_cyborg.dm" @@ -436,7 +435,6 @@ #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_judgement.dm" #include "code\game\gamemodes\clock_cult\clock_scriptures\scripture_scripts.dm" #include "code\game\gamemodes\clock_cult\clock_structures\ark_of_the_clockwork_justicar.dm" -#include "code\game\gamemodes\clock_cult\clock_structures\clock_shells.dm" #include "code\game\gamemodes\clock_cult\clock_structures\clockwork_obelisk.dm" #include "code\game\gamemodes\clock_cult\clock_structures\geis_binding.dm" #include "code\game\gamemodes\clock_cult\clock_structures\interdiction_lens.dm"