mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-23 13:07:37 +01:00
phase 3
eh, who needs three traits? also, sanity checking on various boozetypes
This commit is contained in:
@@ -177,14 +177,13 @@
|
||||
M.Confuse(20)
|
||||
if(effective_dose >= strength * 4) // Blurry vision
|
||||
M.eye_blurry = max(M.eye_blurry, 10)
|
||||
if((M.species.robo_ethanol_drunk && M.species.robo_ethanol_proc) || !(M.isSynthetic()))
|
||||
if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep
|
||||
M.drowsyness = max(M.drowsyness, 20)
|
||||
if(effective_dose >= strength * 6) // Toxic dose
|
||||
M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity)
|
||||
if(effective_dose >= strength * 7) // Pass out
|
||||
M.Paralyse(20)
|
||||
M.Sleeping(30)
|
||||
if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep
|
||||
M.drowsyness = max(M.drowsyness, 20)
|
||||
if(effective_dose >= strength * 6) // Toxic dose
|
||||
M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity)
|
||||
if(effective_dose >= strength * 7) // Pass out
|
||||
M.Paralyse(20)
|
||||
M.Sleeping(30)
|
||||
|
||||
if(druggy != 0)
|
||||
M.druggy = max(M.druggy, druggy)
|
||||
|
||||
@@ -2577,9 +2577,10 @@
|
||||
|
||||
/datum/reagent/ethanol/beer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.jitteriness = max(M.jitteriness - 3, 0)
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.jitteriness = max(M.jitteriness - 3, 0)
|
||||
|
||||
/datum/reagent/ethanol/beer/lite
|
||||
name = "Lite Beer"
|
||||
@@ -2639,7 +2640,8 @@
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.dizziness +=5
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
M.dizziness +=5
|
||||
|
||||
/datum/reagent/ethanol/firepunch
|
||||
name = "Fire Punch"
|
||||
@@ -2671,18 +2673,19 @@
|
||||
allergen_type = ALLERGEN_COFFEE|ALLERGEN_STIMULANT //Contains coffee or is made from coffee
|
||||
|
||||
/datum/reagent/ethanol/coffee/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
..()
|
||||
M.dizziness = max(0, M.dizziness - 5)
|
||||
M.drowsyness = max(0, M.drowsyness - 3)
|
||||
M.AdjustSleeping(-2)
|
||||
if(M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
if(!(M.isSynthetic()))
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
..()
|
||||
M.dizziness = max(0, M.dizziness - 5)
|
||||
M.drowsyness = max(0, M.drowsyness - 3)
|
||||
M.AdjustSleeping(-2)
|
||||
if(M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
|
||||
//if(alien == IS_TAJARA)
|
||||
//M.adjustToxLoss(0.5 * removed)
|
||||
//M.make_jittery(4) //extra sensitive to caffine
|
||||
//if(alien == IS_TAJARA)
|
||||
//M.adjustToxLoss(0.5 * removed)
|
||||
//M.make_jittery(4) //extra sensitive to caffine
|
||||
|
||||
/datum/reagent/ethanol/coffee/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
//if(alien == IS_TAJARA)
|
||||
@@ -2696,7 +2699,8 @@
|
||||
//if(alien == IS_TAJARA)
|
||||
//M.adjustToxLoss(4 * REM)
|
||||
//M.apply_effect(3, STUTTER) //VOREStation Edit end
|
||||
M.make_jittery(5)
|
||||
if(!(M.isSynthetic()))
|
||||
M.make_jittery(5)
|
||||
|
||||
/datum/reagent/ethanol/coffee/kahlua
|
||||
name = "Kahlua"
|
||||
@@ -2800,12 +2804,14 @@
|
||||
|
||||
/datum/reagent/ethanol/thirteenloko/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.drowsyness = max(0, M.drowsyness - 7)
|
||||
if (M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
M.make_jittery(5)
|
||||
|
||||
if(!(M.isSynthetic()))
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.drowsyness = max(0, M.drowsyness - 7)
|
||||
if (M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
M.make_jittery(5)
|
||||
|
||||
/datum/reagent/ethanol/vermouth
|
||||
name = "Vermouth"
|
||||
@@ -2835,7 +2841,8 @@
|
||||
|
||||
/datum/reagent/ethanol/vodka/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.apply_effect(max(M.radiation - 1 * removed, 0), IRRADIATE, check_protection = 0)
|
||||
if(!(M.isSynthetic()))
|
||||
M.apply_effect(max(M.radiation - 1 * removed, 0), IRRADIATE, check_protection = 0)
|
||||
|
||||
/datum/reagent/ethanol/whiskey
|
||||
name = "Whiskey"
|
||||
@@ -2904,16 +2911,18 @@
|
||||
|
||||
/datum/reagent/ethanol/pwine/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(dose > 30)
|
||||
M.adjustToxLoss(2 * removed)
|
||||
if(dose > 60 && ishuman(M) && prob(5))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/internal/heart/L = H.internal_organs_by_name[O_HEART]
|
||||
if (L && istype(L))
|
||||
if(dose < 120)
|
||||
L.take_damage(10 * removed, 0)
|
||||
else
|
||||
L.take_damage(100, 0)
|
||||
|
||||
if(!(M.isSynthetic()))
|
||||
if(dose > 30)
|
||||
M.adjustToxLoss(2 * removed)
|
||||
if(dose > 60 && ishuman(M) && prob(5))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/internal/heart/L = H.internal_organs_by_name[O_HEART]
|
||||
if (L && istype(L))
|
||||
if(dose < 120)
|
||||
L.take_damage(10 * removed, 0)
|
||||
else
|
||||
L.take_damage(100, 0)
|
||||
|
||||
/datum/reagent/ethanol/wine/champagne
|
||||
name = "Champagne"
|
||||
@@ -3112,7 +3121,9 @@
|
||||
|
||||
/datum/reagent/ethanol/beepsky_smash/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.Stun(2)
|
||||
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
M.Stun(2)
|
||||
|
||||
/datum/reagent/ethanol/bilk
|
||||
name = "Bilk"
|
||||
@@ -3549,7 +3560,9 @@
|
||||
|
||||
/datum/reagent/ethanol/neurotoxin/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.Weaken(3)
|
||||
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
M.Weaken(3)
|
||||
|
||||
/datum/reagent/ethanol/patron
|
||||
name = "Patron"
|
||||
@@ -3799,16 +3812,18 @@
|
||||
|
||||
/datum/reagent/ethanol/unathiliquor/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
|
||||
var/drug_strength = 10
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength = drug_strength * 0.8
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
|
||||
M.druggy = max(M.druggy, drug_strength)
|
||||
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
||||
step(M, pick(cardinal))
|
||||
var/drug_strength = 10
|
||||
if(alien == IS_SKRELL)
|
||||
drug_strength = drug_strength * 0.8
|
||||
|
||||
M.druggy = max(M.druggy, drug_strength)
|
||||
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
|
||||
step(M, pick(cardinal))
|
||||
|
||||
/datum/reagent/ethanol/sakebomb
|
||||
name = "Sake Bomb"
|
||||
@@ -4337,19 +4352,21 @@
|
||||
|
||||
/datum/reagent/ethanol/godka/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
if(!(M.isSynthetic()))
|
||||
M.apply_effect(max(M.radiation - 5 * removed, 0), IRRADIATE, check_protection = 0)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.species.has_organ[O_LIVER])
|
||||
var/obj/item/organ/L = H.internal_organs_by_name[O_LIVER]
|
||||
if(!L)
|
||||
return
|
||||
var/adjust_liver = rand(-3, 2)
|
||||
if(prob(L.damage))
|
||||
to_chat(M, "<span class='cult'>You feel woozy...</span>")
|
||||
L.damage = max(L.damage + (adjust_liver * removed), 0)
|
||||
var/adjust_tox = rand(-4, 2)
|
||||
M.adjustToxLoss(adjust_tox * removed)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.species.has_organ[O_LIVER])
|
||||
var/obj/item/organ/L = H.internal_organs_by_name[O_LIVER]
|
||||
if(!L)
|
||||
return
|
||||
var/adjust_liver = rand(-3, 2)
|
||||
if(prob(L.damage))
|
||||
to_chat(M, "<span class='cult'>You feel woozy...</span>")
|
||||
L.damage = max(L.damage + (adjust_liver * removed), 0)
|
||||
var/adjust_tox = rand(-4, 2)
|
||||
M.adjustToxLoss(adjust_tox * removed)
|
||||
|
||||
/datum/reagent/ethanol/holywine
|
||||
name = "Angel Ichor"
|
||||
|
||||
@@ -48,10 +48,11 @@
|
||||
/datum/reagent/ethanol/deathbell/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
if(dose * strength >= strength) // Early warning
|
||||
M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects.
|
||||
if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional.
|
||||
M.slurring = max(M.slurring, 30)
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
if(dose * strength >= strength) // Early warning
|
||||
M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects.
|
||||
if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional.
|
||||
M.slurring = max(M.slurring, 30)
|
||||
|
||||
/datum/reagent/ethanol/burnout
|
||||
name = "Burnout"
|
||||
@@ -70,22 +71,23 @@
|
||||
/datum/reagent/ethanol/burnout/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
// Deathbell effects.
|
||||
if(dose * strength >= strength)
|
||||
M.make_dizzy(24)
|
||||
if(dose * strength >= strength * 2.5)
|
||||
M.slurring = max(M.slurring, 30)
|
||||
// Simulating heat effects of spice. Without spice.
|
||||
if(alien == IS_DIONA || alien == IS_ALRAUNE)
|
||||
return
|
||||
else if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.can_feel_pain())
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
if(dose * strength >= strength)
|
||||
M.make_dizzy(24)
|
||||
if(dose * strength >= strength * 2.5)
|
||||
M.slurring = max(M.slurring, 30)
|
||||
// Simulating heat effects of spice. Without spice.
|
||||
if(alien == IS_DIONA || alien == IS_ALRAUNE)
|
||||
return
|
||||
else
|
||||
if((dose < 5) && (dose == metabolism || prob(5)))
|
||||
to_chat(M, "<span class='danger'>Your insides feel uncomfortably hot!</span>")
|
||||
if(dose >= 5 && prob(5))
|
||||
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>", pick("<span class='danger'>You feel like your insides are burning!</span>", "<span class='danger'>You feel like your insides are on fire!</span>", "<span class='danger'>You feel like your belly is full of lava!</span>"))
|
||||
else if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.can_feel_pain())
|
||||
return
|
||||
else
|
||||
if((dose < 5) && (dose == metabolism || prob(5)))
|
||||
to_chat(M, "<span class='danger'>Your insides feel uncomfortably hot!</span>")
|
||||
if(dose >= 5 && prob(5))
|
||||
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>", pick("<span class='danger'>You feel like your insides are burning!</span>", "<span class='danger'>You feel like your insides are on fire!</span>", "<span class='danger'>You feel like your belly is full of lava!</span>"))
|
||||
|
||||
/datum/reagent/ethanol/monstertamer
|
||||
name = "Monster Tamer"
|
||||
@@ -159,27 +161,28 @@
|
||||
/datum/reagent/ethanol/monstertamer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
if(M.species.organic_food_coeff) //it's still food!
|
||||
switch(alien)
|
||||
if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein.
|
||||
if(IS_SKRELL)
|
||||
M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein.
|
||||
if(IS_TESHARI)
|
||||
M.adjust_nutrition(alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein.
|
||||
if(IS_UNATHI)
|
||||
M.adjust_nutrition(alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein.
|
||||
//Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein.
|
||||
//Chimera don't need their own case here since their factors for nutriment and protein cancel out.
|
||||
else
|
||||
M.adjust_nutrition(alt_nutriment_factor * removed)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.feral > 0 && H.nutrition > 150 && H.traumatic_shock < 20 && H.jitteriness < 100) //Same check as feral triggers to stop them immediately re-feralling
|
||||
H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm.
|
||||
if (H.feral <=0) //check if they're unferalled
|
||||
H.feral = 0
|
||||
to_chat(H, "<span class='info'>Your mind starts to clear, soothed into a state of clarity as your senses return.</span>")
|
||||
log_and_message_admins("is no longer feral.", H)
|
||||
if(!(M.isSynthetic()))
|
||||
if(M.species.organic_food_coeff) //it's still food!
|
||||
switch(alien)
|
||||
if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein.
|
||||
if(IS_SKRELL)
|
||||
M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein.
|
||||
if(IS_TESHARI)
|
||||
M.adjust_nutrition(alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein.
|
||||
if(IS_UNATHI)
|
||||
M.adjust_nutrition(alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein.
|
||||
//Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein.
|
||||
//Chimera don't need their own case here since their factors for nutriment and protein cancel out.
|
||||
else
|
||||
M.adjust_nutrition(alt_nutriment_factor * removed)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.feral > 0 && H.nutrition > 150 && H.traumatic_shock < 20 && H.jitteriness < 100) //Same check as feral triggers to stop them immediately re-feralling
|
||||
H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm.
|
||||
if (H.feral <=0) //check if they're unferalled
|
||||
H.feral = 0
|
||||
to_chat(H, "<span class='info'>Your mind starts to clear, soothed into a state of clarity as your senses return.</span>")
|
||||
log_and_message_admins("is no longer feral.", H)
|
||||
|
||||
/datum/reagent/ethanol/monstertamer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
@@ -216,10 +219,11 @@
|
||||
/datum/reagent/ethanol/galacticpanic/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
if(dose * strength >= strength) // Early warning
|
||||
M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects.
|
||||
if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional.
|
||||
M.slurring = max(M.slurring, 30)
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
if(dose * strength >= strength) // Early warning
|
||||
M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects.
|
||||
if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional.
|
||||
M.slurring = max(M.slurring, 30)
|
||||
|
||||
/datum/reagent/ethanol/bulldog
|
||||
name = "Space Bulldog"
|
||||
@@ -309,7 +313,9 @@
|
||||
|
||||
/datum/reagent/ethanol/russianroulette/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.Stun(2)
|
||||
|
||||
if(M.species.robo_ethanol_drunk || !(M.isSynthetic()))
|
||||
M.Stun(2)
|
||||
|
||||
/datum/reagent/ethanol/lovemaker
|
||||
name = "The Love Maker"
|
||||
@@ -460,27 +466,28 @@
|
||||
/datum/reagent/ethanol/hairoftherat/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
if(M.species.organic_food_coeff) //it's still food!
|
||||
switch(alien)
|
||||
if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein.
|
||||
if(IS_SKRELL)
|
||||
M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein.
|
||||
if(IS_TESHARI)
|
||||
M.nutrition += (alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein.
|
||||
if(IS_UNATHI)
|
||||
M.nutrition += (alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein.
|
||||
//Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein.
|
||||
//Chimera don't need their own case here since their factors for nutriment and protein cancel out.
|
||||
else
|
||||
M.nutrition += (alt_nutriment_factor * removed)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.feral > 0 && H.nutrition > 100 && H.traumatic_shock < min(60, H.nutrition/10) && H.jitteriness < 100) // same check as feral triggers to stop them immediately re-feralling
|
||||
H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm.
|
||||
if (H.feral <=0) //check if they're unferalled
|
||||
H.feral = 0
|
||||
to_chat(H, "<span class='info'>Your mind starts to clear, soothed into a state of clarity as your senses return.</span>")
|
||||
log_and_message_admins("is no longer feral.", H)
|
||||
if(!(M.isSynthetic()))
|
||||
if(M.species.organic_food_coeff) //it's still food!
|
||||
switch(alien)
|
||||
if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein.
|
||||
if(IS_SKRELL)
|
||||
M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein.
|
||||
if(IS_TESHARI)
|
||||
M.nutrition += (alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein.
|
||||
if(IS_UNATHI)
|
||||
M.nutrition += (alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein.
|
||||
//Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein.
|
||||
//Chimera don't need their own case here since their factors for nutriment and protein cancel out.
|
||||
else
|
||||
M.nutrition += (alt_nutriment_factor * removed)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.feral > 0 && H.nutrition > 100 && H.traumatic_shock < min(60, H.nutrition/10) && H.jitteriness < 100) // same check as feral triggers to stop them immediately re-feralling
|
||||
H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm.
|
||||
if (H.feral <=0) //check if they're unferalled
|
||||
H.feral = 0
|
||||
to_chat(H, "<span class='info'>Your mind starts to clear, soothed into a state of clarity as your senses return.</span>")
|
||||
log_and_message_admins("is no longer feral.", H)
|
||||
|
||||
/datum/reagent/ethanol/hairoftherat/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user