Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into tggenetics
This commit is contained in:
@@ -303,6 +303,8 @@
|
||||
if(R.overdose_threshold)
|
||||
if(R.volume > R.overdose_threshold && !R.overdosed)
|
||||
R.overdosed = 1
|
||||
var/turf/CT = get_turf(C)
|
||||
log_reagent("OVERDOSE START: [key_name(C)] at [AREACOORD(CT)] started overdosing on [R.volume] units of [R].")
|
||||
need_mob_update += R.overdose_start(C)
|
||||
if(R.addiction_threshold)
|
||||
if(R.volume > R.addiction_threshold && !is_type_in_list(R, cached_addictions))
|
||||
@@ -340,13 +342,16 @@
|
||||
addiction_tick++
|
||||
if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates.
|
||||
C.updatehealth()
|
||||
C.update_canmove()
|
||||
C.update_mobility()
|
||||
C.update_stamina()
|
||||
update_total()
|
||||
|
||||
/datum/reagents/proc/remove_addiction(datum/reagent/R)
|
||||
to_chat(my_atom, "<span class='notice'>You feel like you've gotten over your need for [R.name].</span>")
|
||||
SEND_SIGNAL(my_atom, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose")
|
||||
if(ismob(my_atom))
|
||||
var/turf/T = get_turf(my_atom)
|
||||
log_reagent("OVERDOSE STOP: [key_name(my_atom)] at [AREACOORD(T)] got over their need for [R].")
|
||||
addiction_list.Remove(R)
|
||||
qdel(R)
|
||||
|
||||
|
||||
@@ -78,7 +78,6 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
current_cycle++
|
||||
if(holder)
|
||||
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
|
||||
return
|
||||
|
||||
//called when a mob processes chems when dead.
|
||||
/datum/reagent/proc/on_mob_dead(mob/living/carbon/M)
|
||||
@@ -87,15 +86,15 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
current_cycle++
|
||||
if(holder)
|
||||
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
|
||||
return
|
||||
|
||||
// Called when this reagent is first added to a mob
|
||||
/datum/reagent/proc/on_mob_add(mob/living/L, amount)
|
||||
if(!iscarbon(L))
|
||||
return
|
||||
var/mob/living/carbon/M = L
|
||||
var/turf/T = get_turf(M)
|
||||
log_reagent("MOB ADD: on_mob_add(): [key_name(M)] at [AREACOORD(T)] - [volume] of [type] with [purity] purity")
|
||||
if (purity == 1)
|
||||
log_game("CHEM: [L] ckey: [L.key] has ingested [volume]u of [type]")
|
||||
return
|
||||
if(cached_purity == 1)
|
||||
cached_purity = purity
|
||||
@@ -112,20 +111,18 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
R.name = name//Negative effects are hidden
|
||||
if(R.chemical_flags & REAGENT_INVISIBLE)
|
||||
R.chemical_flags |= (REAGENT_INVISIBLE)
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [inverse_chem]")
|
||||
return
|
||||
log_reagent("MOB ADD: on_mob_add() (impure): merged [volume] of [inverse_chem]")
|
||||
else if (impure_chem)
|
||||
var/impureVol = amount * (1 - purity) //turns impure ratio into impure chem
|
||||
if(!(chemical_flags & REAGENT_SPLITRETAINVOL))
|
||||
M.reagents.remove_reagent(type, (impureVol), FALSE)
|
||||
M.reagents.add_reagent(impure_chem, impureVol, FALSE, other_purity = 1-cached_purity)
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume - impureVol]u of [type]")
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [impure_chem]")
|
||||
return
|
||||
log_reagent("MOB ADD: on_mob_add() (mixed purity): merged [volume - impureVol] of [type] and [volume] of [impure_chem]")
|
||||
|
||||
// Called when this reagent is removed while inside a mob
|
||||
/datum/reagent/proc/on_mob_delete(mob/living/L)
|
||||
return
|
||||
var/turf/T = get_turf(L)
|
||||
log_reagent("MOB DELETE: on_mob_delete: [key_name(L)] at [AREACOORD(T)] - [type]")
|
||||
|
||||
// Called when this reagent first starts being metabolized by a liver
|
||||
/datum/reagent/proc/on_mob_metabolize(mob/living/L)
|
||||
@@ -146,8 +143,9 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
/datum/reagent/proc/on_merge(data, amount, mob/living/carbon/M, purity)
|
||||
if(!iscarbon(M))
|
||||
return
|
||||
var/turf/T = get_turf(M)
|
||||
log_reagent("MOB ADD: on_merge(): [key_name(M)] at [AREACOORD(T)] - [volume] of [type] with [purity] purity")
|
||||
if (purity == 1)
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [type]")
|
||||
return
|
||||
cached_purity = purity //purity SHOULD be precalculated from the add_reagent, update cache.
|
||||
if (purity < 0)
|
||||
@@ -163,16 +161,13 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
R.name = name//Negative effects are hidden
|
||||
if(R.chemical_flags & REAGENT_INVISIBLE)
|
||||
R.chemical_flags |= (REAGENT_INVISIBLE)
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume]u of [inverse_chem]")
|
||||
return
|
||||
log_reagent("MOB ADD: on_merge() (impure): merged [volume] of [inverse_chem]")
|
||||
else if (impure_chem) //SPLIT
|
||||
var/impureVol = amount * (1 - purity)
|
||||
if(!(chemical_flags & REAGENT_SPLITRETAINVOL))
|
||||
M.reagents.remove_reagent(type, impureVol, FALSE)
|
||||
M.reagents.add_reagent(impure_chem, impureVol, FALSE, other_purity = 1-cached_purity)
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume - impureVol]u of [type]")
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume]u of [impure_chem]")
|
||||
return
|
||||
log_reagent("MOB ADD: on_merge() (mixed purity): merged [volume - impureVol] of [type] and [volume] of [impure_chem]")
|
||||
|
||||
/datum/reagent/proc/on_update(atom/A)
|
||||
return
|
||||
@@ -188,31 +183,26 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
/datum/reagent/proc/overdose_start(mob/living/M)
|
||||
to_chat(M, "<span class='userdanger'>You feel like you took too much of [name]!</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name)
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage1(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_light, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='notice'>You feel like having some [name] right about now.</span>")
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage2(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_medium, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='notice'>You feel like you need [name]. You just can't get enough.</span>")
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage3(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_severe, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='danger'>You have an intense craving for [name].</span>")
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage4(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_critical, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='boldannounce'>You're not feeling good at all! You really need some [name].</span>")
|
||||
return
|
||||
|
||||
/proc/pretty_string_from_reagent_list(list/reagent_list)
|
||||
//Convert reagent list to a printable string for logging etc
|
||||
@@ -221,3 +211,13 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
rs += "[R.name], [R.volume]"
|
||||
|
||||
return rs.Join(" | ")
|
||||
|
||||
//For easy bloodsucker disgusting and blood removal
|
||||
/datum/reagent/proc/disgust_bloodsucker(mob/living/carbon/C, disgust, blood_change, blood_puke = TRUE, force)
|
||||
if(isvamp(C))
|
||||
var/datum/antagonist/bloodsucker/bloodsuckerdatum = C.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
|
||||
if(disgust)
|
||||
bloodsuckerdatum.handle_eat_human_food(disgust, blood_puke, force)
|
||||
if(blood_change)
|
||||
bloodsuckerdatum.AddBloodVolume(blood_change)
|
||||
|
||||
|
||||
@@ -579,8 +579,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
value = 1.3
|
||||
|
||||
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C)
|
||||
if((HAS_TRAIT(C, TRAIT_NOMARROW)))
|
||||
return
|
||||
if(isvamp(C))
|
||||
disgust_bloodsucker(FALSE, 1) //Bloodsuckers get SOME blood from it, for style reasons.
|
||||
if(C.blood_volume < (BLOOD_VOLUME_NORMAL*C.blood_ratio))
|
||||
C.blood_volume = min((BLOOD_VOLUME_NORMAL*C.blood_ratio), C.blood_volume + 3) //Bloody Mary quickly restores blood loss.
|
||||
..()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/datum/reagent/drug/space_drugs/on_mob_life(mob/living/carbon/M)
|
||||
M.set_drugginess(15)
|
||||
if(isturf(M.loc) && !isspaceturf(M.loc))
|
||||
if(M.canmove)
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE))
|
||||
if(prob(10))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(7))
|
||||
@@ -52,8 +52,7 @@
|
||||
var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.")
|
||||
to_chat(M, "<span class='notice'>[smoke_message]</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smoked", /datum/mood_event/smoked, name)
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustAllImmobility(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
M.adjustStaminaLoss(-0.5*REM, 0)
|
||||
..()
|
||||
@@ -72,8 +71,7 @@
|
||||
if(prob(5))
|
||||
var/high_message = pick("You feel jittery.", "You feel like you gotta go fast.", "You feel like you need to step it up.")
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustAllImmobility(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
..()
|
||||
. = 1
|
||||
@@ -182,8 +180,7 @@
|
||||
var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.")
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
M.AdjustStun(-40, 0)
|
||||
M.AdjustKnockdown(-40, 0)
|
||||
M.AdjustAllImmobility(-40, 0)
|
||||
M.AdjustUnconscious(-40, 0)
|
||||
M.adjustStaminaLoss(-7.5 * REM, 0)
|
||||
if(jitter)
|
||||
@@ -197,7 +194,7 @@
|
||||
. = 1
|
||||
|
||||
/datum/reagent/drug/methamphetamine/overdose_process(mob/living/M)
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i in 1 to 4)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(20))
|
||||
@@ -224,7 +221,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/methamphetamine/addiction_act_stage3(mob/living/M)
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i = 0, i < 4, i++)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
M.Jitter(15)
|
||||
@@ -234,7 +231,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/methamphetamine/addiction_act_stage4(mob/living/carbon/human/M)
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i = 0, i < 8, i++)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
M.Jitter(20)
|
||||
@@ -286,7 +283,7 @@
|
||||
M.adjustStaminaLoss(-5, 0)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4)
|
||||
M.hallucination += 5
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
..()
|
||||
@@ -294,7 +291,7 @@
|
||||
|
||||
/datum/reagent/drug/bath_salts/overdose_process(mob/living/M)
|
||||
M.hallucination += 5
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i in 1 to 8)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(20))
|
||||
@@ -305,7 +302,7 @@
|
||||
|
||||
/datum/reagent/drug/bath_salts/addiction_act_stage1(mob/living/M)
|
||||
M.hallucination += 10
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i = 0, i < 8, i++)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
M.Jitter(5)
|
||||
@@ -316,7 +313,7 @@
|
||||
|
||||
/datum/reagent/drug/bath_salts/addiction_act_stage2(mob/living/M)
|
||||
M.hallucination += 20
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i = 0, i < 8, i++)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
M.Jitter(10)
|
||||
@@ -328,7 +325,7 @@
|
||||
|
||||
/datum/reagent/drug/bath_salts/addiction_act_stage3(mob/living/M)
|
||||
M.hallucination += 30
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i = 0, i < 12, i++)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
M.Jitter(15)
|
||||
@@ -340,7 +337,7 @@
|
||||
|
||||
/datum/reagent/drug/bath_salts/addiction_act_stage4(mob/living/carbon/human/M)
|
||||
M.hallucination += 30
|
||||
if(M.canmove && !ismovableatom(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
|
||||
for(var/i = 0, i < 16, i++)
|
||||
step(M, pick(GLOB.cardinals))
|
||||
M.Jitter(50)
|
||||
|
||||
@@ -323,7 +323,7 @@
|
||||
victim.blind_eyes(2)
|
||||
victim.confused = max(M.confused, 3)
|
||||
victim.damageoverlaytemp = 60
|
||||
victim.Knockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 3, 15))
|
||||
victim.DefaultCombatKnockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 3, 15))
|
||||
return
|
||||
else if ( eyes_covered ) // Eye cover is better than mouth cover
|
||||
victim.blur_eyes(3)
|
||||
@@ -336,7 +336,7 @@
|
||||
victim.blind_eyes(3)
|
||||
victim.confused = max(M.confused, 6)
|
||||
victim.damageoverlaytemp = 75
|
||||
victim.Knockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 5, 25))
|
||||
victim.DefaultCombatKnockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 5, 25))
|
||||
victim.update_damage_hud()
|
||||
|
||||
/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/carbon/M)
|
||||
|
||||
@@ -46,8 +46,7 @@
|
||||
REMOVE_TRAITS_NOT_IN(M, list(SPECIES_TRAIT, ROUNDSTART_TRAIT, ORGAN_TRAIT))
|
||||
M.set_blurriness(0)
|
||||
M.set_blindness(0)
|
||||
M.SetKnockdown(0, 0)
|
||||
M.SetStun(0, 0)
|
||||
M.SetAllImmobility(0, 0)
|
||||
M.SetUnconscious(0, 0)
|
||||
M.silent = FALSE
|
||||
M.dizziness = 0
|
||||
@@ -87,8 +86,7 @@
|
||||
|
||||
/datum/reagent/medicine/synaptizine/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness = max(M.drowsyness-5, 0)
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustAllImmobility(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
if(holder.has_reagent(/datum/reagent/toxin/mindbreaker))
|
||||
holder.remove_reagent(/datum/reagent/toxin/mindbreaker, 5)
|
||||
@@ -595,7 +593,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
|
||||
/datum/reagent/medicine/salbutamol
|
||||
name = "Salbutamol"
|
||||
description = "Rapidly restores oxygen deprivation as well as preventing more of it to an extent."
|
||||
description = "Rapidly restores oxygen deprivation as well as preventing more of it to an extent. Causes jittering."
|
||||
reagent_state = LIQUID
|
||||
color = "#00FFFF"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
@@ -605,6 +603,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
M.adjustOxyLoss(-3*REM, 0)
|
||||
if(M.losebreath >= 4)
|
||||
M.losebreath -= 2
|
||||
M.Jitter(5)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -636,10 +635,9 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 12
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M)
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
M.adjustStaminaLoss(-4.5*REM, 0)
|
||||
M.AdjustAllImmobility(-20, FALSE)
|
||||
M.AdjustUnconscious(-20, FALSE)
|
||||
M.adjustStaminaLoss(-4.5*REM, FALSE)
|
||||
M.Jitter(10)
|
||||
if(prob(50))
|
||||
M.confused = max(M.confused, 1)
|
||||
@@ -847,8 +845,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
M.adjustStaminaLoss(-0.5*REM, 0)
|
||||
. = 1
|
||||
if(prob(20))
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustAllImmobility(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
..()
|
||||
|
||||
@@ -1002,21 +999,20 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
|
||||
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/carbon/M)
|
||||
if(M.health < 50 && M.health > 0)
|
||||
M.adjustOxyLoss(-1*REM, 0)
|
||||
M.adjustToxLoss(-1*REM, 0)
|
||||
M.adjustBruteLoss(-1*REM, 0)
|
||||
M.adjustFireLoss(-1*REM, 0)
|
||||
M.AdjustStun(-60, 0)
|
||||
M.AdjustKnockdown(-60, 0)
|
||||
M.AdjustUnconscious(-60, 0)
|
||||
M.adjustStaminaLoss(-20*REM, 0)
|
||||
M.adjustOxyLoss(-1*REM, FALSE)
|
||||
M.adjustToxLoss(-1*REM, FALSE)
|
||||
M.adjustBruteLoss(-1*REM, FALSE)
|
||||
M.adjustFireLoss(-1*REM, FALSE)
|
||||
M.AdjustAllImmobility(-60, FALSE)
|
||||
M.AdjustUnconscious(-60, FALSE)
|
||||
M.adjustStaminaLoss(-20*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/stimulants/overdose_process(mob/living/M)
|
||||
if(prob(33))
|
||||
M.adjustStaminaLoss(2.5*REM, 0)
|
||||
M.adjustToxLoss(1*REM, 0)
|
||||
M.adjustStaminaLoss(2.5*REM, FALSE)
|
||||
M.adjustToxLoss(1*REM, FALSE)
|
||||
M.losebreath++
|
||||
. = 1
|
||||
..()
|
||||
@@ -1045,12 +1041,12 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 5
|
||||
|
||||
/datum/reagent/medicine/bicaridine/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-2*REM, 0)
|
||||
M.adjustBruteLoss(-2*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/bicaridine/overdose_process(mob/living/M)
|
||||
M.adjustBruteLoss(4*REM, 0)
|
||||
M.adjustBruteLoss(4*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -1063,12 +1059,12 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 9.7
|
||||
|
||||
/datum/reagent/medicine/dexalin/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOxyLoss(-2*REM, 0)
|
||||
M.adjustOxyLoss(-2*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/dexalin/overdose_process(mob/living/M)
|
||||
M.adjustOxyLoss(4*REM, 0)
|
||||
M.adjustOxyLoss(4*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -1081,12 +1077,12 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 9
|
||||
|
||||
/datum/reagent/medicine/kelotane/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustFireLoss(-2*REM, 0)
|
||||
M.adjustFireLoss(-2*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/kelotane/overdose_process(mob/living/M)
|
||||
M.adjustFireLoss(4*REM, 0)
|
||||
M.adjustFireLoss(4*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -1100,14 +1096,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 10
|
||||
|
||||
/datum/reagent/medicine/antitoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustToxLoss(-2*REM, 0)
|
||||
M.adjustToxLoss(-2*REM, FALSE)
|
||||
for(var/datum/reagent/toxin/R in M.reagents.reagent_list)
|
||||
M.reagents.remove_reagent(R.type,1)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/antitoxin/overdose_process(mob/living/M)
|
||||
M.adjustToxLoss(4*REM, 0) // End result is 2 toxin loss taken, because it heals 2 and then removes 4.
|
||||
M.adjustToxLoss(4*REM, FALSE) // End result is 2 toxin loss taken, because it heals 2 and then removes 4.
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -1133,18 +1129,18 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
|
||||
/datum/reagent/medicine/tricordrazine/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(80))
|
||||
M.adjustBruteLoss(-1*REM, 0)
|
||||
M.adjustFireLoss(-1*REM, 0)
|
||||
M.adjustOxyLoss(-1*REM, 0)
|
||||
M.adjustToxLoss(-1*REM, 0)
|
||||
M.adjustBruteLoss(-1*REM, FALSE)
|
||||
M.adjustFireLoss(-1*REM, FALSE)
|
||||
M.adjustOxyLoss(-1*REM, FALSE)
|
||||
M.adjustToxLoss(-1*REM, FALSE)
|
||||
. = 1
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/tricordrazine/overdose_process(mob/living/M)
|
||||
M.adjustToxLoss(2*REM, 0)
|
||||
M.adjustOxyLoss(2*REM, 0)
|
||||
M.adjustBruteLoss(2*REM, 0)
|
||||
M.adjustFireLoss(2*REM, 0)
|
||||
M.adjustToxLoss(2*REM, FALSE)
|
||||
M.adjustOxyLoss(2*REM, FALSE)
|
||||
M.adjustBruteLoss(2*REM, FALSE)
|
||||
M.adjustFireLoss(2*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -1156,9 +1152,9 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
taste_description = "jelly"
|
||||
|
||||
/datum/reagent/medicine/regen_jelly/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-1.5*REM, 0)
|
||||
M.adjustFireLoss(-1.5*REM, 0)
|
||||
M.adjustOxyLoss(-1.5*REM, 0)
|
||||
M.adjustBruteLoss(-1.5*REM, FALSE)
|
||||
M.adjustFireLoss(-1.5*REM, FALSE)
|
||||
M.adjustOxyLoss(-1.5*REM, FALSE)
|
||||
M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs
|
||||
. = 1
|
||||
..()
|
||||
@@ -1171,13 +1167,13 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 11
|
||||
|
||||
/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-5*REM, 0) //A ton of healing - this is a 50 telecrystal investment.
|
||||
M.adjustFireLoss(-5*REM, 0)
|
||||
M.adjustOxyLoss(-15, 0)
|
||||
M.adjustToxLoss(-5*REM, 0)
|
||||
M.adjustBruteLoss(-5*REM, FALSE) //A ton of healing - this is a 50 telecrystal investment.
|
||||
M.adjustFireLoss(-5*REM, FALSE)
|
||||
M.adjustOxyLoss(-15, FALSE)
|
||||
M.adjustToxLoss(-5*REM, FALSE)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -15*REM)
|
||||
M.adjustCloneLoss(-3*REM, 0)
|
||||
M.adjustStaminaLoss(-25*REM,0)
|
||||
M.adjustCloneLoss(-3*REM, FALSE)
|
||||
M.adjustStaminaLoss(-25*REM,FALSE)
|
||||
if(M.blood_volume < (BLOOD_VOLUME_NORMAL*M.blood_ratio))
|
||||
M.blood_volume += 40 // blood fall out man bad
|
||||
..()
|
||||
@@ -1191,13 +1187,13 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 11
|
||||
|
||||
/datum/reagent/medicine/lesser_syndicate_nanites/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-3*REM, 0) // hidden gold shh
|
||||
M.adjustFireLoss(-3*REM, 0)
|
||||
M.adjustOxyLoss(-15, 0)
|
||||
M.adjustToxLoss(-3*REM, 0)
|
||||
M.adjustBruteLoss(-3*REM, FALSE) // hidden gold shh
|
||||
M.adjustFireLoss(-3*REM, FALSE)
|
||||
M.adjustOxyLoss(-15, FALSE)
|
||||
M.adjustToxLoss(-3*REM, FALSE)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -15*REM)
|
||||
M.adjustCloneLoss(-3*REM, 0)
|
||||
M.adjustStaminaLoss(-20*REM,0)
|
||||
M.adjustCloneLoss(-3*REM, FALSE)
|
||||
M.adjustStaminaLoss(-20*REM,FALSE)
|
||||
if(M.blood_volume < (BLOOD_VOLUME_NORMAL*M.blood_ratio))
|
||||
M.blood_volume += 20 // blood fall out man bad
|
||||
..()
|
||||
@@ -1214,17 +1210,17 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 11.8
|
||||
|
||||
/datum/reagent/medicine/neo_jelly/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-1.5*REM, 0)
|
||||
M.adjustFireLoss(-1.5*REM, 0)
|
||||
M.adjustOxyLoss(-1.5*REM, 0)
|
||||
M.adjustBruteLoss(-1.5*REM, FALSE)
|
||||
M.adjustFireLoss(-1.5*REM, FALSE)
|
||||
M.adjustOxyLoss(-1.5*REM, FALSE)
|
||||
M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs
|
||||
. = 1
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/neo_jelly/overdose_process(mob/living/M)
|
||||
M.adjustOxyLoss(2.6*REM, 0)
|
||||
M.adjustBruteLoss(3.5*REM, 0)
|
||||
M.adjustFireLoss(3.5*REM, 0)
|
||||
M.adjustOxyLoss(2.6*REM, FALSE)
|
||||
M.adjustBruteLoss(3.5*REM, FALSE)
|
||||
M.adjustFireLoss(3.5*REM, FALSE)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -1236,13 +1232,13 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
pH = 11
|
||||
|
||||
/datum/reagent/medicine/earthsblood/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-3 * REM, 0)
|
||||
M.adjustFireLoss(-3 * REM, 0)
|
||||
M.adjustOxyLoss(-15 * REM, 0)
|
||||
M.adjustToxLoss(-3 * REM, 0, TRUE) //Heals TOXINLOVERS
|
||||
M.adjustBruteLoss(-3 * REM, FALSE)
|
||||
M.adjustFireLoss(-3 * REM, FALSE)
|
||||
M.adjustOxyLoss(-15 * REM, FALSE)
|
||||
M.adjustToxLoss(-3 * REM, FALSE, TRUE) //Heals TOXINLOVERS
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REM, 150) //This does, after all, come from ambrosia, and the most powerful ambrosia in existence, at that!
|
||||
M.adjustCloneLoss(-1 * REM, 0)
|
||||
M.adjustStaminaLoss(-13 * REM, 0)
|
||||
M.adjustCloneLoss(-1 * REM, FALSE)
|
||||
M.adjustStaminaLoss(-13 * REM, FALSE)
|
||||
M.jitteriness = min(max(0, M.jitteriness + 3), 30)
|
||||
M.druggy = min(max(0, M.druggy + 10), 15) //See above
|
||||
..()
|
||||
@@ -1250,7 +1246,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
|
||||
/datum/reagent/medicine/earthsblood/overdose_process(mob/living/M)
|
||||
M.hallucination = min(max(0, M.hallucination + 5), 60)
|
||||
M.adjustToxLoss(8 * REM, 0, TRUE) //Hurts TOXINLOVERS
|
||||
M.adjustToxLoss(8 * REM, FALSE, TRUE) //Hurts TOXINLOVERS
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -1305,8 +1301,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/M as mob)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustAllImmobility(-20, 0)
|
||||
M.AdjustSleeping(-20, 0)
|
||||
M.adjustStaminaLoss(-30, 0)
|
||||
..()
|
||||
@@ -1389,8 +1384,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
/datum/reagent/medicine/modafinil/on_mob_life(mob/living/carbon/M)
|
||||
if(!overdosed) // We do not want any effects on OD
|
||||
overdose_threshold = overdose_threshold + rand(-10,10)/10 // for extra fun
|
||||
M.AdjustStun(-5, 0)
|
||||
M.AdjustKnockdown(-5, 0)
|
||||
M.AdjustAllImmobility(-5, 0)
|
||||
M.AdjustUnconscious(-5, 0)
|
||||
M.adjustStaminaLoss(-1*REM, 0)
|
||||
M.Jitter(1)
|
||||
@@ -1422,7 +1416,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
if(prob(20))
|
||||
to_chat(M, "You have a sudden fit!")
|
||||
M.emote("moan")
|
||||
M.Knockdown(20, 1, 0) // you should be in a bad spot at this point unless epipen has been used
|
||||
M.DefaultCombatKnockdown(20, 1, 0) // you should be in a bad spot at this point unless epipen has been used
|
||||
if(81)
|
||||
to_chat(M, "You feel too exhausted to continue!") // at this point you will eventually die unless you get charcoal
|
||||
M.adjustOxyLoss(0.1*REM, 0)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
shot_glass_icon_state = "shotglassred"
|
||||
pH = 7.4
|
||||
|
||||
/datum/reagent/blood/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
|
||||
/datum/reagent/blood/reaction_mob(mob/living/L, method = TOUCH, reac_volume)
|
||||
if(data && data["viruses"])
|
||||
for(var/thing in data["viruses"])
|
||||
var/datum/disease/D = thing
|
||||
@@ -26,6 +26,18 @@
|
||||
else //ingest, patch or inject
|
||||
L.ForceContractDisease(D)
|
||||
|
||||
if(data["blood_type"] == "SY")
|
||||
//Synthblood is very disgusting to bloodsuckers. They will puke it out to expel it, unless they have masquarade on
|
||||
switch(reac_volume)
|
||||
if(0 to 3)
|
||||
disgust_bloodsucker(L, 3, FALSE, FALSE, FALSE)
|
||||
if(3 to 6)
|
||||
//If theres more than 8 units, they will start expelling it, even if they are masquarading.
|
||||
disgust_bloodsucker(L, 5, FALSE, FALSE, TRUE)
|
||||
else
|
||||
//If they have too much in them, they will also puke out their blood.
|
||||
disgust_bloodsucker(L, 7, -5, TRUE, TRUE)
|
||||
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
var/blood_id = C.get_blood_id()
|
||||
@@ -37,10 +49,8 @@
|
||||
L.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
||||
|
||||
/datum/reagent/blood/on_mob_life(mob/living/carbon/C) //Because lethals are preferred over stamina. damnifino.
|
||||
if((HAS_TRAIT(C, TRAIT_NOMARROW)))
|
||||
return //We dont want vampires getting toxed from blood
|
||||
var/blood_id = C.get_blood_id()
|
||||
if((blood_id == /datum/reagent/blood || blood_id == /datum/reagent/blood/jellyblood))
|
||||
if((blood_id in GLOB.blood_reagent_types) && !HAS_TRAIT(C, TRAIT_NOMARROW))
|
||||
if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type))) //we only care about bloodtype here because this is where the poisoning should be
|
||||
C.adjustToxLoss(rand(2,8)*REM, TRUE, TRUE) //forced to ensure people don't use it to gain beneficial toxin as slime person
|
||||
..()
|
||||
@@ -117,7 +127,7 @@
|
||||
if(!istype(D, /datum/disease/advance))
|
||||
preserve += D
|
||||
data["viruses"] = preserve
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/blood/proc/get_diseases()
|
||||
. = list()
|
||||
@@ -142,6 +152,13 @@
|
||||
taste_mult = 1.3
|
||||
pH = 4
|
||||
|
||||
/datum/reagent/blood/tomato
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_HUMAN, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
|
||||
name = "Tomato Blood"
|
||||
description = "This highly resembles blood, but it doesnt actually function like it, resembling more ketchup, with a more blood-like consistency."
|
||||
taste_description = "sap" //Like tree sap?
|
||||
pH = 7.45
|
||||
|
||||
/datum/reagent/blood/jellyblood/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(10))
|
||||
if(M.dna?.species?.exotic_bloodtype != "GEL")
|
||||
@@ -374,22 +391,21 @@
|
||||
/datum/reagent/fuel/unholywater/on_mob_life(mob/living/carbon/M)
|
||||
if(iscultist(M))
|
||||
M.drowsyness = max(M.drowsyness-5, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
M.AdjustStun(-40, 0)
|
||||
M.AdjustKnockdown(-40, 0)
|
||||
M.adjustStaminaLoss(-10, 0)
|
||||
M.adjustToxLoss(-2, 0, TRUE)
|
||||
M.adjustOxyLoss(-2, 0)
|
||||
M.adjustBruteLoss(-2, 0)
|
||||
M.adjustFireLoss(-2, 0)
|
||||
M.AdjustUnconscious(-20, FALSE)
|
||||
M.AdjustAllImmobility(-40, FALSE)
|
||||
M.adjustStaminaLoss(-10, FALSE)
|
||||
M.adjustToxLoss(-2, FALSE, TRUE)
|
||||
M.adjustOxyLoss(-2, FALSE)
|
||||
M.adjustBruteLoss(-2, FALSE)
|
||||
M.adjustFireLoss(-2, FALSE)
|
||||
if(ishuman(M) && M.blood_volume < (BLOOD_VOLUME_NORMAL*M.blood_ratio))
|
||||
M.blood_volume += 3
|
||||
else // Will deal about 90 damage when 50 units are thrown
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150)
|
||||
M.adjustToxLoss(2, 0)
|
||||
M.adjustFireLoss(2, 0)
|
||||
M.adjustOxyLoss(2, 0)
|
||||
M.adjustBruteLoss(2, 0)
|
||||
M.adjustToxLoss(2, FALSE)
|
||||
M.adjustFireLoss(2, FALSE)
|
||||
M.adjustOxyLoss(2, FALSE)
|
||||
M.adjustBruteLoss(2, FALSE)
|
||||
holder.remove_reagent(type, 1)
|
||||
return TRUE
|
||||
|
||||
@@ -401,8 +417,8 @@
|
||||
/datum/reagent/hellwater/on_mob_life(mob/living/carbon/M)
|
||||
M.fire_stacks = min(5,M.fire_stacks + 3)
|
||||
M.IgniteMob() //Only problem with igniting people is currently the commonly availible fire suits make you immune to being on fire
|
||||
M.adjustToxLoss(1, 0)
|
||||
M.adjustFireLoss(1, 0) //Hence the other damages... ain't I a bastard?
|
||||
M.adjustToxLoss(1, FALSE)
|
||||
M.adjustFireLoss(1, FALSE) //Hence the other damages... ain't I a bastard?
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 150)
|
||||
holder.remove_reagent(type, 1)
|
||||
pH = 0.1
|
||||
@@ -415,23 +431,23 @@
|
||||
/datum/reagent/fuel/holyoil/on_mob_life(mob/living/carbon/M)
|
||||
if(is_servant_of_ratvar(M))
|
||||
M.drowsyness = max(M.drowsyness-5, 0)
|
||||
M.AdjustUnconscious(-60, 0)
|
||||
M.AdjustStun(-30, 0)
|
||||
M.AdjustKnockdown(-70, 0)
|
||||
M.adjustStaminaLoss(-15, 0)
|
||||
M.adjustToxLoss(-5, 0, TRUE)
|
||||
M.adjustOxyLoss(-3, 0)
|
||||
M.adjustBruteLoss(-3, 0)
|
||||
M.adjustFireLoss(-5, 0)
|
||||
M.AdjustUnconscious(-60, FALSE)
|
||||
M.AdjustAllImmobility(-30, FALSE)
|
||||
M.AdjustKnockdown(-40, FALSE)
|
||||
M.adjustStaminaLoss(-15, FALSE)
|
||||
M.adjustToxLoss(-5, FALSE, TRUE)
|
||||
M.adjustOxyLoss(-3, FALSE)
|
||||
M.adjustBruteLoss(-3, FALSE)
|
||||
M.adjustFireLoss(-5, FALSE)
|
||||
if(iscultist(M))
|
||||
M.AdjustUnconscious(1, 0)
|
||||
M.AdjustStun(10, 0)
|
||||
M.AdjustKnockdown(20, 0)
|
||||
M.adjustStaminaLoss(15, 0)
|
||||
M.AdjustUnconscious(1, FALSE)
|
||||
M.AdjustAllImmobility(10, FALSE)
|
||||
M.AdjustKnockdown(10, FALSE)
|
||||
M.adjustStaminaLoss(15, FALSE)
|
||||
else
|
||||
M.adjustToxLoss(3, 0)
|
||||
M.adjustOxyLoss(2, 0)
|
||||
M.adjustStaminaLoss(10, 0)
|
||||
M.adjustToxLoss(3, FALSE)
|
||||
M.adjustOxyLoss(2, FALSE)
|
||||
M.adjustStaminaLoss(10, FALSE)
|
||||
holder.remove_reagent(type, 1)
|
||||
return TRUE
|
||||
|
||||
@@ -584,7 +600,7 @@
|
||||
return
|
||||
to_chat(H, "<span class='warning'><b>You crumple in agony as your flesh wildly morphs into new forms!</b></span>")
|
||||
H.visible_message("<b>[H]</b> falls to the ground and screams as [H.p_their()] skin bubbles and froths!") //'froths' sounds painful when used with SKIN.
|
||||
H.Knockdown(60)
|
||||
H.DefaultCombatKnockdown(60)
|
||||
addtimer(CALLBACK(src, .proc/mutate, H), 30)
|
||||
return
|
||||
|
||||
@@ -890,7 +906,7 @@
|
||||
taste_mult = 0 // apparently tasteless.
|
||||
|
||||
/datum/reagent/mercury/on_mob_life(mob/living/carbon/M)
|
||||
if(M.canmove && !isspaceturf(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !isspaceturf(M.loc))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch","drool","moan"))
|
||||
@@ -970,7 +986,7 @@
|
||||
pH = 11.3
|
||||
|
||||
/datum/reagent/lithium/on_mob_life(mob/living/carbon/M)
|
||||
if(M.canmove && !isspaceturf(M.loc))
|
||||
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !isspaceturf(M.loc))
|
||||
step(M, pick(GLOB.cardinals))
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch","drool","moan"))
|
||||
|
||||
@@ -227,8 +227,7 @@
|
||||
/datum/reagent/teslium/energized_jelly/on_mob_life(mob/living/carbon/M)
|
||||
if(isjellyperson(M))
|
||||
shock_timer = 0 //immune to shocks
|
||||
M.AdjustStun(-40, 0)
|
||||
M.AdjustKnockdown(-40, 0)
|
||||
M.AdjustAllImmobility(-40, 0)
|
||||
M.AdjustUnconscious(-40, 0)
|
||||
M.adjustStaminaLoss(-2, 0)
|
||||
if(isluminescent(M))
|
||||
|
||||
@@ -539,7 +539,7 @@
|
||||
var/picked_option = rand(1,3)
|
||||
switch(picked_option)
|
||||
if(1)
|
||||
C.Knockdown(60, 0)
|
||||
C.DefaultCombatKnockdown(60, 0)
|
||||
. = TRUE
|
||||
if(2)
|
||||
C.losebreath += 10
|
||||
@@ -678,7 +678,7 @@
|
||||
|
||||
/datum/reagent/toxin/curare/on_mob_life(mob/living/carbon/M)
|
||||
if(current_cycle >= 11)
|
||||
M.Knockdown(60, 0)
|
||||
M.DefaultCombatKnockdown(60, 0)
|
||||
M.adjustOxyLoss(1*REM, 0)
|
||||
. = 1
|
||||
..()
|
||||
@@ -843,7 +843,7 @@
|
||||
holder.remove_reagent(type, actual_metaboliztion_rate * M.metabolism_efficiency)
|
||||
M.adjustToxLoss(actual_toxpwr*REM, 0)
|
||||
if(prob(10))
|
||||
M.Knockdown(20, 0)
|
||||
M.DefaultCombatKnockdown(20, 0)
|
||||
. = 1
|
||||
..()
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(round(multiplier/48,1),get_turf(holder.my_atom)))
|
||||
if(iscultist(C))
|
||||
to_chat(C, "<span class='userdanger'>The divine explosion sears you!</span>")
|
||||
C.Knockdown(40)
|
||||
C.DefaultCombatKnockdown(40)
|
||||
C.adjust_fire_stacks(5)
|
||||
C.IgniteMob()
|
||||
..(holder, multiplier, T)
|
||||
@@ -252,7 +252,7 @@
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(range, location))
|
||||
if(C.flash_act())
|
||||
if(get_dist(C, location) < 4)
|
||||
C.Knockdown(60)
|
||||
C.DefaultCombatKnockdown(60)
|
||||
else
|
||||
C.Stun(100)
|
||||
holder.remove_reagent(/datum/reagent/flash_powder, multiplier*3)
|
||||
@@ -273,7 +273,7 @@
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(range, location))
|
||||
if(C.flash_act())
|
||||
if(get_dist(C, location) < 4)
|
||||
C.Knockdown(60)
|
||||
C.DefaultCombatKnockdown(60)
|
||||
else
|
||||
C.Stun(100)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user