From 6e7801550b588314916ced16ba8448fa614343fb Mon Sep 17 00:00:00 2001 From: Urumasi Date: Wed, 9 Oct 2019 18:05:52 +0200 Subject: [PATCH] Moves reagent fill code and adds caps to plastic water bottles (#46878) * Adds caps to plastic bottles * Non-crafted water bottles now spawned closed * Added warning message for closed bottles, fixed minor bug * meme * Makes the warning only show up when doing valid actions with the bottle * Clumsy people now have a chance to lose the cap * Fix small bottle's cap when fallen over, bottles now turn upright when opened on the floor * Add a minor positive moodlet on bottle flip * Adds a relic lavaland water bottle that always lands upright * Moves container fill overlay to reagent_containers, changes glass/beaker/waterbottle to glass/waterbottle * Make actions with closed cap early return * Minor code cleanup --- .../lavaland_surface_ash_walker1.dmm | 2 +- .../lavaland_surface_syndicate_base1.dmm | 12 +- _maps/RandomRuins/SpaceRuins/deepstorage.dmm | 12 +- _maps/shuttles/ruin_caravan_victim.dmm | 6 +- _maps/shuttles/whiteship_box.dmm | 18 +-- _maps/shuttles/whiteship_delta.dmm | 12 +- _maps/shuttles/whiteship_meta.dmm | 12 +- .../mood_events/generic_positive_events.dm | 5 + .../items/stacks/sheets/sheet_types.dm | 4 +- code/game/objects/items/tanks/watertank.dm | 22 +-- .../modules/food_and_drinks/food/condiment.dm | 21 +-- .../mining/lavaland/necropolis_chests.dm | 9 +- code/modules/reagents/reagent_containers.dm | 26 ++++ .../reagents/reagent_containers/blood_pack.dm | 13 +- .../reagents/reagent_containers/bottle.dm | 28 +--- .../reagents/reagent_containers/chem_pack.dm | 16 +-- .../reagents/reagent_containers/dropper.dm | 1 + .../reagents/reagent_containers/glass.dm | 131 +++++++++++++----- code/modules/vending/cola.dm | 2 +- icons/obj/drinks.dmi | Bin 83685 -> 85380 bytes icons/obj/reagentfillings.dmi | Bin 4464 -> 4473 bytes 21 files changed, 188 insertions(+), 164 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index 40f2a34d629..182b05ccb6a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -275,7 +275,7 @@ dir = 8 }, /obj/machinery/iv_drip, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/reagent_containers/glass/waterbottle/large, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "aR" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index d0002f10889..f42a27c9725 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -1421,21 +1421,21 @@ "ft" = ( /obj/effect/turf_decal/box/white/corners, /obj/structure/closet/crate, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -3; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -3; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large, +/obj/item/reagent_containers/glass/waterbottle/large, +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 3; pixel_y = -3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 3; pixel_y = -3 }, diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 23d1cb09257..8f4d402bd17 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -1003,25 +1003,25 @@ /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -5; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 2; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -2 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 5 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 1; pixel_y = -3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 8; pixel_y = -3 }, diff --git a/_maps/shuttles/ruin_caravan_victim.dmm b/_maps/shuttles/ruin_caravan_victim.dmm index 3ecf42d86af..63ef397c9fb 100644 --- a/_maps/shuttles/ruin_caravan_victim.dmm +++ b/_maps/shuttles/ruin_caravan_victim.dmm @@ -140,12 +140,12 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle{ +/obj/item/reagent_containers/glass/waterbottle{ pixel_x = -3; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle, -/obj/item/reagent_containers/glass/beaker/waterbottle{ +/obj/item/reagent_containers/glass/waterbottle, +/obj/item/reagent_containers/glass/waterbottle{ pixel_x = 3; pixel_y = -3 }, diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 92aa8cc6b42..18053265f39 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -336,12 +336,12 @@ locked = 0; name = "fridge" }, -/obj/item/reagent_containers/glass/beaker/waterbottle{ +/obj/item/reagent_containers/glass/waterbottle{ pixel_x = -3; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle, -/obj/item/reagent_containers/glass/beaker/waterbottle{ +/obj/item/reagent_containers/glass/waterbottle, +/obj/item/reagent_containers/glass/waterbottle{ pixel_x = 3; pixel_y = -3 }, @@ -529,25 +529,25 @@ /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -5; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 2; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -2 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 5 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 1; pixel_y = -3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 8; pixel_y = -3 }, diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index 57243650ffa..30b073d52e9 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -201,21 +201,21 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/bot_white, /obj/structure/closet/crate, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -3; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large, +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 3; pixel_y = -3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle{ +/obj/item/reagent_containers/glass/waterbottle{ pixel_x = -3; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle, -/obj/item/reagent_containers/glass/beaker/waterbottle{ +/obj/item/reagent_containers/glass/waterbottle, +/obj/item/reagent_containers/glass/waterbottle{ pixel_x = 3; pixel_y = -3 }, diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index b3c80d1e95d..7ff4ad5f94f 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -295,25 +295,25 @@ /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -5; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 2; pixel_y = 3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = -2 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 5 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 1; pixel_y = -3 }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ +/obj/item/reagent_containers/glass/waterbottle/large{ pixel_x = 8; pixel_y = -3 }, diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index a1abe4bd92f..17bad400d17 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -153,6 +153,11 @@ mood_change = 3 timeout = 5 MINUTES +/datum/mood_event/bottle_flip + description = "The bottle landing like that was satisfying.\n" + mood_change = 2 + timeout = 3 MINUTES + /datum/mood_event/area description = "" //Fill this out in the area mood_change = 0 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 1434e2ee97f..6dee7411852 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -657,8 +657,8 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ GLOBAL_LIST_INIT(plastic_recipes, list( new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ - new /datum/stack_recipe("water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/empty), \ - new /datum/stack_recipe("large water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty,3), \ + new /datum/stack_recipe("water bottle", /obj/item/reagent_containers/glass/waterbottle/empty), \ + new /datum/stack_recipe("large water bottle", /obj/item/reagent_containers/glass/waterbottle/large/empty,3), \ new /datum/stack_recipe("wet floor sign", /obj/item/clothing/suit/caution, 2))) /obj/item/stack/sheet/plastic diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 34e3579237a..e5227e28cc4 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -342,6 +342,8 @@ reagent_flags = OPENCONTAINER spillable = FALSE possible_transfer_amounts = list(5,10,15) + fill_icon_thresholds = list(0, 15, 60) + fill_icon_state = "backpack" /obj/item/reagent_containers/chemtank/ui_action_click() toggle_injection() @@ -363,24 +365,6 @@ turn_on() //Todo : cache these. -/obj/item/reagent_containers/chemtank/proc/update_filling() - cut_overlays() - - if(reagents.total_volume) - var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "backpack-10") - - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 15) - filling.icon_state = "backpack-10" - if(16 to 60) - filling.icon_state = "backpack50" - if(61 to INFINITY) - filling.icon_state = "backpack100" - - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) - /obj/item/reagent_containers/chemtank/worn_overlays(var/isinhands = FALSE) //apply chemcolor and level . = list() //inhands + reagent_filling @@ -426,7 +410,7 @@ var/used_amount = injection_amount/usage_ratio reagents.reaction(user, INJECT,injection_amount,0) reagents.trans_to(user,used_amount,multiplier=usage_ratio) - update_filling() + update_icon() user.update_inv_back() //for overlays update //Operator backpack spray diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 4843f8d34f8..feacd4713e4 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -34,6 +34,7 @@ ) var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters. var/icon_empty = "" + fill_icon_thresholds = list(0, 10, 25, 50, 75, 100) /obj/item/reagent_containers/food/condiment/Initialize() . = ..() @@ -52,32 +53,16 @@ icon_empty = possible_states[main_reagent]["icon_empty"] name = possible_states[main_reagent]["name"] desc = possible_states[main_reagent]["desc"] + return ..(TRUE) // Don't fill normally else name = "condiment bottle" desc = "Just your average condiment bottle." icon_state = "emptycondiment" - var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]-10") - - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 24) - filling.icon_state = "[icon_state]-10" - if(25 to 49) - filling.icon_state = "[icon_state]25" - if(50 to 74) - filling.icon_state = "[icon_state]50" - if(75 to 99) - filling.icon_state = "[icon_state]75" - if(100 to INFINITY) - filling.icon_state = "[icon_state]100" - - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) else if(icon_empty) icon_state = icon_empty - ..() + . = ..() /obj/item/reagent_containers/food/condiment/suicide_act(mob/living/carbon/user) user.visible_message("[user] is trying to eat the entire [src]! It looks like [user.p_they()] forgot how food works!") diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 6eab9be3b0c..2fdc45476d2 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -13,7 +13,7 @@ desc = "It's watching you suspiciously." /obj/structure/closet/crate/necropolis/tendril/PopulateContents() - var/loot = rand(1,28) + var/loot = rand(1,29) switch(loot) if(1) new /obj/item/shared_storage/red(src) @@ -79,6 +79,8 @@ new /obj/item/bedsheet/cult(src) if(28) new /obj/item/clothing/neck/necklace/memento_mori(src) + if(29) + new /obj/item/reagent_containers/glass/waterbottle/relic(src) //KA modkit design discs /obj/item/disk/design_disk/modkit_disc @@ -325,6 +327,11 @@ if(!isnull(lighting_alpha)) user.lighting_alpha = min(user.lighting_alpha, lighting_alpha) +// Relic water bottle +/obj/item/reagent_containers/glass/waterbottle/relic + desc = "A bottle of water filled at an old Earth bottling facility. It seems to be radiating some kind of energy." + flip_chance = 100 // FLIPP + //Red/Blue Cubes /obj/item/warp_cube name = "blue cube" diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index cfc0dd3a80d..59624a4d46a 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -12,6 +12,8 @@ var/spawned_disease = null var/disease_amount = 20 var/spillable = FALSE + var/list/fill_icon_thresholds = null + var/fill_icon_state = null // Optional custom name for reagent fill icon_state prefix /obj/item/reagent_containers/Initialize(mapload, vol) . = ..() @@ -121,3 +123,27 @@ /obj/item/reagent_containers/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) reagents.expose_temperature(exposed_temperature) + +/obj/item/reagent_containers/on_reagent_change(changetype) + update_icon() + +/obj/item/reagent_containers/update_icon(dont_fill=FALSE) + if(!fill_icon_thresholds || dont_fill) + return ..() + + cut_overlays() + + if(reagents.total_volume) + var/fill_name = fill_icon_state? fill_icon_state : 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) + . = ..() diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 2aea9a27ef3..fd87ab82d5a 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -7,6 +7,7 @@ var/blood_type = null var/unique_blood = null var/labelled = 0 + fill_icon_thresholds = list(10, 20, 30, 40, 50, 60, 70, 80, 90, 100) /obj/item/reagent_containers/blood/Initialize() . = ..() @@ -31,16 +32,6 @@ else name = "blood pack" -/obj/item/reagent_containers/blood/update_icon() - cut_overlays() - - var/v = min(round(reagents.total_volume / volume * 10), 10) - if(v > 0) - var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "bloodpack1") - filling.icon_state = "bloodpack[v]" - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) - /obj/item/reagent_containers/blood/random icon_state = "random_bloodpack" @@ -94,4 +85,4 @@ labelled = 0 update_pack_name() else - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 50e9710a76f..6c16a5d2cba 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -7,7 +7,7 @@ item_state = "atoxinbottle" possible_transfer_amounts = list(5,10,15,25,30) volume = 30 - + fill_icon_thresholds = list(0, 10, 30, 50, 70) /obj/item/reagent_containers/glass/bottle/Initialize() . = ..() @@ -15,32 +15,6 @@ icon_state = "bottle" update_icon() -/obj/item/reagent_containers/glass/bottle/on_reagent_change(changetype) - update_icon() - -/obj/item/reagent_containers/glass/bottle/update_icon() - cut_overlays() - if(reagents.total_volume) - var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]-10") - - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 9) - filling.icon_state = "[icon_state]-10" - if(10 to 29) - filling.icon_state = "[icon_state]25" - if(30 to 49) - filling.icon_state = "[icon_state]50" - if(50 to 69) - filling.icon_state = "[icon_state]75" - if(70 to INFINITY) - filling.icon_state = "[icon_state]100" - - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) - . = ..() - - /obj/item/reagent_containers/glass/bottle/epinephrine name = "epinephrine bottle" desc = "A small bottle. Contains epinephrine - used to stabilize patients." diff --git a/code/modules/reagents/reagent_containers/chem_pack.dm b/code/modules/reagents/reagent_containers/chem_pack.dm index e8a4c84317b..ddd0813445b 100644 --- a/code/modules/reagents/reagent_containers/chem_pack.dm +++ b/code/modules/reagents/reagent_containers/chem_pack.dm @@ -9,19 +9,7 @@ obj_flags = UNIQUE_RENAME resistance_flags = ACID_PROOF var/sealed = FALSE - -/obj/item/reagent_containers/chem_pack/on_reagent_change(changetype) - update_icon() - -/obj/item/reagent_containers/chem_pack/update_icon() - cut_overlays() - - var/v = min(round(reagents.total_volume / volume * 10), 10) - if(v > 0) - var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "chempack1") - filling.icon_state = "chempack[v]" - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) + fill_icon_thresholds = list(10, 20, 30, 40, 50, 60, 70, 80, 90, 100) /obj/item/reagent_containers/chem_pack/AltClick(mob/living/user) if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERY) && !sealed) @@ -48,4 +36,4 @@ obj/item/reagent_containers/chem_pack/attack_self(mob/user) if(sealed) return - ..() \ No newline at end of file + ..() diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 2feadf7d4ab..07f321125e9 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -87,3 +87,4 @@ var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "dropper") filling.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling) + . = ..(TRUE) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 52d69f05736..390efb78498 100755 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -116,6 +116,7 @@ icon_state = "beaker" item_state = "beaker" custom_materials = list(/datum/material/glass=500) + fill_icon_thresholds = list(0, 10, 25, 50, 75, 80, 90) /obj/item/reagent_containers/glass/beaker/Initialize() . = ..() @@ -124,36 +125,6 @@ /obj/item/reagent_containers/glass/beaker/get_part_rating() return reagents.maximum_volume -/obj/item/reagent_containers/glass/beaker/on_reagent_change(changetype) - update_icon() - -/obj/item/reagent_containers/glass/beaker/update_icon() - cut_overlays() - - if(reagents.total_volume) - var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]10") - - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 9) - filling.icon_state = "[icon_state]-10" - if(10 to 24) - filling.icon_state = "[icon_state]10" - if(25 to 49) - filling.icon_state = "[icon_state]25" - if(50 to 74) - filling.icon_state = "[icon_state]50" - if(75 to 79) - filling.icon_state = "[icon_state]75" - if(80 to 90) - filling.icon_state = "[icon_state]80" - if(91 to INFINITY) - filling.icon_state = "[icon_state]100" - - filling.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(filling) - . = ..() - /obj/item/reagent_containers/glass/beaker/jar name = "honey jar" desc = "A jar for honey. It can hold up to 50 units of sweet delight." @@ -316,7 +287,7 @@ return return ..() -/obj/item/reagent_containers/glass/beaker/waterbottle +/obj/item/reagent_containers/glass/waterbottle name = "bottle of water" desc = "A bottle of water filled at an old Earth bottling facility." icon = 'icons/obj/drinks.dmi' @@ -326,20 +297,112 @@ custom_materials = list(/datum/material/glass=0) volume = 50 amount_per_transfer_from_this = 10 + fill_icon_thresholds = list(0, 10, 25, 50, 75, 80, 90) -/obj/item/reagent_containers/glass/beaker/waterbottle/empty + // The 2 bottles have separate cap overlay icons because if the bottle falls over while bottle flipping the cap stays fucked on the moved overlay + var/cap_icon_state = "bottle_cap_small" + var/cap_on = TRUE + var/cap_lost = FALSE + var/mutable_appearance/cap_overlay + var/flip_chance = 10 + +/obj/item/reagent_containers/glass/waterbottle/Initialize() + . = ..() + cap_overlay = mutable_appearance(icon, cap_icon_state) + if(cap_on) + spillable = FALSE + add_overlay(cap_overlay, TRUE) + +/obj/item/reagent_containers/glass/waterbottle/examine(mob/user) + . = ..() + if(cap_lost) + . += "The cap seems to be missing." + else if(cap_on) + . += "The cap is firmly on to prevent spilling. Alt-click to remove the cap." + else + . += "The cap has been taken off. Alt-click to put a cap on." + +/obj/item/reagent_containers/glass/waterbottle/AltClick(mob/user) + . = ..() + if(cap_lost) + to_chat(user, "The cap seems to be missing! Where did it go?") + return + + var/fumbled = HAS_TRAIT(user, TRAIT_CLUMSY) && prob(5) + if(cap_on || fumbled) + cap_on = FALSE + spillable = TRUE + cut_overlay(cap_overlay, TRUE) + animate(src, transform = null, time = 2, loop = 0) + if(fumbled) + to_chat(user, "You fumble with [src]'s cap! The cap falls onto the ground and simply vanishes. Where the hell did it go?") + cap_lost = TRUE + else + to_chat(user, "You remove the cap from [src].") + else + cap_on = TRUE + spillable = FALSE + add_overlay(cap_overlay, TRUE) + to_chat(user, "You put the cap on [src].") + update_icon() + +/obj/item/reagent_containers/glass/waterbottle/is_refillable() + if(cap_on) + return FALSE + . = ..() + +/obj/item/reagent_containers/glass/waterbottle/is_drainable() + if(cap_on) + return FALSE + . = ..() + +/obj/item/reagent_containers/glass/waterbottle/attack(mob/M, mob/user, obj/target) + if(cap_on && reagents.total_volume && istype(M)) + to_chat(user, "You must remove the cap before you can do that!") + return + . = ..() + +/obj/item/reagent_containers/glass/waterbottle/afterattack(obj/target, mob/user, proximity) + if(cap_on && (target.is_refillable() || target.is_drainable() || (reagents.total_volume && user.a_intent == INTENT_HARM))) + to_chat(user, "You must remove the cap before you can do that!") + return + + else if(istype(target, /obj/item/reagent_containers/glass/waterbottle)) + var/obj/item/reagent_containers/glass/waterbottle/WB = target + if(WB.cap_on) + to_chat(user, "[WB] has a cap firmly twisted on!") + . = ..() + +// heehoo bottle flipping +/obj/item/reagent_containers/glass/waterbottle/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + . = ..() + if(cap_on && reagents.total_volume) + if(prob(flip_chance)) // landed upright + src.visible_message("[src] lands upright!") + SEND_SIGNAL(throwingdatum.thrower, COMSIG_ADD_MOOD_EVENT, "bottle_flip", /datum/mood_event/bottle_flip) + else // landed on it's side + animate(src, transform = matrix(prob(50)? 90 : -90, MATRIX_ROTATE), time = 3, loop = 0) + +/obj/item/reagent_containers/glass/waterbottle/pickup(mob/user) + . = ..() + animate(src, transform = null, time = 1, loop = 0) + +/obj/item/reagent_containers/glass/waterbottle/empty list_reagents = list() + cap_on = FALSE -/obj/item/reagent_containers/glass/beaker/waterbottle/large +/obj/item/reagent_containers/glass/waterbottle/large desc = "A fresh commercial-sized bottle of water." icon_state = "largebottle" custom_materials = list(/datum/material/glass=0) list_reagents = list(/datum/reagent/water = 100) volume = 100 amount_per_transfer_from_this = 20 + cap_icon_state = "bottle_cap" -/obj/item/reagent_containers/glass/beaker/waterbottle/large/empty +/obj/item/reagent_containers/glass/waterbottle/large/empty list_reagents = list() + cap_on = FALSE /obj/item/pestle name = "pestle" diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm index 5c40adb01fb..04e6e276e0c 100644 --- a/code/modules/vending/cola.dm +++ b/code/modules/vending/cola.dm @@ -12,7 +12,7 @@ /obj/item/reagent_containers/food/drinks/soda_cans/space_up = 10, /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game = 10, /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime = 10, - /obj/item/reagent_containers/glass/beaker/waterbottle = 10) + /obj/item/reagent_containers/glass/waterbottle = 10) contraband = list(/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6, /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6) premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1, diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 297eff6ac0e3c59d27b7b3cfbd8f408c8485d4a5..47a78c8b410d7a9a71b0af47259d3525f7befbf9 100644 GIT binary patch delta 27656 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 delta 25952 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 delta 484 zcmVfFDZ*Bkpc$}4%&u+pn493s&DIz#;;_qMw zE)!_t0PheQFRkk0DvgGC`yC*tMVkEe)<{1)@#im%C+2JaeK?uj@sRyeXiK@6ty#WL zv(dG5u`pY+m}jGcN?*kLqK!6^*_!d0Y(?R1HXUapSBBPX&3`N#{RCUn{riQ4!TAaV zS7^pHnsI{{gOY56CtM}A!P77r){AZM1dGNtc!HH<8$7}CJ*w34_7=*Erx^Ck{G9U4%jckV&Sfmf{~ zIr0Xwh-++K>Cf5|o#W^NN0&GX{3#Rqfun02-QeiwfLIowBa0Vy_!#Gf-5?kq;=Hhf zXE-nH;1SLXJ9vV-7pT*DK{aOeMCwjYq;B*?>ON1TE>CsMcgQ~7_J aG%@?r&g_nd><^(g5FJ(a#5%JA0(TD@BkIxs