Large port of bottle-related features from TG (#9142)

* ports bottling from tg

* Case typo
This commit is contained in:
T-H
2020-07-07 17:11:10 -04:00
committed by GitHub
parent aa68160c5d
commit ed81aa66ac
17 changed files with 251 additions and 20 deletions

View File

@@ -103,6 +103,7 @@
#define CAT_SOUP "Soups"
#define CAT_SPAGHETTI "Spaghettis"
#define CAT_ICE "Frozen"
#define CAT_DRINK "Drinks"
#define RCD_FLOORWALL 1
#define RCD_AIRLOCK 2

View File

@@ -38,6 +38,7 @@
CAT_SOUP,
CAT_SPAGHETTI,
),
CAT_DRINK = CAT_NONE,
CAT_CLOTHING = CAT_NONE,
)

View File

@@ -196,7 +196,7 @@
if(HAS_TRAIT(owner, TRAIT_DEPRESSION))
if(prob(0.05))
add_event(null, "depression", /datum/mood_event/depression)
add_event(null, "depression", /datum/mood_event/depression_mild)
clear_event(null, "jolly")
if(HAS_TRAIT(owner, TRAIT_JOLLY))
if(prob(0.05))

View File

@@ -47,11 +47,26 @@
mood_change = -2
timeout = 2400
/datum/mood_event/depression
/datum/mood_event/depression_minimal
description = "<span class='warning'>I feel a bit down.</span>\n"
mood_change = -10
timeout = 1200
/datum/mood_event/depression_mild
description = "<span class='warning'>I feel sad for no particular reason.</span>\n"
mood_change = -9
timeout = 1200
/datum/mood_event/depression_moderate
description = "<span class='warning'>I feel miserable.</span>\n"
mood_change = -14
timeout = 1200
/datum/mood_event/depression_severe
description = "<span class='warning'>I've lost all hope.</span>\n"
mood_change = -16
timeout = 1200
/datum/mood_event/shameful_suicide //suicide_acts that return SHAME, like sord
description = "<span class='boldwarning'>I can't even end it all!</span>\n"
mood_change = -10

View File

@@ -77,7 +77,7 @@
value = -1
gain_text = "<span class='danger'>You start feeling depressed.</span>"
lose_text = "<span class='notice'>You no longer feel depressed.</span>" //if only it were that easy!
medical_record_text = "Patient has a severe mood disorder, causing them to experience acute episodes of depression."
medical_record_text = "Patient has a mild mood disorder, causing them to experience episodes of depression."
mood_quirk = TRUE
/datum/quirk/family_heirloom

View File

@@ -16,6 +16,7 @@
var/isGlass = TRUE //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it
/obj/item/reagent_containers/food/drinks/on_reagent_change(changetype)
. = ..()
if (gulp_size < 5)
gulp_size = 5
else

View File

