mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
[MIRROR] Adds hauntium as a reagent with new fun uses. [MDB IGNORE] (#23027)
* Adds hauntium as a reagent with new fun uses. (#77471) ## About The Pull Request Adds the material hauntium as a reagent, along with bringing some unique effects with the reagent. There are a few new ways to get it other than just the camera obscura as before, such as grinding certain ghostly things. Unique effects it brings: - It works in metalgen (I believe the metalgen recipe is still broken as of making this) to make hauntium infused metalgen. https://github.com/tgstation/tgstation/assets/58376695/121ca6b2-00b7-4203-bc6a-48976b1af802 - Any object touched by the chem will temporarily have the haunted effect, letting it teleport around randomly and even attack people. https://github.com/tgstation/tgstation/assets/58376695/103aeee5-ed3e-4fdd-85e4-ac7338823c46 - If you put it in your body, it hurts your "soul" (soul being heart and mood)  ...unless you are morbid or undead, in which it gives a slight mood boost and acts like an addiction-less drug ## Why It's Good For The Game Hauntium previously was super niche and not very useful other than making funny haunted toolboxes from it. This expands it's usage and makes it a lot more interesting. I also know a good few people who have also wished this was available to use in metalgen and now you can! ## Changelog 🆑 add: Lets you grind things into a hauntium reagent which works similarly to the solid form but is versatile and has some unique effects. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Adds hauntium as a reagent with new fun uses. --------- Co-authored-by: die_amond <58376695+dieamond13@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
This commit is contained in:
co-authored by
Ghom
die_amond
parent
8d8eeff690
commit
b82a1d0a3a
@@ -2912,3 +2912,42 @@
|
||||
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
carbon_metabolizer.set_heartattack(TRUE)
|
||||
|
||||
/datum/reagent/hauntium
|
||||
name = "Hauntium"
|
||||
color = "#3B3B3BA3"
|
||||
description = "An eerie liquid created by purifying the prescence of ghosts. If it happens to get in your body, it starts hurting your soul." //soul as in mood and heart
|
||||
taste_description = "evil spirits"
|
||||
metabolization_rate = 0.75 * REAGENTS_METABOLISM
|
||||
material = /datum/material/hauntium
|
||||
ph = 10
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/hauntium/expose_obj(obj/exposed_obj, volume) //gives 15 seconds of haunting effect for every unit of it that touches an object
|
||||
. = ..()
|
||||
if(HAS_TRAIT_FROM(exposed_obj, TRAIT_HAUNTED, HAUNTIUM_REAGENT_TRAIT))
|
||||
return
|
||||
exposed_obj.make_haunted(HAUNTIUM_REAGENT_TRAIT, "#f8f8ff")
|
||||
addtimer(CALLBACK(exposed_obj, TYPE_PROC_REF(/atom/movable/, remove_haunted), HAUNTIUM_REAGENT_TRAIT), volume * 20 SECONDS)
|
||||
|
||||
/datum/reagent/hauntium/on_mob_metabolize(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
to_chat(affected_mob, span_userdanger("You feel an evil presence inside you!"))
|
||||
if(affected_mob.mob_biotypes & MOB_UNDEAD || HAS_MIND_TRAIT(affected_mob, TRAIT_MORBID))
|
||||
affected_mob.add_mood_event("morbid_hauntium", /datum/mood_event/morbid_hauntium, name) //8 minutes of slight mood buff if undead or morbid
|
||||
else
|
||||
affected_mob.add_mood_event("hauntium_spirits", /datum/mood_event/hauntium_spirits, name) //8 minutes of mood debuff
|
||||
|
||||
/datum/reagent/hauntium/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
if(affected_mob.mob_biotypes & MOB_UNDEAD || HAS_MIND_TRAIT(affected_mob, TRAIT_MORBID)) //if morbid or undead,acts like an addiction-less drug
|
||||
affected_mob.remove_status_effect(/datum/status_effect/jitter)
|
||||
affected_mob.AdjustStun(-50 * REM * seconds_per_tick)
|
||||
affected_mob.AdjustKnockdown(-50 * REM * seconds_per_tick)
|
||||
affected_mob.AdjustUnconscious(-50 * REM * seconds_per_tick)
|
||||
affected_mob.AdjustParalyzed(-50 * REM * seconds_per_tick)
|
||||
affected_mob.AdjustImmobilized(-50 * REM * seconds_per_tick)
|
||||
..()
|
||||
else
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, REM * seconds_per_tick) //1 heart damage per tick
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
affected_mob.emote(pick("twitch","choke","shiver","gag"))
|
||||
..()
|
||||
|
||||
@@ -950,3 +950,14 @@
|
||||
for(var/i in rand(1, created_volume) to created_volume)
|
||||
new /mob/living/basic/ant(location)
|
||||
..()
|
||||
|
||||
/datum/chemical_reaction/hauntium_solidification
|
||||
required_reagents = list(/datum/reagent/water/holywater = 10, /datum/reagent/hauntium = 20, /datum/reagent/iron = 1)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/hauntium_solidification/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i in 1 to created_volume)
|
||||
new /obj/item/stack/sheet/hauntium(location)
|
||||
|
||||
Reference in New Issue
Block a user