/
alcohol_reagents.dm
2180 lines (1934 loc) · 79.2 KB
/
alcohol_reagents.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#define ALCOHOL_THRESHOLD_MODIFIER 1 //Greater numbers mean that less alcohol has greater intoxication potential
#define ALCOHOL_RATE 0.005 //The rate at which alcohol affects you
#define ALCOHOL_EXPONENT 1.6 //The exponent applied to boozepwr to make higher volume alcohol at least a little bit damaging to the liver
////////////// I don't know who made this header before I refactored alcohols but I'm going to fucking strangle them because it was so ugly, holy Christ
// ALCOHOLS //
//////////////
/datum/reagent/consumable/ethanol
name = "Ethanol"
description = "A well-known alcohol with a variety of applications."
color = "#404030" // rgb: 64, 64, 48
nutriment_factor = 0
taste_description = "alcohol"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning
/*
Boozepwr Chart
Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts (i.e. light poisoning inherts from slight poisoning)
In addition, severe effects won't always trigger unless the drink is poisonously strong
All effects don't start immediately, but rather get worse over time; the rate is affected by the imbiber's alcohol tolerance
0: Non-alcoholic
1-10: Barely classifiable as alcohol - occassional slurring
11-20: Slight alcohol content - slurring
21-30: Below average - imbiber begins to look slightly drunk
31-40: Just below average - no unique effects
41-50: Average - mild disorientation, imbiber begins to look drunk
51-60: Just above average - disorientation, vomiting, imbiber begins to look heavily drunk
61-70: Above average - small chance of blurry vision, imbiber begins to look smashed
71-80: High alcohol content - blurry vision, imbiber completely shitfaced
81-90: Extremely high alcohol content - heavy toxin damage, passing out
91-100: Dangerously toxic - swift death
*/
/datum/reagent/consumable/ethanol/on_mob_life(mob/living/carbon/C)
if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER)
var/booze_power = boozepwr
if(HAS_TRAIT(C, TRAIT_ALCOHOL_TOLERANCE)) //we're an accomplished drinker
booze_power *= 0.7
if(HAS_TRAIT(C, TRAIT_LIGHT_DRINKER))
booze_power *= 2
C.drunkenness = max((C.drunkenness + (sqrt(volume) * booze_power * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk
var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER)
if (istype(L))
L.applyOrganDamage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150))
return ..()
/datum/reagent/consumable/ethanol/reaction_obj(obj/O, reac_volume)
if(istype(O, /obj/item/paper))
var/obj/item/paper/paperaffected = O
paperaffected.clearpaper()
to_chat(usr, "<span class='notice'>[paperaffected]'s ink washes away.</span>")
if(istype(O, /obj/item/book))
if(reac_volume >= 5)
var/obj/item/book/affectedbook = O
affectedbook.dat = null
O.visible_message("<span class='notice'>[O]'s writing is washed away by [name]!</span>")
else
O.visible_message("<span class='warning'>[O]'s ink is smeared by [name], but doesn't wash away!</span>")
return
/datum/reagent/consumable/ethanol/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel.
if(!isliving(M))
return
if(method in list(TOUCH, VAPOR, PATCH))
M.adjust_fire_stacks(reac_volume / 15)
if(iscarbon(M))
var/mob/living/carbon/C = M
var/power_multiplier = boozepwr / 65 // Weak alcohol has less sterilizing power
for(var/s in C.surgeries)
var/datum/surgery/S = s
S.success_multiplier = max(0.1*power_multiplier, S.success_multiplier)
// +10% success propability on each step, useful while operating in less-than-perfect conditions
return ..()
/datum/reagent/consumable/ethanol/beer
name = "Beer"
description = "An alcoholic beverage brewed since ancient times on Old Earth. Still popular today."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
boozepwr = 25
taste_description = "piss water"
glass_name = "glass of beer"
glass_desc = "A freezing pint of beer."
/datum/reagent/consumable/ethanol/beer/light
name = "Light Beer"
description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety has reduced calorie and alcohol content."
boozepwr = 5 //Space Europeans hate it
taste_description = "dish water"
glass_name = "glass of light beer"
glass_desc = "A freezing pint of watery light beer."
/datum/reagent/consumable/ethanol/beer/green
name = "Green Beer"
description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety is dyed a festive green."
color = "#A8E61D"
taste_description = "green piss water"
glass_icon_state = "greenbeerglass"
glass_name = "glass of green beer"
glass_desc = "A freezing pint of green beer. Festive."
/datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/carbon/M)
if(M.color != color)
M.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY)
return ..()
/datum/reagent/consumable/ethanol/beer/green/on_mob_end_metabolize(mob/living/M)
M.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, color)
/datum/reagent/consumable/ethanol/kahlua
name = "Kahlua"
description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
glass_icon_state = "kahluaglass"
glass_name = "glass of RR coffee liquor"
glass_desc = "DAMN, THIS THING LOOKS ROBUST!"
shot_glass_icon_state = "shotglasscream"
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-40, FALSE)
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
M.Jitter(5)
..()
. = 1
/datum/reagent/consumable/ethanol/whiskey
name = "Whiskey"
description = "A superb and well-aged single-malt whiskey. Damn."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 75
taste_description = "molasses"
glass_icon_state = "whiskeyglass"
glass_name = "glass of whiskey"
glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
shot_glass_icon_state = "shotglassbrown"
/datum/reagent/consumable/ethanol/thirteenloko
name = "Thirteen Loko"
description = "A potent mixture of caffeine and alcohol."
color = "#102000" // rgb: 16, 32, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
boozepwr = 80
quality = DRINK_GOOD
overdose_threshold = 60
addiction_threshold = 30
taste_description = "jitters and death"
glass_icon_state = "thirteen_loko_glass"
glass_name = "glass of Thirteen Loko"
glass_desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass."
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(0,M.drowsyness-7)
M.AdjustSleeping(-40)
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
M.Jitter(5)
return ..()
/datum/reagent/consumable/ethanol/thirteenloko/overdose_start(mob/living/M)
to_chat(M, "<span class='userdanger'>Your entire body violently jitters as you start to feel queasy. You really shouldn't have drank all of that [name]!</span>")
M.Jitter(20)
M.Stun(15)
/datum/reagent/consumable/ethanol/thirteenloko/overdose_process(mob/living/M)
if(prob(7) && iscarbon(M))
var/obj/item/I = M.get_active_held_item()
if(I)
M.dropItemToGround(I)
to_chat(M, "<span class ='notice'>Your hands jitter and you drop what you were holding!</span>")
M.Jitter(10)
if(prob(7))
to_chat(M, "<span class='notice'>[pick("You have a really bad headache.", "Your eyes hurt.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]</span>")
if(prob(5) && iscarbon(M))
var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES)
if(HAS_TRAIT(M, TRAIT_BLIND))
if(istype(eyes))
eyes.Remove(M)
eyes.forceMove(get_turf(M))
to_chat(M, "<span class='userdanger'>You double over in pain as you feel your eyeballs liquify in your head!</span>")
M.emote("scream")
M.adjustBruteLoss(15)
else
to_chat(M, "<span class='userdanger'>You scream in terror as you go blind!</span>")
eyes.applyOrganDamage(eyes.maxHealth)
M.emote("scream")
if(prob(3) && iscarbon(M))
M.visible_message("<span class='danger'>[M] starts having a seizure!</span>", "<span class='userdanger'>You have a seizure!</span>")
M.Unconscious(100)
M.Jitter(350)
if(prob(1) && iscarbon(M))
var/datum/disease/D = new /datum/disease/heart_failure
M.ForceContractDisease(D)
to_chat(M, "<span class='userdanger'>You're pretty sure you just felt your heart stop for a second there..</span>")
M.playsound_local(M, 'sound/effects/singlebeat.ogg', 100, 0)
/datum/reagent/consumable/ethanol/vodka
name = "Vodka"
description = "Number one drink AND fueling choice for Russians worldwide."
color = "#0064C8" // rgb: 0, 100, 200
boozepwr = 65
taste_description = "grain alcohol"
glass_icon_state = "ginvodkaglass"
glass_name = "glass of vodka"
glass_desc = "The glass contain wodka. Xynta."
shot_glass_icon_state = "shotglassclear"
/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M)
M.radiation = max(M.radiation-2,0)
return ..()
/datum/reagent/consumable/ethanol/bilk
name = "Bilk"
description = "This appears to be beer mixed with milk. Disgusting."
color = "#895C4C" // rgb: 137, 92, 76
nutriment_factor = 2 * REAGENTS_METABOLISM
boozepwr = 15
taste_description = "desperation and lactate"
glass_icon_state = "glass_brown"
glass_name = "glass of bilk"
glass_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
/datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/M)
if(M.getBruteLoss() && prob(10))
M.heal_bodypart_damage(1)
. = 1
return ..() || .
/datum/reagent/consumable/ethanol/bilk/soy
name = "Soy Bilk"
description = "This appears to be beer mixed with soy milk. Disgusting."
color = "#895C4C" // rgb: 137, 92, 76
nutriment_factor = 2 * REAGENTS_METABOLISM
boozepwr = 15
taste_description = "desperation and lactate free milk"
glass_icon_state = "glass_brown"
glass_name = "glass of soy bilk"
glass_desc = "A brew of soy milk and beer. For those alcoholics who fear soy osteoporosis."
/datum/reagent/consumable/ethanol/threemileisland
name = "Three Mile Island Iced Tea"
description = "Made for a woman, strong enough for a man."
color = "#666340" // rgb: 102, 99, 64
boozepwr = 10
quality = DRINK_FANTASTIC
taste_description = "dryness"
glass_icon_state = "threemileislandglass"
glass_name = "Three Mile Island Ice Tea"
glass_desc = "A glass of this is sure to prevent a meltdown."
/datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/M)
M.set_drugginess(50)
return ..()
/datum/reagent/consumable/ethanol/gin
name = "Gin"
description = "It's gin. In space. I say, good sir."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
taste_description = "an alcoholic christmas tree"
glass_icon_state = "ginvodkaglass"
glass_name = "glass of gin"
glass_desc = "A crystal clear glass of Griffeater gin."
/datum/reagent/consumable/ethanol/rum
name = "Rum"
description = "Yohoho and all that."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 60
taste_description = "spiked butterscotch"
glass_icon_state = "rumglass"
glass_name = "glass of rum"
glass_desc = "Now you want to Pray for a pirate suit, don't you?"
shot_glass_icon_state = "shotglassbrown"
/datum/reagent/consumable/ethanol/tequila
name = "Tequila"
description = "A strong and mildly flavoured, Mexican produced spirit. Feeling thirsty, hombre?"
color = "#FFFF91" // rgb: 255, 255, 145
boozepwr = 70
taste_description = "paint stripper"
glass_icon_state = "tequilaglass"
glass_name = "glass of tequila"
glass_desc = "Now all that's missing is the weird colored shades!"
shot_glass_icon_state = "shotglassgold"
/datum/reagent/consumable/ethanol/vermouth
name = "Vermouth"
description = "You suddenly feel a craving for a martini..."
color = "#91FF91" // rgb: 145, 255, 145
boozepwr = 45
taste_description = "dry alcohol"
glass_icon_state = "vermouthglass"
glass_name = "glass of vermouth"
glass_desc = "You wonder why you're even drinking this straight."
shot_glass_icon_state = "shotglassclear"
/datum/reagent/consumable/ethanol/wine
name = "Wine"
description = "A premium alcoholic beverage made from distilled grape juice."
color = "#7E4043" // rgb: 126, 64, 67
boozepwr = 35
taste_description = "bitter sweetness"
glass_icon_state = "wineglass"
glass_name = "glass of wine"
glass_desc = "A very classy looking drink."
shot_glass_icon_state = "shotglassred"
/datum/reagent/consumable/ethanol/lizardwine
name = "Lizard wine"
description = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol."
color = "#7E4043" // rgb: 126, 64, 67
boozepwr = 45
quality = DRINK_FANTASTIC
taste_description = "scaley sweetness"
/datum/reagent/consumable/ethanol/grappa
name = "Grappa"
description = "A fine Italian brandy, for when regular wine just isn't alcoholic enough for you."
color = "#F8EBF1"
boozepwr = 60
taste_description = "classy bitter sweetness"
glass_icon_state = "grappa"
glass_name = "glass of grappa"
glass_desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking."
/datum/reagent/consumable/ethanol/cognac
name = "Cognac"
description = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
color = "#AB3C05" // rgb: 171, 60, 5
boozepwr = 75
taste_description = "angry and irish"
glass_icon_state = "cognacglass"
glass_name = "glass of cognac"
glass_desc = "Damn, you feel like some kind of French aristocrat just by holding this."
shot_glass_icon_state = "shotglassbrown"
/datum/reagent/consumable/ethanol/absinthe
name = "Absinthe"
description = "A powerful alcoholic drink. Rumored to cause hallucinations but does not."
color = rgb(10, 206, 0)
boozepwr = 80 //Very strong even by default
taste_description = "death and licorice"
glass_icon_state = "absinthe"
glass_name = "glass of absinthe"
glass_desc = "It's as strong as it smells."
shot_glass_icon_state = "shotglassgreen"
/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/M)
if(prob(10) && !HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
M.hallucination += 4 //Reference to the urban myth
..()
/datum/reagent/consumable/ethanol/hooch
name = "Hooch"
description = "Either someone's failure at cocktail making or attempt in alcohol production. In any case, do you really want to drink that?"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 100
taste_description = "pure resignation"
glass_icon_state = "glass_brown2"
glass_name = "Hooch"
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
if(M.mind && M.mind.assigned_role == "Assistant")
M.heal_bodypart_damage(1,1)
. = 1
return ..() || .
/datum/reagent/consumable/ethanol/ale
name = "Ale"
description = "A dark alcoholic beverage made with malted barley and yeast."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 65
taste_description = "hearty barley ale"
glass_icon_state = "aleglass"
glass_name = "glass of ale"
glass_desc = "A freezing pint of delicious Ale."
/datum/reagent/consumable/ethanol/goldschlager
name = "Goldschlager"
description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
color = "#FFFF91" // rgb: 255, 255, 145
boozepwr = 25
quality = DRINK_VERYGOOD
taste_description = "burning cinnamon"
glass_icon_state = "goldschlagerglass"
glass_name = "glass of goldschlager"
glass_desc = "100% proof that teen girls will drink anything with gold in it."
shot_glass_icon_state = "shotglassgold"
/datum/reagent/consumable/ethanol/patron
name = "Patron"
description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
color = "#585840" // rgb: 88, 88, 64
boozepwr = 60
quality = DRINK_VERYGOOD
taste_description = "metallic and expensive"
glass_icon_state = "patronglass"
glass_name = "glass of patron"
glass_desc = "Drinking patron in the bar, with all the subpar ladies."
shot_glass_icon_state = "shotglassclear"
/datum/reagent/consumable/ethanol/gintonic
name = "Gin and Tonic"
description = "An all time classic, mild cocktail."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
quality = DRINK_NICE
taste_description = "mild and tart"
glass_icon_state = "gintonicglass"
glass_name = "Gin and Tonic"
glass_desc = "A mild but still great cocktail. Drink up, like a true Englishman."
/datum/reagent/consumable/ethanol/rum_coke
name = "Rum and Coke"
description = "Rum, mixed with cola."
taste_description = "cola"
boozepwr = 40
quality = DRINK_NICE
color = "#3E1B00"
glass_icon_state = "whiskeycolaglass"
glass_name = "Rum and Coke"
glass_desc = "The classic go-to of space-fratboys."
/datum/reagent/consumable/ethanol/cuba_libre
name = "Cuba Libre"
description = "Viva la Revolucion! Viva Cuba Libre!"
color = "#3E1B00" // rgb: 62, 27, 0
boozepwr = 50
quality = DRINK_GOOD
taste_description = "a refreshing marriage of citrus and rum"
glass_icon_state = "cubalibreglass"
glass_name = "Cuba Libre"
glass_desc = "A classic mix of rum, cola, and lime. A favorite of revolutionaries everywhere!"
/datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/carbon/M)
if(M.mind && M.mind.has_antag_datum(/datum/antagonist/rev)) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries.
M.adjustBruteLoss(-1, 0)
M.adjustFireLoss(-1, 0)
M.adjustToxLoss(-1, 0)
M.adjustOxyLoss(-5, 0)
. = 1
return ..() || .
/datum/reagent/consumable/ethanol/whiskey_cola
name = "Whiskey Cola"
description = "Whiskey, mixed with cola. Surprisingly refreshing."
color = "#3E1B00" // rgb: 62, 27, 0
boozepwr = 70
quality = DRINK_NICE
taste_description = "cola"
glass_icon_state = "whiskeycolaglass"
glass_name = "whiskey cola"
glass_desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
/datum/reagent/consumable/ethanol/martini
name = "Classic Martini"
description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 60
quality = DRINK_NICE
taste_description = "dry class"
glass_icon_state = "martiniglass"
glass_name = "Classic Martini"
glass_desc = "Damn, the bartender even stirred it, not shook it."
/datum/reagent/consumable/ethanol/vodkamartini
name = "Vodka Martini"
description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 65
quality = DRINK_NICE
taste_description = "shaken, not stirred"
glass_icon_state = "martiniglass"
glass_name = "Vodka martini"
glass_desc ="A bastardisation of the classic martini. Still great."
/datum/reagent/consumable/ethanol/white_russian
name = "White Russian"
description = "That's just, like, your opinion, man..."
color = "#A68340" // rgb: 166, 131, 64
boozepwr = 50
quality = DRINK_GOOD
taste_description = "bitter cream"
glass_icon_state = "whiterussianglass"
glass_name = "White Russian"
glass_desc = "A very nice looking drink. But that's just, like, your opinion, man."
/datum/reagent/consumable/ethanol/screwdrivercocktail
name = "Screwdriver"
description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
color = "#A68310" // rgb: 166, 131, 16
boozepwr = 55
quality = DRINK_NICE
taste_description = "oranges"
glass_icon_state = "screwdriverglass"
glass_name = "Screwdriver"
glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M)
var/static/list/increased_rad_loss = list("Station Engineer", "Atmospheric Technician", "Chief Engineer")
if(M.mind && (M.mind.assigned_role in increased_rad_loss)) //Engineers lose radiation poisoning at a massive rate.
M.radiation = max(M.radiation - 25, 0)
return ..()
/datum/reagent/consumable/ethanol/booger
name = "Booger"
description = "Ewww..."
color = "#8CFF8C" // rgb: 140, 255, 140
boozepwr = 45
taste_description = "sweet 'n creamy"
glass_icon_state = "booger"
glass_name = "Booger"
glass_desc = "Ewww..."
/datum/reagent/consumable/ethanol/bloody_mary
name = "Bloody Mary"
description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 55
quality = DRINK_GOOD
taste_description = "tomatoes with a hint of lime"
glass_icon_state = "bloodymaryglass"
glass_name = "Bloody Mary"
glass_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C)
if(C.blood_volume < BLOOD_VOLUME_NORMAL(C))
C.blood_volume = min(BLOOD_VOLUME_NORMAL(C), C.blood_volume + 3) //Bloody Mary quickly restores blood loss.
..()
/datum/reagent/consumable/ethanol/brave_bull
name = "Brave Bull"
description = "It's just as effective as Dutch-Courage!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 80
quality = DRINK_NICE
taste_description = "alcoholic bravery"
glass_icon_state = "bravebullglass"
glass_name = "Brave Bull"
glass_desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up."
var/tough_text
/datum/reagent/consumable/ethanol/brave_bull/on_mob_metabolize(mob/living/M)
tough_text = pick("brawny", "tenacious", "tough", "hardy", "sturdy") //Tuff stuff
to_chat(M, "<span class='notice'>You feel [tough_text]!</span>")
M.maxHealth += 10 //Brave Bull makes you sturdier, and thus capable of withstanding a tiny bit more punishment.
M.health += 10
/datum/reagent/consumable/ethanol/brave_bull/on_mob_end_metabolize(mob/living/M)
to_chat(M, "<span class='notice'>You no longer feel [tough_text].</span>")
M.maxHealth -= 10
M.health = min(M.health - 10, M.maxHealth) //This can indeed crit you if you're alive solely based on alchol ingestion
/datum/reagent/consumable/ethanol/tequila_sunrise
name = "Tequila Sunrise"
description = "Tequila, Grenadine, and Orange Juice."
color = "#FFE48C" // rgb: 255, 228, 140
boozepwr = 45
quality = DRINK_GOOD
taste_description = "oranges with a hint of pomegranate"
glass_icon_state = "tequilasunriseglass"
glass_name = "tequila Sunrise"
glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
var/obj/effect/light_holder
/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_metabolize(mob/living/M)
to_chat(M, "<span class='notice'>You feel gentle warmth spread through your body!</span>")
light_holder = new(M)
light_holder.set_light(3, 0.7, "#FFCC00") //Tequila Sunrise makes you radiate dim light, like a sunrise!
/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_life(mob/living/carbon/M)
if(QDELETED(light_holder))
M.reagents.del_reagent(/datum/reagent/consumable/ethanol/tequila_sunrise) //If we lost our light object somehow, remove the reagent
else if(light_holder.loc != M)
light_holder.forceMove(M)
return ..()
/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_end_metabolize(mob/living/M)
to_chat(M, "<span class='notice'>The warmth in your body fades.</span>")
QDEL_NULL(light_holder)
/datum/reagent/consumable/ethanol/toxins_special
name = "Toxins Special"
description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
quality = DRINK_VERYGOOD
taste_description = "spicy toxins"
glass_icon_state = "toxinsspecialglass"
glass_name = "Toxins Special"
glass_desc = "Whoah, this thing is on FIRE!"
shot_glass_icon_state = "toxinsspecialglass"
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M)
M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/beepsky_smash
name = "Beepsky Smash"
description = "Drink this and prepare for the LAW."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 120 //yogs - made the fist of the law even stronger to compensate for it no longer stunning
quality = DRINK_GOOD
metabolization_rate = 0.5
taste_description = "JUSTICE"
glass_icon_state = "beepskysmashglass"
glass_name = "Beepsky Smash"
glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
overdose_threshold = 40
var/datum/brain_trauma/special/beepsky/B
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_metabolize(mob/living/carbon/M)
if(HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
metabolization_rate = 0.8
if(!HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
B = new()
M.gain_trauma(B, TRAUMA_RESILIENCE_ABSOLUTE)
..()
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/carbon/M)
M.Jitter(2)
if(HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
M.adjustStaminaLoss(-10, 0)
if(prob(20))
new /datum/hallucination/items_other(M)
if(prob(10))
new /datum/hallucination/stray_bullet(M)
..()
. = 1
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_end_metabolize(mob/living/carbon/M)
if(B)
QDEL_NULL(B)
return ..()
/datum/reagent/consumable/ethanol/beepsky_smash/overdose_start(mob/living/carbon/M)
if(!HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
M.gain_trauma(/datum/brain_trauma/mild/phobia/security, TRAUMA_RESILIENCE_BASIC)
/datum/reagent/consumable/ethanol/irish_cream
name = "Irish Cream"
description = "Whiskey-imbued cream, what else would you expect from the Irish?"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 50
quality = DRINK_NICE
taste_description = "creamy alcohol"
glass_icon_state = "irishcreamglass"
glass_name = "Irish Cream"
glass_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
/datum/reagent/consumable/ethanol/manly_dorf
name = "The Manly Dorf"
description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 100 //For the manly only
quality = DRINK_NICE
taste_description = "hair on your chest and your chin"
glass_icon_state = "manlydorfglass"
glass_name = "The Manly Dorf"
glass_desc = "A manly concoction made from Ale and Beer. Intended for true men only."
var/dorf_mode
/datum/reagent/consumable/ethanol/manly_dorf/on_mob_metabolize(mob/living/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.dna.check_mutation(DWARFISM) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE))
to_chat(H, "<span class='notice'>Now THAT is MANLY!</span>")
boozepwr = 5 //We've had worse in the mines
dorf_mode = TRUE
/datum/reagent/consumable/ethanol/manly_dorf/on_mob_life(mob/living/carbon/M)
if(dorf_mode)
M.adjustBruteLoss(-2)
M.adjustFireLoss(-2)
return ..()
/datum/reagent/consumable/ethanol/longislandicedtea
name = "Long Island Iced Tea"
description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
quality = DRINK_VERYGOOD
taste_description = "a mixture of cola and alcohol"
glass_icon_state = "longislandicedteaglass"
glass_name = "Long Island Iced Tea"
glass_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
/datum/reagent/consumable/ethanol/moonshine
name = "Moonshine"
description = "You've really hit rock bottom now... your liver packed its bags and left last night."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 95
taste_description = "bitterness"
glass_icon_state = "glass_clear"
glass_name = "Moonshine"
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
/datum/reagent/consumable/ethanol/b52
name = "B-52"
description = "Coffee, Irish Cream, and cognac. You will get bombed."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 85
quality = DRINK_GOOD
taste_description = "angry and irish"
glass_icon_state = "b52glass"
glass_name = "B-52"
glass_desc = "Kahlua, Irish Cream, and cognac. You will get bombed."
shot_glass_icon_state = "b52glass"
/datum/reagent/consumable/ethanol/b52/on_mob_metabolize(mob/living/M)
playsound(M, 'sound/effects/explosion_distant.ogg', 100, FALSE)
/datum/reagent/consumable/ethanol/irishcoffee
name = "Irish Coffee"
description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
quality = DRINK_NICE
taste_description = "giving up on the day"
glass_icon_state = "irishcoffeeglass"
glass_name = "Irish Coffee"
glass_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
/datum/reagent/consumable/ethanol/margarita
name = "Margarita"
description = "On the rocks with salt on the rim. Arriba~!"
color = "#8CFF8C" // rgb: 140, 255, 140
boozepwr = 35
quality = DRINK_NICE
taste_description = "dry and salty"
glass_icon_state = "margaritaglass"
glass_name = "Margarita"
glass_desc = "On the rocks with salt on the rim. Arriba~!"
/datum/reagent/consumable/ethanol/black_russian
name = "Black Russian"
description = "For the lactose-intolerant. Still as classy as a White Russian."
color = "#360000" // rgb: 54, 0, 0
boozepwr = 70
quality = DRINK_NICE
taste_description = "bitterness"
glass_icon_state = "blackrussianglass"
glass_name = "Black Russian"
glass_desc = "For the lactose-intolerant. Still as classy as a White Russian."
/datum/reagent/consumable/ethanol/manhattan
name = "Manhattan"
description = "The Detective's undercover drink of choice. He never could stomach gin..."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 30
quality = DRINK_NICE
taste_description = "mild dryness"
glass_icon_state = "manhattanglass"
glass_name = "Manhattan"
glass_desc = "The Detective's undercover drink of choice. He never could stomach gin..."
/datum/reagent/consumable/ethanol/manhattan_proj
name = "Manhattan Project"
description = "A scientist's drink of choice, for pondering ways to blow up the station."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
quality = DRINK_VERYGOOD
taste_description = "death, the destroyer of worlds"
glass_icon_state = "proj_manhattanglass"
glass_name = "Manhattan Project"
glass_desc = "A scientist's drink of choice, for pondering ways to blow up the station."
/datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/carbon/M)
M.set_drugginess(30)
return ..()
/datum/reagent/consumable/ethanol/whiskeysoda
name = "Whiskey Soda"
description = "For the more refined griffon."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 70
quality = DRINK_NICE
taste_description = "soda"
glass_icon_state = "whiskeysodaglass2"
glass_name = "whiskey soda"
glass_desc = "Ultimate refreshment."
/datum/reagent/consumable/ethanol/antifreeze
name = "Anti-freeze"
description = "The ultimate refreshment. Not what it sounds like."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
quality = DRINK_NICE
taste_description = "Jack Frost's piss"
glass_icon_state = "antifreeze"
glass_name = "Anti-freeze"
glass_desc = "The ultimate refreshment."
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/barefoot
name = "Barefoot"
description = "Barefoot and pregnant."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
quality = DRINK_VERYGOOD
taste_description = "creamy berries"
glass_icon_state = "b&p"
glass_name = "Barefoot"
glass_desc = "Barefoot and pregnant."
/datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/carbon/M)
if(ishuman(M)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes.
var/mob/living/carbon/human/H = M
if(!H.shoes)
H.adjustBruteLoss(-3, 0)
. = 1
return ..() || .
/datum/reagent/consumable/ethanol/snowwhite
name = "Snow White"
description = "A cold refreshment."
color = "#FFFFFF" // rgb: 255, 255, 255
boozepwr = 35
quality = DRINK_NICE
taste_description = "refreshing cold"
glass_icon_state = "snowwhite"
glass_name = "Snow White"
glass_desc = "A cold refreshment."
/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon.
name = "Demon's Blood"
description = "AHHHH!!!!"
color = "#820000" // rgb: 130, 0, 0
boozepwr = 75
quality = DRINK_VERYGOOD
taste_description = "sweet tasting iron"
glass_icon_state = "demonsblood"
glass_name = "Demons Blood"
glass_desc = "Just looking at this thing makes the hair at the back of your neck stand up."
/datum/reagent/consumable/ethanol/devilskiss //If eaten by a slaughter demon, the demon will regret it.
name = "Devil's Kiss"
description = "Creepy time!"
color = "#A68310" // rgb: 166, 131, 16
boozepwr = 70
quality = DRINK_VERYGOOD
taste_description = "bitter iron"
glass_icon_state = "devilskiss"
glass_name = "Devils Kiss"
glass_desc = "Creepy time!"
/datum/reagent/consumable/ethanol/vodkatonic
name = "Vodka and Tonic"
description = "For when a gin and tonic isn't Russian enough."
color = "#0064C8" // rgb: 0, 100, 200
boozepwr = 70
quality = DRINK_NICE
taste_description = "tart bitterness"
glass_icon_state = "vodkatonicglass"
glass_name = "vodka and tonic"
glass_desc = "For when a gin and tonic isn't Russian enough."
/datum/reagent/consumable/ethanol/ginfizz
name = "Gin Fizz"
description = "Refreshingly lemony, deliciously dry."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
quality = DRINK_GOOD
taste_description = "dry, tart lemons"
glass_icon_state = "ginfizzglass"
glass_name = "gin fizz"
glass_desc = "Refreshingly lemony, deliciously dry."
/datum/reagent/consumable/ethanol/bahama_mama
name = "Bahama Mama"
description = "A tropical cocktail with a complex blend of flavors."
color = "#FF7F3B" // rgb: 255, 127, 59
boozepwr = 35
quality = DRINK_GOOD
taste_description = "pineapple, coconut, and a hint of coffee"
glass_icon_state = "bahama_mama"
glass_name = "Bahama Mama"
glass_desc = "A tropical cocktail with a complex blend of flavors."
/datum/reagent/consumable/ethanol/singulo
name = "Singulo"
description = "A blue-space beverage!"
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 35
quality = DRINK_VERYGOOD
taste_description = "concentrated matter"
glass_icon_state = "singulo"
glass_name = "Singulo"
glass_desc = "A blue-space beverage."
/datum/reagent/consumable/ethanol/sbiten
name = "Sbiten"
description = "A spicy Vodka! Might be a little hot for the little guys!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 70
quality = DRINK_GOOD
taste_description = "hot and spice"
glass_icon_state = "sbitenglass"
glass_name = "Sbiten"
glass_desc = "A spicy mix of Vodka and Spice. Very hot."
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT, 0 ,BODYTEMP_HEAT_DAMAGE_LIMIT) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/red_mead
name = "Red Mead"
description = "The true Viking drink! Even though it has a strange red color."
color = "#C73C00" // rgb: 199, 60, 0
boozepwr = 31 //Red drinks are stronger
quality = DRINK_GOOD
taste_description = "sweet and salty alcohol"
glass_icon_state = "red_meadglass"
glass_name = "Red Mead"
glass_desc = "A True Viking's Beverage, though its color is strange."
/datum/reagent/consumable/ethanol/mead
name = "Mead"
description = "A Viking drink, though a cheap one."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
boozepwr = 30
quality = DRINK_NICE
taste_description = "sweet, sweet alcohol"
glass_icon_state = "meadglass"
glass_name = "Mead"
glass_desc = "A Viking's Beverage, though a cheap one."
/datum/reagent/consumable/ethanol/iced_beer
name = "Iced Beer"
description = "A beer which is so cold the air around it freezes."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 15
taste_description = "refreshingly cold"
glass_icon_state = "iced_beerglass"
glass_name = "iced beer"
glass_desc = "A beer so frosty, the air around it freezes."
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/grog
name = "Grog"
description = "Watered down rum, Nanotrasen approves!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 1 //Basically nothing
taste_description = "a poor excuse for alcohol"
glass_icon_state = "grogglass"
glass_name = "Grog"
glass_desc = "A fine and cepa drink for Space."
/datum/reagent/consumable/ethanol/aloe
name = "Aloe"
description = "So very, very, very good."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
quality = DRINK_VERYGOOD
taste_description = "sweet 'n creamy"
glass_icon_state = "aloe"
glass_name = "Aloe"
glass_desc = "Very, very, very good."
/datum/reagent/consumable/ethanol/andalusia
name = "Andalusia"
description = "A nice, strangely named drink."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 40
quality = DRINK_GOOD
taste_description = "lemons"
glass_icon_state = "andalusia"
glass_name = "Andalusia"
glass_desc = "A nice, strangely named drink."
/datum/reagent/consumable/ethanol/alliescocktail
name = "Allies Cocktail"