Skip to content

Commit

Permalink
[Semi-Modular] HMS Buffs (#1742)
Browse files Browse the repository at this point in the history
* Initial

* Pills and Ilness

* Reagent Recipe

* recipe name

* Notation

* better values

* Minor Fixes

* Rework + Interdyne RP

* Mapping edits

* Smaller containers, less reagents

* no deforest

* Secret Recipe

* Update modular_nova/modules/HMS_Changes/sansufentanyl.dm

Co-authored-by: FlufflesTheDog <[email protected]>

* Fixes double call

This was un needed, as it ended up generating the text on the sheet twice

* Apply suggestions from code review

Co-authored-by: Bloop <[email protected]>

---------

Co-authored-by: FlufflesTheDog <[email protected]>
Co-authored-by: Bloop <[email protected]>
  • Loading branch information
3 people authored and StealsThePRs committed Apr 7, 2024
1 parent 9f6e117 commit 4aecae3
Show file tree
Hide file tree
Showing 6 changed files with 156 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2689,6 +2689,7 @@
control_area = "/area/ruin/interdyne_planetary_base";
ailock = 1
},
/obj/item/folder/syndicate/red/secretformula,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/interdyne_planetary_base/main/vault)
"hi" = (
Expand Down Expand Up @@ -2930,6 +2931,7 @@
/obj/effect/turf_decal/stripes/white/line{
dir = 4
},
/obj/item/reagent_containers/dropper,
/turf/open/floor/iron/white/textured_large,
/area/ruin/interdyne_planetary_base/med/pharm)
"hR" = (
Expand Down Expand Up @@ -3113,9 +3115,8 @@
/obj/machinery/reagentgrinder{
pixel_x = 5
},
/obj/item/storage/box/beakers/bluespace{
pixel_x = -5;
pixel_y = 3
/obj/item/storage/box/syndie_kit/sansufentanyl{
pixel_x = -9
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/interdyne_planetary_base/med/pharm)
Expand Down Expand Up @@ -3480,14 +3481,18 @@
/area/ruin/interdyne_planetary_base/med/morgue)
"jj" = (
/obj/structure/table/glass,
/obj/item/clothing/glasses/science,
/obj/machinery/firealarm/directional/west{
dir = 4
},
/obj/item/storage/box/beakers/bluespace{
pixel_x = -5;
pixel_y = 3
},
/obj/item/clothing/glasses/science,
/obj/item/reagent_containers/dropper,
/obj/item/stack/sheet/mineral/plasma{
amount = 15
},
/obj/item/reagent_containers/dropper,
/turf/open/floor/iron/white/textured_large,
/area/ruin/interdyne_planetary_base/med/pharm)
"jk" = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4288,6 +4288,9 @@
},
/obj/effect/turf_decal/tile/dark_green/full,
/obj/machinery/door/firedoor,
/obj/item/storage/box/syndie_kit/sansufentanyl{
pixel_x = -3
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/interdyne_planetary_base/med/pharm)
"JU" = (
Expand Down Expand Up @@ -5661,6 +5664,7 @@
/area/ruin/interdyne_planetary_base/med)
"UE" = (
/obj/structure/table/reinforced,
/obj/item/folder/syndicate/red/secretformula,
/turf/open/floor/catwalk_floor/iron_dark,
/area/ruin/interdyne_planetary_base/main/vault)
"UN" = (
Expand Down
50 changes: 41 additions & 9 deletions code/datums/diseases/chronic_illness.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
disease_flags = CHRONIC
infectable_biotypes = MOB_ORGANIC | MOB_MINERAL | MOB_ROBOTIC
process_dead = TRUE
stage_prob = 0.25
stage_prob = 0.10 // NOVA EDIT CHANGE = ORIGINAL: stage_prob = 0.25
cure_text = "Sansufentanyl"
cures = list(/datum/reagent/medicine/sansufentanyl)
infectivity = 0
Expand All @@ -25,25 +25,25 @@
if(1)
carrier = FALSE // Go fuck yourself
if(2)
if(SPT_PROB(0.5, seconds_per_tick))
if(SPT_PROB(0.8, seconds_per_tick)) // NOVA EDIT CHANGE - ORIGINAL: if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_warning("You feel dizzy."))
affected_mob.adjust_confusion(6 SECONDS)
if(SPT_PROB(0.5, seconds_per_tick))
if(SPT_PROB(0.8, seconds_per_tick)) // NOVA EDIT CHANGE - ORIGINAL: if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_notice("You look at your hand. Your vision blurs."))
affected_mob.set_eye_blur_if_lower(10 SECONDS)
if(3)
var/need_mob_update = FALSE
if(SPT_PROB(0.5, seconds_per_tick))
if(SPT_PROB(0.8, seconds_per_tick)) // NOVA EDIT CHANGE - ORIGINAL: if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_danger("You feel a very sharp pain in your chest!"))
if(prob(45))
affected_mob.vomit(VOMIT_CATEGORY_BLOOD, lost_nutrition = 20)
if(SPT_PROB(0.5, seconds_per_tick))
if(SPT_PROB(0.8, seconds_per_tick)) // NOVA EDIT CHANGE - ORIGINAL: if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_userdanger("[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]"))
need_mob_update += affected_mob.adjustStaminaLoss(70, updating_stamina = FALSE)
if(SPT_PROB(1, seconds_per_tick))
if(SPT_PROB(1, seconds_per_tick)) // NOVA EDIT CHANGE - ORIGINAL: if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_danger("You feel a buzzing in your brain."))
SEND_SOUND(affected_mob, sound('sound/weapons/flash_ring.ogg'))
if(SPT_PROB(0.5, seconds_per_tick))
if(SPT_PROB(0.8, seconds_per_tick)) // NOVA EDIT CHANGE - ORIGINAL: if(SPT_PROB(0.5, seconds_per_tick))
need_mob_update += affected_mob.adjustBruteLoss(1, updating_health = FALSE)
if(need_mob_update)
affected_mob.updatehealth()
Expand All @@ -61,14 +61,14 @@
if(prob(30))
to_chat(affected_mob, span_danger("Your vision blurs as you faint!"))
affected_mob.AdjustSleeping(10)
if(SPT_PROB(0.5, seconds_per_tick))
if(SPT_PROB(0.8, seconds_per_tick)) // NOVA EDIT CHANGE - ORIGINAL: if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_danger("[pick("You feel as though your atoms are accelerating in place.", "You feel like you're being torn apart!")]"))
affected_mob.emote("scream")
need_mob_update += affected_mob.adjustBruteLoss(10, updating_health = FALSE)
if(need_mob_update)
affected_mob.updatehealth()
if(5)
switch(rand(1,2))
switch(rand(1,5)) // NOVA EDIT CHANGE - ORIGINAL: switch(rand(1,2))
if(1)
to_chat(affected_mob, span_notice("You feel your atoms begin to realign. You're safe. For now."))
update_stage(1)
Expand All @@ -85,3 +85,35 @@
affected_mob.investigate_log("has been dusted / deleted by [name].", INVESTIGATE_DEATHS)
affected_mob.ghostize(can_reenter_corpse = FALSE)
qdel(affected_mob)
// NOVA EDIT ADDITION START
if(3)
to_chat(affected_mob, span_warning("You body wracks with pain as you are shunted to another point in time."))
affected_mob.visible_message(span_warning("A tear in reality opens up around [affected_mob] consuming them!"), span_userdanger("You are consumed by a hole in reality!"))
var/list/destinations = list()

for(var/obj/item/beacon/teleport_beacon in GLOB.teleportbeacons)
var/turf/T = get_turf(teleport_beacon)
if(is_station_level(T.z))
destinations += teleport_beacon

var/chosen_beacon = pick(destinations)
var/obj/effect/portal/jaunt_tunnel/tunnel = new (get_turf(src), 100, null, FALSE, get_turf(chosen_beacon))
tunnel.teleport(affected_mob)
affected_mob.vomit(VOMIT_CATEGORY_BLOOD, lost_nutrition = 20)
affected_mob.adjustBruteLoss(200)
playsound(src,'sound/effects/sparks4.ogg',50,TRUE)
qdel(tunnel)
update_stage(1)
if(4)
affected_mob.visible_message(span_warning("[affected_mob] is torn apart!"), span_userdanger("Your atoms accelerate into criticality!"))
affected_mob.gib(DROP_ALL_REMAINS)
update_stage(1)
if(5)
if(affected_mob.stat == CONSCIOUS)
affected_mob.visible_message(span_danger("[affected_mob] clutches at [affected_mob.p_their()] chest as if [affected_mob.p_their()] heart is stopping!"), \
span_userdanger("You feel a horrible pain as your heart is replaced with one from another dimension!"))
var/obj/item/organ/internal/heart/cursed/cheart = new /obj/item/organ/internal/heart/cursed()
cheart.replace_into(affected_mob)
playsound(affected_mob, 'sound/hallucinations/far_noise.ogg', 50, 1)
update_stage(1)
// NOVA EDIT ADDITION END
2 changes: 1 addition & 1 deletion code/modules/reagents/reagent_containers/pill.dm
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@
name = "sansufentanyl pill"
desc = "Used to treat Hereditary Manifold Sickness. Temporary side effects include - nausea, dizziness, impaired motor coordination."
icon_state = "pill19"
list_reagents = list(/datum/reagent/medicine/sansufentanyl = 5)
list_reagents = list(/datum/reagent/medicine/sansufentanyl = 10) // NOVA EDIT CHANGE - ORIGINAL: list_reagents = list(/datum/reagent/medicine/sansufentanyl = 5)

//Lower quantity mannitol pills (50u pills heal 250 brain damage, 5u pills heal 25)
/obj/item/reagent_containers/pill/mannitol/braintumor
Expand Down
99 changes: 99 additions & 0 deletions modular_nova/modules/HMS_Changes/sansufentanyl.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/datum/supply_pack/misc/experimentalmedicine
name = "Sanusfentanyl Medicine Crate"
desc = "A crate containing the medication required for living with Hereditary Manifold Sickness, Sansufentanyl."
cost = CARGO_CRATE_VALUE * 3
contains = list(/obj/item/storage/pill_bottle/sansufentanyl = 2)

/datum/chemical_reaction/medicine/sansufentanyl
results = list(/datum/reagent/medicine/sansufentanyl = 10)
required_reagents = list(/datum/reagent/medicine/sansufentanyl_base = 1, /datum/reagent/medicine/spaceacillin = 3, /datum/reagent/bluespace = 6)
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_HEALING | REACTION_TAG_OTHER

/datum/reagent/medicine/sansufentanyl
chemical_flags = REAGENT_NO_RANDOM_RECIPE

/datum/reagent/medicine/sansufentanyl_base
name = "Experimental Fentanyl Base"
description = "The secret base reagent used to create sansufentanyl. Developed by Interdyne Pharmacuticals, it is a closely held secret recipe."
color = "#8659a6"
ph = 5
chemical_flags = REAGENT_NO_RANDOM_RECIPE

/datum/reagent/medicine/sansufentanyl_base/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
. = ..()
affected_mob.adjust_confusion_up_to(3 SECONDS * REM * seconds_per_tick, 10 SECONDS)
affected_mob.adjust_dizzy_up_to(6 SECONDS * REM * seconds_per_tick, 20 SECONDS)
if(affected_mob.adjustStaminaLoss(4 * REM * seconds_per_tick, updating_stamina = FALSE))
. = UPDATE_MOB_HEALTH

if(SPT_PROB(10, seconds_per_tick))
to_chat(affected_mob, "You feel confused and disoriented.")
if(prob(30))
SEND_SOUND(affected_mob, sound('sound/weapons/flash_ring.ogg'))

/obj/item/paper/fluff/sansufentanyl
name = "sansufentanyl recipe"
default_raw_text = {"Sansufentanyl Recipe! <br>
Within this box contains the base reagents in order to make the experimental medicine, sansufentanyl. <br>
1. Grind the bluespace crystals into a fine powder. <br>
2. Mix 1 part Experimental Fentanyl Base with 3 parts spaceacillin and 6 parts bluespace dust. <br>
3. Mix the reagents together in a beaker and keep tempratue to around 350k. <br>
4. Once the reagents have been mixed, pour the mixture into a chem master. <br>
5. Initiate the chem master's pill press and press the pills into units of 10 per pill. <br>
6. Once the pills have been pressed, place them into a pill bottle and store them in a cool, dark place. <br>

If you run out of the base reagent you can make more using the secret formula stored in the vault.


THE RECIPE STORED IN THE VAULT IS TOP SECRET, DO NOT GIVE IT AWAY UNDER ANY CIRCUMSTANCE.
IF YOU ARE CAUGHT GIVING AWAY THE RECIPE, YOU WILL BE TERMINATED.
"}

/obj/item/reagent_containers/cup/beaker/sansufentanyl_base
list_reagents = list(/datum/reagent/medicine/sansufentanyl_base = 60)

/obj/item/reagent_containers/cup/beaker/large/spaceacillin
list_reagents = list(/datum/reagent/medicine/spaceacillin = 120)

/obj/item/storage/box/syndie_kit/sansufentanyl
name = "sansufentanyl reagent box"
desc = "Contains everything you'll need to create new batches of sansufentanyl. Careful, do not spill contents."

/obj/item/storage/box/syndie_kit/sansufentanyl/PopulateContents()
generate_items_inside(list(
/obj/item/reagent_containers/cup/beaker/sansufentanyl_base = 1,
/obj/item/reagent_containers/cup/beaker/large/spaceacillin = 1,
/obj/item/stack/ore/bluespace_crystal = 15,
/obj/item/paper/fluff/sansufentanyl = 1,
), src)

/datum/chemical_reaction/randomized/sansufentanyl
randomize_req_temperature = FALSE
possible_catalysts = list(/datum/reagent/bluespace)
min_catalysts = 1
max_catalysts = 1
max_input_reagents = 4
results = list(/datum/reagent/medicine/sansufentanyl_base=20)

/datum/chemical_reaction/randomized/sansufentanyl/GetPossibleReagents(kind)
switch(kind)
if(RNGCHEM_INPUT)
var/list/possible_ingredients = list()
for(var/datum/reagent/compound as anything in GLOB.medicine_reagents)
if(initial(compound.chemical_flags) & REAGENT_CAN_BE_SYNTHESIZED)
possible_ingredients += compound
return possible_ingredients
return ..()

/obj/item/paper/secretrecipe/secretformula
name = "\improper Sansufentanyl Secret Formula"
recipe_id = /datum/chemical_reaction/randomized/sansufentanyl
possible_recipes = list(/datum/chemical_reaction/randomized/sansufentanyl)

/obj/item/folder/syndicate/red/secretformula
icon_state = "folder_sred"

/obj/item/folder/syndicate/red/Initialize(mapload)
. = ..()
new /obj/item/paper/secretrecipe/secretformula(src)
update_appearance()
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -7405,6 +7405,7 @@
#include "modular_nova\modules\hairbrush\code\mood_events.dm"
#include "modular_nova\modules\height_scaling\code\icons.dm"
#include "modular_nova\modules\height_scaling\code\preferences.dm"
#include "modular_nova\modules\HMS_Changes\sansufentanyl.dm"
#include "modular_nova\modules\holdingfashion_port\code\backpack.dm"
#include "modular_nova\modules\holdingfashion_port\code\bluespace_design.dm"
#include "modular_nova\modules\holdingfashion_port\code\bluespace_node.dm"
Expand Down

0 comments on commit 4aecae3

Please sign in to comment.