mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Alcohol refactor v12413526345. (#4647)
* Refactors booze. Yes. I killed other commits. * Lime juice
This commit is contained in:
committed by
Fox McCloud
parent
5ca9a8ea8d
commit
1a4f8cb518
@@ -39,6 +39,7 @@
|
||||
handle_pain()
|
||||
handle_heartbeat()
|
||||
handle_heartattack()
|
||||
handle_drunk()
|
||||
species.handle_life(src)
|
||||
|
||||
if(!client)
|
||||
@@ -730,6 +731,80 @@
|
||||
|
||||
return //TODO: DEFERRED
|
||||
|
||||
/mob/living/carbon/human/handle_drunk()
|
||||
var/slur_start = 30 //12u ethanol, 30u whiskey FOR HUMANS
|
||||
var/confused_start = 40
|
||||
var/brawl_start = 30
|
||||
var/blur_start = 75
|
||||
var/vomit_start = 60
|
||||
var/pass_out = 90
|
||||
var/spark_start = 50 //40u synthanol
|
||||
var/collapse_start = 75
|
||||
var/braindamage_start = 120
|
||||
var/alcohol_strength = drunk
|
||||
var/sober_str=!(SOBER in mutations)?1:2
|
||||
|
||||
if(drunk)
|
||||
alcohol_strength/=sober_str
|
||||
|
||||
var/obj/item/organ/internal/liver/L
|
||||
if(!isSynthetic())
|
||||
L = get_int_organ(/obj/item/organ/internal/liver)
|
||||
if(L)
|
||||
alcohol_strength *= L.alcohol_intensity
|
||||
else
|
||||
alcohol_strength *= 5
|
||||
|
||||
if(alcohol_strength >= slur_start) //slurring
|
||||
if (!slurring) slurring = 1
|
||||
slurring = drunk
|
||||
if(alcohol_strength >= brawl_start) //the drunken martial art
|
||||
if(!istype(martial_art, /datum/martial_art/drunk_brawling))
|
||||
var/datum/martial_art/drunk_brawling/F = new
|
||||
F.teach(src,1)
|
||||
if(alcohol_strength < brawl_start) //removing the art
|
||||
if(istype(martial_art, /datum/martial_art/drunk_brawling))
|
||||
martial_art.remove(src)
|
||||
if(alcohol_strength >= confused_start && prob(33)) //confused walking
|
||||
if (!confused) confused = 1
|
||||
confused = max(confused+(3/sober_str),0)
|
||||
if(alcohol_strength >= blur_start) //blurry eyes
|
||||
eye_blurry = max(eye_blurry, 10/sober_str)
|
||||
drowsyness = max(drowsyness, 0)
|
||||
if(!isSynthetic()) //stuff only for non-synthetics
|
||||
if(alcohol_strength >= vomit_start) //vomiting
|
||||
if(prob(8))
|
||||
fakevomit()
|
||||
if(alcohol_strength >= pass_out)
|
||||
Paralyse(5 / sober_str)
|
||||
drowsyness = max(drowsyness, 30/sober_str)
|
||||
if (L)
|
||||
L.take_damage(0.1, 1)
|
||||
adjustToxLoss(0.1)
|
||||
else //stuff only for synthetics
|
||||
if(alcohol_strength >= spark_start && prob(25))
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
if(alcohol_strength >= collapse_start && prob(10))
|
||||
emote("collapse")
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
if(alcohol_strength >= braindamage_start && prob(10))
|
||||
adjustBrainLoss(1)
|
||||
|
||||
if(!has_booze())
|
||||
AdjustDrunk(-0.5)
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/has_booze() //checks if the human has ethanol or its subtypes inside
|
||||
for(var/A in reagents.reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(istype(R, /datum/reagent/ethanol))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/mob/living/carbon/human/handle_regular_status_updates()
|
||||
if(status_flags & GODMODE)
|
||||
return 0
|
||||
|
||||
@@ -59,6 +59,16 @@
|
||||
default_hair = "Unathi Horns"
|
||||
butt_sprite = "unathi"
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/internal/heart,
|
||||
"lungs" = /obj/item/organ/internal/lungs,
|
||||
"liver" = /obj/item/organ/internal/liver/unathi,
|
||||
"kidneys" = /obj/item/organ/internal/kidneys,
|
||||
"brain" = /obj/item/organ/internal/brain,
|
||||
"appendix" = /obj/item/organ/internal/appendix,
|
||||
"eyes" = /obj/item/organ/internal/eyes,
|
||||
)
|
||||
|
||||
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken,
|
||||
/mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/tribble)
|
||||
|
||||
@@ -116,6 +126,16 @@
|
||||
default_headacc = "Tajaran Ears"
|
||||
butt_sprite = "tajaran"
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/internal/heart,
|
||||
"lungs" = /obj/item/organ/internal/lungs,
|
||||
"liver" = /obj/item/organ/internal/liver/tajaran,
|
||||
"kidneys" = /obj/item/organ/internal/kidneys,
|
||||
"brain" = /obj/item/organ/internal/brain,
|
||||
"appendix" = /obj/item/organ/internal/appendix,
|
||||
"eyes" = /obj/item/organ/internal/eyes,
|
||||
)
|
||||
|
||||
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/chick, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot,
|
||||
/mob/living/simple_animal/tribble)
|
||||
|
||||
@@ -161,6 +181,16 @@
|
||||
base_color = "#B43214"
|
||||
butt_sprite = "vulp"
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/internal/heart,
|
||||
"lungs" = /obj/item/organ/internal/lungs,
|
||||
"liver" = /obj/item/organ/internal/liver/vulpkanin,
|
||||
"kidneys" = /obj/item/organ/internal/kidneys,
|
||||
"brain" = /obj/item/organ/internal/brain,
|
||||
"appendix" = /obj/item/organ/internal/appendix,
|
||||
"eyes" = /obj/item/organ/internal/eyes,
|
||||
)
|
||||
|
||||
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken,
|
||||
/mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/tribble)
|
||||
|
||||
@@ -293,7 +323,7 @@
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/internal/heart,
|
||||
"lungs" = /obj/item/organ/internal/lungs,
|
||||
"liver" = /obj/item/organ/internal/liver,
|
||||
"liver" = /obj/item/organ/internal/liver/vox,
|
||||
"kidneys" = /obj/item/organ/internal/kidneys,
|
||||
"brain" = /obj/item/organ/internal/brain,
|
||||
"appendix" = /obj/item/organ/internal/appendix,
|
||||
@@ -454,6 +484,16 @@
|
||||
reagent_tag = PROCESS_ORG
|
||||
butt_sprite = "kidan"
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/internal/heart,
|
||||
"lungs" = /obj/item/organ/internal/lungs,
|
||||
"liver" = /obj/item/organ/internal/liver/kidan,
|
||||
"kidneys" = /obj/item/organ/internal/kidneys,
|
||||
"brain" = /obj/item/organ/internal/brain,
|
||||
"appendix" = /obj/item/organ/internal/appendix,
|
||||
"eyes" = /obj/item/organ/internal/eyes,
|
||||
)
|
||||
|
||||
allowed_consumed_mobs = list(/mob/living/simple_animal/diona)
|
||||
|
||||
suicide_messages = list(
|
||||
@@ -658,6 +698,16 @@
|
||||
eyes = "grey_eyes_s"
|
||||
butt_sprite = "grey"
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/internal/heart,
|
||||
"lungs" = /obj/item/organ/internal/lungs,
|
||||
"liver" = /obj/item/organ/internal/liver/grey,
|
||||
"kidneys" = /obj/item/organ/internal/kidneys,
|
||||
"brain" = /obj/item/organ/internal/brain,
|
||||
"appendix" = /obj/item/organ/internal/appendix,
|
||||
"eyes" = /obj/item/organ/internal/eyes,
|
||||
)
|
||||
|
||||
brute_mod = 1.25 //greys are fragile
|
||||
|
||||
default_genes = list(REMOTE_TALK)
|
||||
@@ -880,4 +930,4 @@
|
||||
spawn(100)
|
||||
if(H)
|
||||
H.update_hair()
|
||||
H.update_fhair()
|
||||
H.update_fhair()
|
||||
|
||||
@@ -114,6 +114,7 @@
|
||||
handle_paralysed()
|
||||
handle_sleeping()
|
||||
handle_slowed()
|
||||
handle_drunk()
|
||||
|
||||
|
||||
/mob/living/proc/handle_stunned()
|
||||
@@ -168,6 +169,11 @@
|
||||
slowed = max(slowed-1, 0)
|
||||
return slowed
|
||||
|
||||
/mob/living/proc/handle_drunk()
|
||||
if(drunk)
|
||||
AdjustDrunk(-1)
|
||||
return drunk
|
||||
|
||||
/mob/living/proc/handle_disabilities()
|
||||
//Eyes
|
||||
if(sdisabilities & BLIND || stat) //blindness from disability or unconsciousness doesn't get better on its own
|
||||
@@ -323,4 +329,4 @@
|
||||
if(client)
|
||||
var/client/C = client
|
||||
for(var/mob/living/carbon/human/H in view(src, world.view))
|
||||
C.images += H.hud_list[NATIONS_HUD]
|
||||
C.images += H.hud_list[NATIONS_HUD]
|
||||
|
||||
@@ -1094,6 +1094,9 @@ var/list/slot_equipment_priority = list( \
|
||||
/mob/proc/Dizzy(amount)
|
||||
dizziness = max(dizziness, amount, 0)
|
||||
|
||||
/mob/proc/AdjustDrunk(amount)
|
||||
drunk = max(drunk + amount, 0)
|
||||
|
||||
/mob/proc/Stun(amount)
|
||||
SetStunned(max(stunned, amount))
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
var/ajourn = 0
|
||||
var/druggy = 0 //Carbon
|
||||
var/confused = 0 //Carbon
|
||||
var/drunk = 0
|
||||
var/antitoxs = null
|
||||
var/plasma = null
|
||||
var/sleeping = 0 //Carbon
|
||||
|
||||
Reference in New Issue
Block a user