From cbae4e321c9732e4c4ae906e122251273b4457e4 Mon Sep 17 00:00:00 2001 From: Evandorf Date: Mon, 17 Jun 2024 18:39:52 -0500 Subject: [PATCH] Added DropLimb proc for more consistent IPC damage. Also added blood cloud effect. --- .../xenoarchaeology/finds/finds_special.dm | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/code/modules/research/xenoarchaeology/finds/finds_special.dm b/code/modules/research/xenoarchaeology/finds/finds_special.dm index 93c94bcd5a1..55711b58f5f 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_special.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_special.dm @@ -158,8 +158,22 @@ ///Is called when the statue is destroyed. Deals sufficiently consequential damage to IPCs and non-IPCS. Dionae are the least affected. /obj/item/vampiric/proc/bloodcall_final(var/mob/living/carbon/human/hero) + var/obj/item/vampiric/statue = src + var/reagent_amount = 50 + var/datum/reagents/chem = new/datum/reagents(reagent_amount) + chem.my_atom = statue + chem.add_reagent(/singleton/reagent/blood, reagent_amount) + + var/datum/effect/effect/system/smoke_spread/chem/smoke = new + smoke.show_log = 0 // This displays a log on creation + smoke.show_touch_log = 1 // This displays a log when a player is chemically affected + smoke.set_up(chem, 10, 0, statue, 120) + smoke.start() + qdel(chem) + if(!istype(hero)) return + if(!istype(hero.species, /datum/species/machine)) to_chat(hero, SPAN_HIGHDANGER("What have you done?! You feel an incredible pull as the statue breaks. The force crushes your hands and pulls your blood into an unseen void.")) hero.apply_damage(40, DAMAGE_BRUTE, BP_L_HAND) @@ -167,9 +181,11 @@ hero.vessel.remove_reagent(/singleton/reagent/blood,rand(120,175)) return - hero.apply_damage(700, DAMAGE_BRUTE, BP_GROIN) - hero.apply_damage(700, DAMAGE_BRUTE, BP_GROIN) //The way IPC limbs seem to act I needed the double damage to ensure it was removed. - to_chat(hero, SPAN_HIGHDANGER("What have you done?! You feel like you're being ripped in half!")) + var/obj/item/organ/external/bishop = hero.get_organ(BP_GROIN) + to_chat(hero, SPAN_HIGHDANGER("What have you done?! An unseen force grips you and starts to pull in opposite directions!")) + hero.apply_damage(75, DAMAGE_BRUTE, BP_CHEST) + bishop.droplimb(FALSE, DROPLIMB_BLUNT) //Damage to the chest, groin, and droplimb proc should guarantee a decent simulation of the IPC being ripped in half. + return ///Adds an option to attack the statue with an item in-hand. If you have sufficient force it destroys the statue and calls the bloodcall_final proc. @@ -184,8 +200,8 @@ playsound(get_turf(src), 'sound/species/revenant/grue_screech.ogg', 200, TRUE) playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 70, 1) shatter_material.place_shard(get_turf(src)) - qdel(src) bloodcall_final(user) + qdel(src) return ..() //animated blood 2 SPOOKY