@@ -5,17 +5,51 @@
//Bottles now knockdown and break when smashed on people's heads. - Giacom
/obj/item/reagent_containers/food/drinks/bottle
name = "glass bottle"
desc = "This blank bottle is unyieldingly anonymous, offering no clues to its contents."
icon_state = "glassbottle"
custom_price = 65
amount_per_transfer_from_this = 10
volume = 100
force = 15 //Smashing bottles over someone's head hurts.
throwforce = 15
item_state = "broken_beer" //Generic held-item sprite until unique ones are made.
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
var/const/duration = 13 //Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets)
var/list/fill_icon_thresholds = list(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
isGlass = TRUE
foodtype = ALCOHOL
age_restricted = TRUE
/obj/item/reagent_containers/food/drinks/bottle/on_reagent_change(changetype)
update_icon()
/obj/item/reagent_containers/food/drinks/bottle/update_icon()
cut_overlays()
if(reagents.total_volume)
var/fill_name = icon_state
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[fill_name][fill_icon_thresholds[1]]")
var/percent = round((reagents.total_volume / volume) * 100)
for(var/i in 1 to fill_icon_thresholds.len)
var/threshold = fill_icon_thresholds[i]
var/threshold_end = (i == fill_icon_thresholds.len)? INFINITY : fill_icon_thresholds[i+1]
if(threshold <= percent && percent < threshold_end)
filling.icon_state = "[fill_name][fill_icon_thresholds[i]]"
filling.color = mix_color_from_reagents(reagents.reagent_list)
add_overlay(filling)
add_overlay("[initial(icon_state)]shine")
/obj/item/reagent_containers/food/drinks/bottle/small
name = "small glass bottle"
desc = "This blank bottle is unyieldingly anonymous, offering no clues to its contents."
icon_state = "glassbottlesmall"
volume = 50
custom_price = 55
/obj/item/reagent_containers/food/drinks/bottle/smash(mob/living/target, mob/thrower, ranged = FALSE)
//Creates a shattering noise and replaces the bottle with a broken_bottle
@@ -58,8 +92,6 @@
to_chat(user, "<span class='warning'>You don't want to harm [target]!</span>")
return
force = 15 //Smashing bottles over someoen's head hurts.
var/obj/item/bodypart/affecting = user.zone_selected //Find what the player is aiming at
var/armor_block = 0 //Get the target's armor values for normal attack damage.

View File

@@ -0,0 +1,117 @@
// This is the home of drink related tablecrafting recipes, I have opted to only let players bottle fancy boozes to reduce the number of entries.
///////////////// Booze & Bottles ///////////////////
/datum/crafting_recipe/kong
name = "Kong"
result = /obj/item/reagent_containers/food/drinks/bottle/kong
time = 30
reqs = list(
/datum/reagent/consumable/ethanol/whiskey = 100,
/obj/item/reagent_containers/food/snacks/monkeycube = 1,
/obj/item/reagent_containers/food/drinks/bottle = 1
)
category = CAT_DRINK
/datum/crafting_recipe/candycornliquor
name = "Candy Corn Liquor"
result = /obj/item/reagent_containers/food/drinks/bottle/candycornliquor
time = 30
reqs = list(
/datum/reagent/consumable/ethanol/whiskey = 100,
/obj/item/reagent_containers/food/snacks/candy_corn = 1,
/obj/item/reagent_containers/food/drinks/bottle = 1
)
category = CAT_DRINK
/datum/crafting_recipe/lizardwine
name = "Lizard Wine"
time = 40
reqs = list(
/obj/item/organ/tail/lizard = 1,
/datum/reagent/consumable/ethanol = 100,
/obj/item/reagent_containers/food/drinks/bottle = 1
)
result = /obj/item/reagent_containers/food/drinks/bottle/lizardwine
category = CAT_DRINK
/datum/crafting_recipe/moonshinejug
name = "Moonshine Jug"
time = 30
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle = 1,
/datum/reagent/consumable/ethanol/moonshine = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/moonshine
category = CAT_DRINK
/datum/crafting_recipe/hoochbottle
name = "Hooch Bottle"
time = 30
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle = 1,
/obj/item/storage/box/papersack = 1,
/datum/reagent/consumable/ethanol/hooch = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/hooch
category = CAT_DRINK
/datum/crafting_recipe/blazaambottle
name = "Blazaam Bottle"
time = 20
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle = 1,
/datum/reagent/consumable/ethanol/blazaam = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/blazaam
category = CAT_DRINK
/datum/crafting_recipe/champagnebottle
name = "Champagne Bottle"
time = 30
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle = 1,
/datum/reagent/consumable/ethanol/champagne = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/champagne
category = CAT_DRINK
/datum/crafting_recipe/trappistbottle
name = "Trappist Bottle"
time = 15
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle/small = 1,
/datum/reagent/consumable/ethanol/trappist = 50
)
result = /obj/item/reagent_containers/food/drinks/bottle/trappist
category = CAT_DRINK
/datum/crafting_recipe/goldschlagerbottle
name = "Goldschlager Bottle"
time = 30
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle = 1,
/datum/reagent/consumable/ethanol/goldschlager = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/goldschlager
category = CAT_DRINK
/datum/crafting_recipe/patronbottle
name = "Patron Bottle"
time = 30
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle = 1,
/datum/reagent/consumable/ethanol/patron = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/patron
category = CAT_DRINK
/datum/crafting_recipe/nothingbottle
name = "Nothing Bottle"
time = 30
reqs = list(
/obj/item/reagent_containers/food/drinks/bottle = 1,
/datum/reagent/consumable/nothing = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing
category = CAT_DRINK

View File

@@ -221,17 +221,6 @@
result = /obj/item/reagent_containers/food/snacks/honeybar
subcategory = CAT_MISCFOOD
/datum/crafting_recipe/food/lizardwine
name = "Lizard Wine"
time = 40
reqs = list(
/obj/item/organ/tail/lizard = 1,
/datum/reagent/consumable/ethanol = 100
)
result = /obj/item/reagent_containers/food/drinks/bottle/lizardwine
subcategory = CAT_MISCFOOD
/datum/crafting_recipe/food/loadedbakedpotato
name = "Loaded Baked Potato"
time = 40

View File

@@ -703,7 +703,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/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
color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha) (like water)
boozepwr = 95
taste_description = "bitterness"
glass_icon_state = "glass_clear"

