mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 08:03:43 +01:00
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:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user