Adjusts IPC Adrenals to be Like Regular Adrenals - Robotic Equality Update! (#25903)

* Robot equality!

* Update medicine.dm

* e

* Update drugs.dm

* normalise drugs

* normalises medicine

* Update medicine.dm

* Update medicine.dm

* Update medicine.dm

* Update code/modules/reagents/chemistry/reagents/medicine.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* update based on suggestions

* Update medicine.dm

* Update medicine.dm

* Apply suggestions from code review

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

---------

Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
CRUNCH
2024-08-05 19:27:37 +01:00
committed by GitHub
parent 2d48d02ad7
commit bccf624639
3 changed files with 100 additions and 122 deletions
@@ -1254,103 +1254,6 @@
update_flags |= M.adjustBruteLoss(rand(1,5)*REAGENTS_EFFECT_MULTIPLIER, FALSE)
return list(0, update_flags)
//surge+, used in supercharge implants
/datum/reagent/surge_plus
name = "Surge Plus"
id = "surge_plus"
description = "A superconducting gel that overloads processors, causing an effect reportedly similar to benzodiazepines in synthetic units."
reagent_state = LIQUID
color = "#28b581"
process_flags = SYNTHETIC
overdose_threshold = 30
addiction_chance = 1
addiction_chance_additional = 20
addiction_threshold = 5
addiction_decay_rate = 0.2
taste_description = "silicon"
/datum/reagent/surge_plus/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
M.AdjustParalysis(-8 SECONDS)
M.AdjustStunned(-8 SECONDS)
M.AdjustWeakened(-8 SECONDS)
M.AdjustKnockDown(-8 SECONDS)
update_flags |= M.adjustStaminaLoss(-25, FALSE)
if(prob(5))
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
if(prob(10))
high_message = "0100011101001111010101000101010001000001010001110100111101000110010000010101001101010100!"
to_chat(M, "<span class='notice'>[high_message]</span>")
return ..() | update_flags
/datum/reagent/surge_plus/overdose_process(mob/living/M, severity)
var/update_flags = STATUS_UPDATE_NONE
var/recent_consumption = holder.addiction_threshold_accumulated[type]
M.Jitter(40 SECONDS)
M.Stuttering(10 SECONDS)
if(prob(5 * DRAWBACK_CHANCE_MODIFIER(recent_consumption)))
to_chat(M, "<span class='notice'>Your circuits overheat!</span>") // synth fever
M.bodytemperature += 30 * DRAWBACK_CHANCE_MODIFIER(recent_consumption * 2)
M.Confused(1 SECONDS * DRAWBACK_CHANCE_MODIFIER(recent_consumption * 2))
if(prob(10))
to_chat(M, "<span class='danger'>You experience a violent electrical discharge!</span>")
playsound(get_turf(M), 'sound/effects/eleczap.ogg', 75, TRUE)
var/icon/I = new('icons/obj/zap.dmi', "lightningend")
I.Turn(-135)
var/obj/effect/overlay/beam/B = new(get_turf(M))
B.pixel_x = rand(-20, 0)
B.pixel_y = rand(-20, 0)
B.icon = I
update_flags |= M.adjustFireLoss(rand(1, 5) * REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustBruteLoss(rand(1, 5) * REAGENTS_EFFECT_MULTIPLIER, FALSE)
return list(0, update_flags)
//Servo Lube, supercharge
/datum/reagent/lube/combat
name = "Combat-Lube"
id = "combatlube"
description = "Combat-Lube is a refined and enhanced lubricant which induces effect stronger than Methamphetamine in synthetic users by drastically reducing internal friction and increasing cooling capabilities."
process_flags = SYNTHETIC
overdose_threshold = 30
addiction_chance = 1
addiction_chance_additional = 20
/datum/reagent/lube/combat/on_mob_add(mob/living/L)
ADD_TRAIT(L, TRAIT_GOTTAGOFAST, id)
/datum/reagent/lube/combat/on_mob_life(mob/living/M)
M.SetSleeping(0)
M.SetDrowsy(0)
var/high_message = pick("You feel your servos whir!", "You feel like you need to go faster.", "You feel like you were just overclocked!")
if(prob(10))
high_message = "0100011101001111010101000101010001000001010001110100111101000110010000010101001101010100!"
if(prob(5))
to_chat(M, "<span class='notice'>[high_message]</span>")
return ..()
/datum/reagent/lube/combat/on_mob_delete(mob/living/M)
REMOVE_TRAIT(M, TRAIT_GOTTAGOFAST, id)
..()
/datum/reagent/lube/combat/overdose_process(mob/living/M, severity)
var/list/overdose_info = ..()
var/effect = overdose_info[REAGENT_OVERDOSE_EFFECT]
var/update_flags = overdose_info[REAGENT_OVERDOSE_FLAGS]
if(prob(20))
M.emote("ping")
if(prob(33))
M.visible_message("<span class='danger'>[M]'s hands flip out and flail everywhere!</span>")
var/obj/item/I = M.get_active_hand()
if(I)
M.drop_item()
update_flags |= M.adjustFireLoss(5, FALSE)
update_flags |= M.adjustBrainLoss(3, FALSE)
return list(effect, update_flags)
#undef DRAWBACK_CHANCE_MODIFIER
#undef CONSTANT_DOSE_SAFE_LIMIT
#undef CONSTANT_DOSE_DEATH_LIMIT
@@ -73,26 +73,63 @@
var/list/overdose_info = ..()
var/effect = overdose_info[REAGENT_OVERDOSE_EFFECT]
var/update_flags = overdose_info[REAGENT_OVERDOSE_FLAGS]
var/is_robot = (process_flags & SYNTHETIC) > 0
if(severity == 1)
if(effect <= 1)
M.visible_message("<span class='warning'>[M] suddenly and violently vomits!</span>")
M.fakevomit(no_text = 1)
else if(effect <= 3)
M.emote(pick("groan","moan"))
if(effect <= 8)
update_flags |= M.adjustToxLoss(1, FALSE)
else if(severity == 2)
if(effect <= 2)
M.visible_message("<span class='warning'>[M] suddenly and violently vomits!</span>")
M.fakevomit(no_text = 1)
else if(effect <= 5)
M.visible_message("<span class='warning'>[M] staggers and drools, [M.p_their()] eyes bloodshot!</span>")
M.Dizzy(16 SECONDS)
M.Weaken(8 SECONDS)
if(effect <= 15)
update_flags |= M.adjustToxLoss(1, FALSE)
if(!is_robot)
if(effect <= 1)
M.visible_message("<span class='warning'>[M] suddenly and violently vomits!</span>")
M.fakevomit(no_text = TRUE)
else if(effect <= 3)
M.emote(pick("groan", "moan"))
if(effect <= 8)
update_flags |= M.adjustToxLoss(1, FALSE)
else
if(effect <= 1)
M.visible_message("<span class='warning'>[M] suddenly jitters for a moment.</span>")
M.AdjustJitter(2 SECONDS)
else if(effect <= 3)
M.emote("shudder")
if(effect <= 8)
update_flags |= M.adjustFireLoss(1, FALSE)
to_chat(M, "<span class='warning'>Your internals start to overheat!</span>")
return list(effect, update_flags)
if(severity == 2)
if(!is_robot)
if(effect <= 2)
M.visible_message("<span class='warning'>[M] suddenly and violently vomits!</span>")
M.fakevomit(no_text = TRUE)
else if(effect <= 5)
M.visible_message("<span class='warning'>[M] staggers and drools, [M.p_their()] eyes bloodshot!</span>")
M.Dizzy(16 SECONDS)
M.Weaken(8 SECONDS)
if(effect <= 15)
update_flags |= M.adjustToxLoss(1, FALSE)
else
if(effect <= 2)
M.visible_message("<span class='warning'>[M] suddenly jitters for a moment.</span>")
M.AdjustJitter(2 SECONDS)
else if(effect <= 5)
M.visible_message("<span class='warning'>[M] staggers and seizes up!</span>")
M.Dizzy(16 SECONDS)
M.Weaken(8 SECONDS)
if(effect <= 15)
update_flags |= M.adjustFireLoss(1, FALSE)
to_chat(M, "<span class='warning'>Your internals start to overheat!</span>")
return list(effect, update_flags)
/datum/reagent/medicine/synaptizine/recal
name = "Recal"
id = "recal"
description = "An oily insulating liquid that passively regulates electrical activity on sensitive electronic components, allowing them to recover from decalibrating events faster. \
Overdosing will cause under-voltage errors and hamper component heat dissipation, potentially causing heat damage."
reagent_state = LIQUID
color = "#85845d"
overdose_threshold = 40
harmless = FALSE
taste_description = "mineral oil and toothpaste"
process_flags = SYNTHETIC
/datum/reagent/medicine/mitocholide
name = "Mitocholide"
id = "mitocholide"
@@ -426,14 +463,15 @@
harmless = FALSE
taste_description = "health"
/datum/reagent/medicine/omnizine/on_mob_life(mob/living/M)
/datum/reagent/medicine/omnizine/on_mob_life(mob/living/carbon/human/H)
var/update_flags = STATUS_UPDATE_NONE
update_flags |= M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
var/is_robot = ((process_flags & SYNTHETIC) > 0)
update_flags |= H.adjustToxLoss(-1 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= H.adjustOxyLoss(-1 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= H.adjustBruteLoss(-2 * REAGENTS_EFFECT_MULTIPLIER, FALSE, robotic = is_robot)
update_flags |= H.adjustFireLoss(-2 * REAGENTS_EFFECT_MULTIPLIER, FALSE, robotic = is_robot)
if(prob(50))
M.AdjustLoseBreath(-2 SECONDS)
H.AdjustLoseBreath(-2 SECONDS)
return ..() | update_flags
/datum/reagent/medicine/omnizine/overdose_process(mob/living/M, severity)
@@ -481,6 +519,13 @@
addiction_chance_additional = 100
addiction_threshold = 0
// Used in the IPC supercharge implant - because IPCs deserve the little bit of healing too.
/datum/reagent/medicine/omnizine/no_addict/synthetic
name = "Smart Metal"
id = "synthetic_omnizine_no_addiction"
description = "An exotic liquid metal alloy that flows into cracks, fractures, and other surface imperfections before solidifying to patch up damaged components."
process_flags = SYNTHETIC
/datum/reagent/medicine/calomel
name = "Calomel"
id = "calomel"
@@ -1185,6 +1230,36 @@
/datum/reagent/medicine/stimulative_agent/changeling/on_mob_delete(mob/living/L)
return
// IPC Stimulative Agent, for the Supercharge Biochip.
/datum/reagent/medicine/stimulative_agent/surge_plus
name = "Surge Plus"
id = "surge_plus"
description = "A high quality, low-viscocity gel that both supercharges processors and massively increases the efficincy of synthetic locomotive systems, allowing the user to run faster whilst also clearing stuns. \
If overdosed, it will cause short-circuits that will inflict damage and reduce locomotive efficiancy gains."
reagent_state = LIQUID
color = "#28b581"
process_flags = SYNTHETIC
taste_description = "silicon"
/datum/reagent/medicine/stimulative_agent/surge_plus/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
update_flags |= ..()
if(prob(5))
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like the world is moving in slow motion.")
if(prob(10))
high_message = "0100011101001111010101000101010001000001010001110100111101000110010000010101001101010100!" // "GOTTAGOFAST" in binary.
to_chat(M, "<span class='notice'>[high_message]</span>")
return ..() | update_flags
/datum/reagent/medicine/stimulative_agent/surge_plus/overdose_process(mob/living/M, severity)
var/update_flags = STATUS_UPDATE_NONE
if(prob(33))
M.Stuttering(5 SECONDS)
to_chat(M, pick("<span class='warning'>Your circuits overheat!</span>", "<span class='warning'>Electrical arcs discharge inside you!</span>"))
update_flags |= M.adjustStaminaLoss(2.5 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustFireLoss(5 * REAGENTS_EFFECT_MULTIPLIER, FALSE) // 5 to compensate for no breathloss. Not like anyone will ever OD on this anyway.
return list(0, update_flags)
/datum/reagent/medicine/insulin
name = "Insulin"
id = "insulin"