View File

@@ -31,7 +31,9 @@
/obj/item/reagent_containers/food/drinks/bottle/absinthe = 5,
/obj/item/reagent_containers/food/drinks/bottle/grappa = 5,
/obj/item/reagent_containers/food/drinks/bottle/sake = 5,
/obj/item/reagent_containers/food/drinks/bottle/applejack = 5)
/obj/item/reagent_containers/food/drinks/bottle/applejack = 5,
/obj/item/reagent_containers/food/drinks/bottle = 15,
/obj/item/reagent_containers/food/drinks/bottle/small = 15)
contraband = list(/obj/item/reagent_containers/food/drinks/mug/tea = 12,
/obj/item/reagent_containers/food/drinks/bottle/fernet = 5)
premium = list(/obj/item/reagent_containers/glass/bottle/ethanol = 4,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -1810,6 +1810,7 @@
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_bread.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_burger.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_cake.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_drink.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_egg.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_frozen.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_meat.dm"

View File

@@ -18,3 +18,53 @@
if(!M.dna.species.is_wagging_tail())
M.emote("wag")
return ..()
/datum/reagent/consumable/ethanol/whiskey/kong
name = "Kong"
description = "Makes You Go Ape!&#174;"
color = "#332100" // rgb: 51, 33, 0
addiction_threshold = 15
taste_description = "the grip of a giant ape"
glass_name = "glass of Kong"
glass_desc = "Makes You Go Ape!&#174;"
/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage1(mob/living/M)
if(prob(5))
to_chat(M, "<span class='notice'>You've made so many mistakes.</span>")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_minimal", /datum/mood_event/depression_minimal)
..()
/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage2(mob/living/M)
if(prob(5))
to_chat(M, "<span class='notice'>No matter what you do, people will always get hurt.</span>")
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "depression_minimal", /datum/mood_event/depression_minimal)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_mild", /datum/mood_event/depression_mild)
..()
/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage3(mob/living/M)
if(prob(5))
to_chat(M, "<span class='notice'>You've lost so many people.</span>")
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "depression_mild", /datum/mood_event/depression_mild)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_moderate", /datum/mood_event/depression_moderate)
..()
/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage4(mob/living/M)
if(prob(5))
to_chat(M, "<span class='notice'>Just lie down and die.</span>")
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "depression_moderate", /datum/mood_event/depression_moderate)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_severe", /datum/mood_event/depression_severe)
..()
/datum/reagent/consumable/ethanol/whiskey/candycorn
name = "candy corn liquor"
description = "Like they drank in 2D speakeasies."
color = "#ccb800" // rgb: 204, 184, 0
taste_description = "pancake syrup"
glass_name = "glass of candy corn liquor"
glass_desc = "Good for your Imagination."
var/hal_amt = 4
/datum/reagent/consumable/ethanol/whiskey/candycorn/on_mob_life(mob/living/carbon/M)
if(prob(10))
M.hallucination += hal_amt //conscious dreamers can be treasurers to their own currency
..()

View File

@@ -3,3 +3,25 @@
desc = "A bottle containing Space Drugs."
icon_state = "bottle3"
list_reagents = list(/datum/reagent/drug/space_drugs = 10)
/obj/item/reagent_containers/food/drinks/bottle/kong
name = "Kong"
desc = "Makes You Go Ape!&#174;"
list_reagents = list(/datum/reagent/consumable/ethanol/whiskey/kong = 100)
/obj/item/reagent_containers/food/drinks/bottle/candycornliquor
name = "candy corn liquor"
desc = "Like they drank in 2D speakeasies."
list_reagents = list(/datum/reagent/consumable/ethanol/whiskey/candycorn = 100)
/obj/item/reagent_containers/food/drinks/bottle/hooch
name = "hooch bottle"
desc = "A bottle of rotgut. Its owner has applied some street wisdom to cleverly disguise it as a brown paper bag."
icon_state = "hoochbottle"
list_reagents = list(/datum/reagent/consumable/ethanol/hooch = 100)
/obj/item/reagent_containers/food/drinks/bottle/moonshine
name = "moonshine jug"
desc = "It is said that the ancient Appalachians used these stoneware jugs to capture lightning in a bottle."
icon_state = "moonshinebottle"
list_reagents = list(/datum/reagent/consumable/ethanol/moonshine = 100)