diff --git a/mod_celadon/balance/_balance.dme b/mod_celadon/balance/_balance.dme index eabb76a63c91..e21c4b7c4d70 100644 --- a/mod_celadon/balance/_balance.dme +++ b/mod_celadon/balance/_balance.dme @@ -21,6 +21,7 @@ #include "code/hostile_mobs.dm" #include "code/ionrifle.dm" #include "code/items.dm" +#include "code/legion_core.dm" #include "code/missions.dm" #include "code/structures.dm" #include "code/suit.dm" diff --git a/mod_celadon/balance/code/legion_core.dm b/mod_celadon/balance/code/legion_core.dm new file mode 100644 index 000000000000..14eb2b952809 --- /dev/null +++ b/mod_celadon/balance/code/legion_core.dm @@ -0,0 +1,49 @@ +/datum/reagent/medicine/soulus + name = "Soulus Dust" + description = "Ground legion cores. The dust quickly seals wounds yet slowly causes the tissue to undergo necrosis." + reagent_state = SOLID + color = "#302f20" + metabolization_rate = REAGENTS_METABOLISM * 0.8 + overdose_threshold = 50 + var/tox_dam = 0.1 + clone_dam = 0 + +/datum/reagent/medicine/soulus/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) + if(iscarbon(M) && M.stat != DEAD) + if(method in list(INGEST, INJECT)) + M.jitteriness += reac_volume + if(M.getFireLoss()) + M.adjustFireLoss(-reac_volume*1.2) + if(M.getBruteLoss()) + M.adjustBruteLoss(-reac_volume*1.2) + if(prob(50)) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "legion", /datum/mood_event/legion_good, name) + else + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "legion", /datum/mood_event/legion_bad, name) + ..() + +/datum/reagent/medicine/soulus/on_mob_life(mob/living/carbon/M) + M.adjustFireLoss(-0.15*REM, 0) + M.adjustBruteLoss(-0.15*REM, 0) + M.adjustToxLoss(clone_dam*REM, 0) + ..() + +/datum/reagent/medicine/soulus/overdose_process(mob/living/M) + var/mob/living/carbon/C = M + if(!istype(C.getorganslot(ORGAN_SLOT_REGENERATIVE_CORE), /obj/item/organ/legion_skull)) + var/obj/item/organ/legion_skull/spare_ribs = new() + spare_ribs.Insert(M) + ..() + +/datum/reagent/medicine/soulus/on_mob_end_metabolize(mob/living/M) + SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "legion") + ..() + +/datum/reagent/medicine/soulus/pure + name = "Purified Soulus Dust" + description = "Ground legion cores." + reagent_state = SOLID + color = "#302f20" + metabolization_rate = REAGENTS_METABOLISM + overdose_threshold = 100 + tox_dam = 0