diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index 91720122a5d..ba32050e051 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -339,7 +339,7 @@ /area/awaymission/cabin) "bc" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/cup/glass/britcup, +/obj/item/reagent_containers/cup/glass/mug/britcup, /turf/open/floor/carpet, /area/awaymission/cabin) "bd" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index c603497baeb..a9d12159991 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2442,6 +2442,27 @@ }, /turf/open/floor/wood, /area/station/service/theater) +"aBF" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/directional/east, +/obj/effect/spawner/random/structure/table_fancy, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + desc = "Whatever it is, it reeks of foul, putrid froth."; + list_reagents = list(/datum/reagent/consumable/ethanol/bacchus_blessing = 15); + name = "Delta-Down"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/commons/dorms) "aBL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -15161,18 +15182,6 @@ /obj/item/clothing/mask/breath, /turf/open/floor/iron/dark/textured_large, /area/station/engineering/atmos/storage/gas) -"dDe" = ( -/obj/structure/table/reinforced, -/obj/machinery/newscaster/directional/north, -/obj/item/clipboard, -/obj/item/toy/figure/engineer{ - pixel_x = -6 - }, -/obj/item/toy/figure/atmos{ - pixel_x = 6 - }, -/turf/open/floor/wood, -/area/station/engineering/break_room) "dDk" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ @@ -27025,30 +27034,6 @@ /obj/effect/spawner/random/food_or_drink/donkpockets, /turf/open/floor/iron, /area/station/maintenance/department/security) -"gxk" = ( -/obj/item/paper_bin{ - pixel_x = -7 - }, -/obj/item/pen{ - pixel_x = -7 - }, -/obj/item/reagent_containers/cup/glass/britcup{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/window{ - dir = 1 - }, -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "gxv" = ( /obj/structure/table, /obj/item/restraints/handcuffs, @@ -45886,6 +45871,30 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron, /area/station/security/prison/safe) +"lde" = ( +/obj/item/paper_bin{ + pixel_x = -7 + }, +/obj/item/pen{ + pixel_x = -7 + }, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/table, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) "ldh" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, @@ -50584,6 +50593,23 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/main) +"mnh" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm/directional/north, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/storage/box/coffeepack{ + pixel_x = -13; + pixel_y = 7 + }, +/turf/open/floor/wood, +/area/station/engineering/break_room) "mnz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -51573,6 +51599,18 @@ }, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) +"mzO" = ( +/obj/structure/table/reinforced, +/obj/machinery/newscaster/directional/north, +/obj/item/clipboard, +/obj/item/toy/figure/engineer{ + pixel_x = -6 + }, +/obj/item/toy/figure/atmos{ + pixel_x = 6 + }, +/turf/open/floor/wood, +/area/station/engineering/break_room) "mzV" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/bot, @@ -65562,6 +65600,11 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/service/kitchen/abandoned) +"pXB" = ( +/obj/structure/table/reinforced, +/obj/machinery/coffeemaker/impressa, +/turf/open/floor/wood, +/area/station/engineering/break_room) "pXK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -79628,27 +79671,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/medical/morgue) -"twv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/newscaster/directional/east, -/obj/effect/spawner/random/structure/table_fancy, -/obj/item/reagent_containers/cup/glass/bottle/beer{ - desc = "Whatever it is, it reeks of foul, putrid froth."; - list_reagents = list(/datum/reagent/consumable/ethanol/bacchus_blessing = 15); - name = "Delta-Down"; - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = -6; - pixel_y = 3 - }, -/turf/open/floor/wood, -/area/station/commons/dorms) "tww" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -82157,23 +82179,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"ubg" = ( -/obj/structure/table/reinforced, -/obj/machinery/airalarm/directional/north, -/obj/effect/spawner/random/entertainment/cigarette_pack{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/effect/spawner/random/entertainment/cigarette_pack{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/item/storage/box/coffeepack{ - pixel_x = -13; - pixel_y = 7 - }, -/turf/open/floor/wood, -/area/station/engineering/break_room) "ubk" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -92832,11 +92837,6 @@ /obj/effect/turf_decal/trimline/yellow/warning, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"wBr" = ( -/obj/structure/table/reinforced, -/obj/machinery/coffeemaker/impressa, -/turf/open/floor/wood, -/area/station/engineering/break_room) "wBB" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/yjunction{ @@ -122009,7 +122009,7 @@ tsB sch cKK vQj -dDe +mzO agA hHJ tgl @@ -122266,7 +122266,7 @@ lKe nZW qAz vQj -ubg +mnh agA uzb jLx @@ -122523,7 +122523,7 @@ ciD vYI lpv vQj -wBr +pXB gsf miE tgl @@ -139717,7 +139717,7 @@ xeH qAV xYZ vGf -gxk +lde cAw sJd khn @@ -152365,7 +152365,7 @@ aaa aad vop qqe -twv +aBF yaI fNn uEo diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 3becb76769a..4238c43873b 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -749,18 +749,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/mine/laborcamp) -"aoI" = ( -/obj/structure/table/wood, -/obj/item/phone{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/britcup{ - pixel_x = 8; - pixel_y = 8 - }, -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) "aoK" = ( /obj/structure/table, /obj/item/toy/cards/deck, @@ -1729,10 +1717,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) -"aDG" = ( -/obj/machinery/vending/cart, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "aDI" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -3022,14 +3006,6 @@ dir = 9 }, /area/station/science/lab) -"aWP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "aWS" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/donkpocketberry, @@ -3754,6 +3730,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) +"bhK" = ( +/obj/structure/table, +/obj/item/folder/blue, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "bie" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -5306,6 +5287,12 @@ }, /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) +"bDR" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "bDX" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, @@ -6542,13 +6529,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"bWA" = ( -/obj/structure/closet/secure_closet/hop, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "bWB" = ( /obj/structure/table, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -6847,32 +6827,6 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"caA" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/button/flasher{ - pixel_y = -32; - id = "hopflash" - }, -/obj/machinery/button/door/directional/south{ - pixel_x = -8; - req_access = list("hop"); - id = "hopqueue"; - name = "Queue Shutters Control" - }, -/obj/machinery/button/door/directional/south{ - pixel_y = -24; - pixel_x = 8; - name = "Privacy Shutters Control"; - req_access = list("hop"); - id = "hop" - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "caC" = ( /obj/machinery/door/window/right/directional/south{ dir = 8; @@ -7317,6 +7271,10 @@ }, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) +"cgC" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "cgR" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -7979,10 +7937,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"cqQ" = ( -/obj/effect/mapping_helpers/ianbirthday, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/hop) "crg" = ( /obj/machinery/door/morgue{ name = "Confession Booth" @@ -10108,14 +10062,6 @@ dir = 1 }, /area/station/security/prison/garden) -"cXE" = ( -/obj/structure/bed/dogbed/ian, -/mob/living/basic/pet/dog/corgi/ian{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/hop) "cXV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/dark_red/filled/line{ @@ -10435,32 +10381,6 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/security/prison/safe) -"dbP" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/north{ - dir = 8; - name = "Reception Window" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "hop"; - name = "Privacy Shutters" - }, -/obj/structure/desk_bell{ - pixel_x = 7 - }, -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 4; - icon_state = "rightsecure"; - name = "Head of Personnel's Desk"; - req_access = list("hop") - }, -/obj/machinery/flasher/directional/south{ - pixel_y = -23 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "dcd" = ( /obj/structure/ladder, /turf/open/floor/plating, @@ -14481,10 +14401,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/science/explab) -"epW" = ( -/obj/machinery/pdapainter, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "epX" = ( /obj/structure/table/wood, /obj/item/toy/cards/deck{ @@ -15144,6 +15060,12 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"eAV" = ( +/obj/machinery/light/directional/south, +/obj/effect/mapping_helpers/trapdoor_placer, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "eBa" = ( /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/white/smooth_large, @@ -16567,6 +16489,16 @@ /obj/item/ai_module/reset, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"eWc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "eWh" = ( /obj/machinery/door/window/left/directional/north{ base_state = "right"; @@ -18966,6 +18898,16 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/plating, /area/station/engineering/atmos) +"fJl" = ( +/obj/machinery/computer/accounting{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "fJm" = ( /obj/structure/railing{ dir = 8 @@ -21732,6 +21674,14 @@ }, /turf/open/floor/iron/dark, /area/mine/storage) +"gCn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "gCu" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -21786,11 +21736,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/fore) -"gDJ" = ( -/obj/machinery/bluespace_vendor/directional/north, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "gDO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24235,6 +24180,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/service) +"hsi" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/hangover, +/obj/machinery/light/directional/east, +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "hsl" = ( /obj/structure/table, /obj/effect/turf_decal/tile/brown{ @@ -24588,12 +24541,6 @@ }, /turf/open/floor/iron, /area/station/service/bar) -"hxh" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "hxs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25119,14 +25066,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/service/hydroponics) -"hGL" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/hangover, -/obj/machinery/light/directional/east, -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "hHb" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/hallway) @@ -25843,11 +25782,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"hTb" = ( -/obj/structure/table, -/obj/item/folder/blue, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "hTm" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/meter, @@ -26155,6 +26089,13 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"hYW" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "hZe" = ( /obj/effect/turf_decal/trimline/yellow/warning{ dir = 1 @@ -26236,6 +26177,14 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"iaS" = ( +/obj/machinery/modular_computer/console/preset/id, +/obj/item/paper/fluff/ids_for_dummies, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "iaT" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, @@ -27409,6 +27358,32 @@ dir = 8 }, /area/station/service/chapel) +"isa" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/button/flasher{ + pixel_y = -32; + id = "hopflash" + }, +/obj/machinery/button/door/directional/south{ + pixel_x = -8; + req_access = list("hop"); + id = "hopqueue"; + name = "Queue Shutters Control" + }, +/obj/machinery/button/door/directional/south{ + pixel_y = -24; + pixel_x = 8; + name = "Privacy Shutters Control"; + req_access = list("hop"); + id = "hop" + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "isb" = ( /obj/machinery/atmospherics/components/binary/pump/off{ dir = 1; @@ -29638,6 +29613,10 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) +"jaq" = ( +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "jaw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30265,6 +30244,17 @@ /obj/effect/landmark/blobstart, /turf/open/floor/engine, /area/station/science/explab) +"jkQ" = ( +/obj/machinery/requests_console/directional/south{ + announcementConsole = 1; + anon_tips_receiver = 1; + assistance_requestable = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel's Requests Console" + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "jkS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, @@ -37032,12 +37022,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/mine/laborcamp) -"lmL" = ( -/obj/machinery/light/directional/south, -/obj/effect/mapping_helpers/trapdoor_placer, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "lmM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -39891,11 +39875,6 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) -"mlY" = ( -/obj/machinery/newscaster/directional/north, -/obj/machinery/photocopier, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "mmh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -40026,17 +40005,6 @@ }, /turf/open/floor/engine, /area/station/science/genetics) -"moA" = ( -/obj/machinery/requests_console/directional/south{ - announcementConsole = 1; - anon_tips_receiver = 1; - assistance_requestable = 1; - department = "Head of Personnel's Desk"; - departmentType = 5; - name = "Head of Personnel's Requests Console" - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "moB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -40782,16 +40750,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) -"mBq" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/machinery/keycard_auth/directional/west, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "mBB" = ( /obj/machinery/door/poddoor/preopen{ id = "ceprivacy"; @@ -41347,6 +41305,32 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"mLX" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/north{ + dir = 8; + name = "Reception Window" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "hop"; + name = "Privacy Shutters" + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access = list("hop") + }, +/obj/machinery/flasher/directional/south{ + pixel_y = -23 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "mMa" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -43224,6 +43208,10 @@ }, /turf/open/floor/iron/white, /area/mine/laborcamp) +"nnR" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) "noi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/airalarm/directional/east, @@ -43417,6 +43405,17 @@ dir = 10 }, /area/station/science/research) +"nqU" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "nqX" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold/pink/visible, @@ -43847,6 +43846,13 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"nyy" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "nyA" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -49198,19 +49204,6 @@ /obj/item/coin/silver, /turf/open/floor/iron, /area/station/commons/dorms) -"pcP" = ( -/obj/structure/cable, -/obj/structure/table, -/obj/item/trapdoor_remote/preloaded{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/machinery/recharger{ - pixel_x = 5; - pixel_y = 2 - }, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/hop) "pdc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -49297,6 +49290,10 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood, /area/station/commons/dorms) +"pec" = ( +/obj/machinery/vending/cart, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "pee" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -50047,14 +50044,6 @@ "prg" = ( /turf/open/floor/wood, /area/station/service/library) -"prk" = ( -/obj/machinery/modular_computer/console/preset/id, -/obj/item/paper/fluff/ids_for_dummies, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "pry" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -53209,6 +53198,11 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/cargo/storage) +"qrJ" = ( +/obj/machinery/ticket_machine/directional/east, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "qsd" = ( /obj/structure/sign/warning/secure_area/directional/west, /obj/structure/disposalpipe/segment, @@ -56902,17 +56896,10 @@ }, /turf/open/floor/iron, /area/mine/laborcamp/security) -"rAs" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, +"rAA" = ( +/obj/machinery/pdapainter, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/command/heads_quarters/hop) "rAC" = ( /obj/structure/chair, /obj/effect/landmark/start/hangover, @@ -58377,16 +58364,6 @@ dir = 8 }, /area/mine/living_quarters) -"rYA" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "rYB" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -58518,6 +58495,11 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"sbi" = ( +/obj/machinery/newscaster/directional/north, +/obj/machinery/photocopier, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "sby" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -59321,13 +59303,6 @@ /obj/structure/sign/warning/fire/directional/north, /turf/open/floor/glass/reinforced, /area/station/science/ordnance/office) -"soc" = ( -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "soe" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -60498,6 +60473,18 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) +"sEM" = ( +/obj/structure/table/wood, +/obj/item/phone{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/carpet/red, +/area/station/commons/vacant_room/office) "sEU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/closed/wall/r_wall, @@ -60545,10 +60532,6 @@ }, /turf/open/floor/iron, /area/mine/production) -"sFy" = ( -/obj/effect/landmark/start/head_of_personnel, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "sFA" = ( /obj/machinery/sparker/directional/west{ id = "testigniter" @@ -60652,10 +60635,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"sGP" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "sGV" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ @@ -60964,14 +60943,6 @@ dir = 1 }, /area/station/security/prison) -"sMw" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "sMD" = ( /obj/structure/window/reinforced{ dir = 4 @@ -62779,16 +62750,6 @@ /obj/machinery/door/airlock/freezer, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) -"ttm" = ( -/obj/machinery/computer/accounting{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "ttv" = ( /obj/structure/sign/painting/library{ pixel_y = 32 @@ -62890,6 +62851,19 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"tuz" = ( +/obj/structure/cable, +/obj/structure/table, +/obj/item/trapdoor_remote/preloaded{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/machinery/recharger{ + pixel_x = 5; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) "tuH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -63257,6 +63231,13 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/commons/storage/mining) +"tAk" = ( +/obj/structure/closet/secure_closet/hop, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "tAx" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/structure/disposalpipe/segment, @@ -65365,13 +65346,6 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/engineering/atmos) -"ugW" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "uhk" = ( /obj/structure/beebox, /turf/open/floor/grass, @@ -67169,12 +67143,6 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter) -"uLl" = ( -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "uLo" = ( /obj/structure/table, /obj/item/clothing/glasses/meson, @@ -67200,6 +67168,12 @@ /obj/structure/sign/warning/secure_area, /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) +"uLC" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "uLF" = ( /turf/open/floor/carpet, /area/station/security/processing) @@ -68514,10 +68488,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/mine/eva/lower) -"viC" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/hop) "viH" = ( /obj/machinery/power/emitter/welded{ dir = 4 @@ -70224,11 +70194,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"vHv" = ( -/obj/machinery/ticket_machine/directional/east, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "vHA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, @@ -72033,6 +71998,16 @@ /obj/effect/turf_decal/tile/dark_green, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"wjv" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/machinery/keycard_auth/directional/west, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "wjy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75934,6 +75909,14 @@ /obj/item/stack/sheet/leather, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"xpJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "xpP" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -77297,6 +77280,10 @@ }, /turf/open/floor/plating/elevatorshaft, /area/mine/storage) +"xMQ" = ( +/obj/effect/mapping_helpers/ianbirthday, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) "xMT" = ( /turf/closed/wall, /area/station/science/research) @@ -78181,6 +78168,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"ybI" = ( +/obj/structure/bed/dogbed/ian, +/mob/living/basic/pet/dog/corgi/ian{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) "ybN" = ( /obj/machinery/door/airlock/public/glass{ name = "Courtroom" @@ -78316,6 +78311,11 @@ "ydI" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/entry) +"ydT" = ( +/obj/machinery/bluespace_vendor/directional/north, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ydU" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -224623,7 +224623,7 @@ nwT hkb aaT fFT -aoI +sEM bPw tKI lgr @@ -234914,14 +234914,14 @@ ljp gHe mVb bep -vHv -hxh +qrJ +uLC xzh dnq dnq qcu -uLl -ugW +bDR +hYW bep ylU dnq @@ -235172,7 +235172,7 @@ gfb pYB gfb gfb -rAs +nqU rcE rcE rcE @@ -235429,12 +235429,12 @@ odN iZq dpH gfb -gDJ +ydT iIA -hGL +hsi iIA iIA -lmL +eAV jII okb ylU @@ -235691,7 +235691,7 @@ cpm cpm gtq gtq -dbP +mLX cpm pzb cRF @@ -235942,13 +235942,13 @@ iYb dkb kmi iYb -bWA -soc -mBq -aDG -ttm -prk -caA +tAk +nyy +wjv +pec +fJl +iaS +isa cpm dnq ylU @@ -236199,13 +236199,13 @@ iYb txI xvZ iYb -mlY +sbi jWP ool jRC -sGP -sFy -moA +cgC +jaq +jkQ cpm gQZ ylU @@ -236457,12 +236457,12 @@ iYb iYb iYb rpu -cXE -viC -pcP +ybI +nnR +tuz vEA -hTb -epW +bhK +rAA cpm mpy sYu @@ -236715,7 +236715,7 @@ jle jfc vYm qBt -cqQ +xMQ jRC nvs edW @@ -236970,13 +236970,13 @@ clP clP clP shP -rYA +eWc nDA vvi -aWP +xpJ vYs nDA -sMw +gCn pJN mjY aNs diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 06af96d7c4c..fac033c2bd4 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -7438,6 +7438,16 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/maintenance/starboard/fore) +"cMQ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) "cMX" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -9459,18 +9469,6 @@ }, /turf/open/floor/plating, /area/station/science/lab) -"dzp" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/item/reagent_containers/cup/glass/britcup{ - pixel_y = 2 - }, -/turf/open/floor/iron, -/area/station/science/research) "dzq" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/light/directional/north, @@ -13425,6 +13423,20 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) +"eWo" = ( +/obj/machinery/door/poddoor/shutters{ + id = "teleshutter"; + name = "Teleporter Access Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/button/door/directional/east{ + id = "teleshutter"; + name = "Teleporter Shutter Control"; + pixel_y = 5; + req_access = list("teleporter") + }, +/turf/open/floor/iron, +/area/station/command/teleporter) "eWq" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -19118,6 +19130,18 @@ "hbv" = ( /turf/closed/wall/r_wall, /area/station/medical/coldroom) +"hbC" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_y = 2 + }, +/turf/open/floor/iron, +/area/station/science/research) "hbK" = ( /turf/closed/wall, /area/station/maintenance/department/science/xenobiology) @@ -26227,18 +26251,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"jty" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/ticket_machine/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/command) "jtA" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -35856,20 +35868,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"mLY" = ( -/obj/machinery/door/poddoor/shutters{ - id = "teleshutter"; - name = "Teleporter Access Shutter" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/button/door/directional/east{ - id = "teleshutter"; - name = "Teleporter Shutter Control"; - pixel_y = 5; - req_access = list("teleporter") - }, -/turf/open/floor/iron, -/area/station/command/teleporter) "mMl" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -37988,6 +37986,15 @@ /obj/machinery/bluespace_vendor/directional/west, /turf/open/floor/iron, /area/station/commons/dorms) +"nwV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Courtroom" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) "nwW" = ( /obj/structure/closet/secure_closet/security/engine, /obj/machinery/airalarm/directional/east, @@ -39214,18 +39221,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"nUr" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/glass/britcup{ - pixel_x = -6; - pixel_y = 11 - }, -/obj/item/phone{ - pixel_x = 6; - pixel_y = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "nUt" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/plating, @@ -48314,6 +48309,18 @@ /obj/effect/spawner/random/decoration/showcase, /turf/open/floor/carpet, /area/station/command/corporate_showroom) +"rgL" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/phone{ + pixel_x = 6; + pixel_y = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) "rgN" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -61350,15 +61357,6 @@ /obj/structure/window/reinforced, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"vCb" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Courtroom" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/security/courtroom) "vCh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64054,6 +64052,18 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/science/research) +"wzy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/ticket_machine/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) "wzF" = ( /obj/structure/closet/secure_closet{ name = "contraband locker"; @@ -64256,16 +64266,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"wCE" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/command) "wCH" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -89374,7 +89374,7 @@ fru wrG uzb phP -nUr +rgL jXu tfR jXu @@ -92244,7 +92244,7 @@ jbd pJR qwY qIl -jty +wzy nIR tOh lTM @@ -92500,7 +92500,7 @@ aVd nHn mig wMx -wCE +cMQ urA qAc knj @@ -94310,7 +94310,7 @@ vnp vnp vnp exN -mLY +eWo gqX cfb laK @@ -98650,7 +98650,7 @@ wwY wwY xCg qfE -vCb +nwV egb htd ggU @@ -106158,7 +106158,7 @@ gcV nNe nbS aHM -dzp +hbC oWk ddu wmi diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index cb843d8e508..88b9acd662c 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -8924,7 +8924,7 @@ /obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8 }, -/obj/item/reagent_containers/cup/glass/britcup, +/obj/item/reagent_containers/cup/glass/mug/britcup, /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/centcom/tdome/observation) @@ -9968,7 +9968,7 @@ "Du" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/cup/glass/britcup, +/obj/item/reagent_containers/cup/glass/mug/britcup, /obj/structure/window/reinforced{ dir = 8 }, diff --git a/_maps/shuttles/emergency_cruise.dmm b/_maps/shuttles/emergency_cruise.dmm index b79fb51385b..372308a67d1 100644 --- a/_maps/shuttles/emergency_cruise.dmm +++ b/_maps/shuttles/emergency_cruise.dmm @@ -412,7 +412,7 @@ /area/shuttle/escape) "tJ" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/cup/glass/britcup{ +/obj/item/reagent_containers/cup/glass/mug/britcup{ pixel_x = 8; pixel_y = -1 }, diff --git a/code/datums/components/takes_reagent_appearance.dm b/code/datums/components/takes_reagent_appearance.dm new file mode 100644 index 00000000000..d08ec93afd2 --- /dev/null +++ b/code/datums/components/takes_reagent_appearance.dm @@ -0,0 +1,157 @@ +/** + * ## "Takes reagent appearance" Component + * + * Bit of a mouthful, but when applied to an item that can hold reagents (primarily reagent containers), + * said item will take on an appearance based on the majority share reagent inside + * + * This is more than just "changing the color a bit" or "applies an overlay", this is + * an entire icon / icon state / name change, making it look like a different item entirely + * + * This is done by cross-referencing the glass style datums. See [/datum/glass_style] for more information about that. + * + * An example usage is bartender mixed drinks - each reagent gets its own fancy drink sprite + */ +/datum/component/takes_reagent_appearance + /// Icon file when attached to the item + var/icon_pre_change + /// Icon state when attached to the item + var/icon_state_pre_change + /// Optional callback invoked when when the item's appearance is changed + var/datum/callback/on_icon_changed + /// Optional callback invoked when our item has its appearance reverted to default + var/datum/callback/on_icon_reset + +/datum/component/takes_reagent_appearance/Initialize( + datum/callback/on_icon_changed, + datum/callback/on_icon_reset, +) + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + var/obj/item/item_parent = parent + if(isnull(item_parent.reagents)) + return COMPONENT_INCOMPATIBLE + + icon_pre_change = item_parent.icon + icon_state_pre_change = item_parent.base_icon_state || item_parent.icon_state + + src.on_icon_changed = on_icon_changed + src.on_icon_reset = on_icon_reset + +/datum/component/takes_reagent_appearance/Destroy() + QDEL_NULL(on_icon_changed) + QDEL_NULL(on_icon_reset) + return ..() + +/datum/component/takes_reagent_appearance/RegisterWithParent() + RegisterSignal(parent, COMSIG_ATOM_UPDATE_APPEARANCE, PROC_REF(on_update_appearance)) + +/datum/component/takes_reagent_appearance/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_ATOM_UPDATE_APPEARANCE) + if(QDELING(parent)) + return + + var/obj/item/item_parent = parent + item_parent.name = initial(item_parent.name) + item_parent.desc = initial(item_parent.desc) + item_parent.icon = icon_pre_change + item_parent.icon_state = icon_state_pre_change + on_icon_reset?.Invoke() + item_parent.update_appearance() + +/// Signal proc for [COMSIG_ATOM_UPDATE_APPEARANCE] +/// We hook into the update appearance proc to perform our own update based on our glass style +/// Preventing any further updates down the line on successes +/datum/component/takes_reagent_appearance/proc/on_update_appearance(datum/source, updates) + SIGNAL_HANDLER + + . = NONE + + var/datum/glass_style/main_style = get_main_reagent_style() + if(updates & UPDATE_NAME) + . |= update_name(main_style) + if(updates & UPDATE_DESC) + . |= update_desc(main_style) + if(updates & UPDATE_ICON) + . |= update_icon(main_style) + return . + +/** + * Performs the name update. + * + * * Returns [COMSIG_ATOM_NO_UPDATE_NAME] if one was complete + * * Returns [NONE] if nothing happened + * * Returns [NONE] if the name was reset to initial state + */ +/datum/component/takes_reagent_appearance/proc/update_name(datum/glass_style/style) + var/obj/item/item_parent = parent + if(isnull(style)) + // no style (reset) + item_parent.name = initial(item_parent.name) + else if(style.name) + // style + item_parent.name = style.name + return COMSIG_ATOM_NO_UPDATE_NAME + + return NONE + +/** + * Performs the description update. + * + * * Returns [COMSIG_ATOM_NO_UPDATE_DESC] if one was complete + * * Returns [NONE] if nothing happened + * * Returns [NONE] if the description was reset to initial state + */ +/datum/component/takes_reagent_appearance/proc/update_desc(datum/glass_style/style) + var/obj/item/item_parent = parent + if(isnull(style)) + // no style (reset) + item_parent.desc = initial(item_parent.desc) + else if(style.desc) + // style + item_parent.desc = style.desc + return COMSIG_ATOM_NO_UPDATE_DESC + + return NONE + +/** + * Performs the icon update. + * + * * Returns [COMSIG_ATOM_NO_UPDATE_ICON] if an icon or icon state ocurred + * * Returns [NONE] if the icon or icon state was reset to base state + */ +/datum/component/takes_reagent_appearance/proc/update_icon(datum/glass_style/style) + var/obj/item/item_parent = parent + if(isnull(style)) + // no style (reset) + item_parent.icon = icon_pre_change + item_parent.icon_state = icon_state_pre_change + else if(style.icon && style.icon_state) + // style + item_parent.icon = style.icon + item_parent.icon_state = style.icon_state + on_icon_changed?.InvokeAsync(style) + return COMSIG_ATOM_NO_UPDATE_ICON_STATE + + // Reset gets invoked regardless, as further updates may "reset" the icon yet + on_icon_reset?.InvokeAsync() + return NONE + +/** + * Gets the correspinding style based on the parent's state and reagents within + * + * * Returns null if its reagents are empty + * * Returns null if no majority reagent was found + * * Otherwise returns a glass style datum + */ +/datum/component/takes_reagent_appearance/proc/get_main_reagent_style() + RETURN_TYPE(/datum/glass_style) + + var/obj/item/item_parent = parent + if(item_parent.reagents.total_volume <= 0) + return null + var/datum/reagent/main_reagent = item_parent.reagents.get_master_reagent() + if(isnull(main_reagent)) + return null + + return GLOB.glass_style_singletons[parent.type][main_reagent.type] diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 7a66bedfce6..5767cdd010c 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -302,7 +302,7 @@ /obj/item/reagent_containers/borghypo/borgshaker name = "cyborg shaker" desc = "An advanced drink synthesizer and mixer." - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "shaker" possible_transfer_amounts = list(5,10,20) // Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm index a8d6800531a..b4f3ebd2049 100644 --- a/code/modules/antagonists/changeling/cellular_emporium.dm +++ b/code/modules/antagonists/changeling/cellular_emporium.dm @@ -87,7 +87,7 @@ /datum/action/innate/cellular_emporium name = "Cellular Emporium" - button_icon = 'icons/obj/drinks.dmi' + button_icon = 'icons/obj/drinks/soda.dmi' button_icon_state = "changelingsting" background_icon_state = "bg_changeling" overlay_icon_state = "bg_changeling_border" diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 8e9471a98fb..b7e628d3f81 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -363,7 +363,7 @@ Striking a noncultist, however, will tear their flesh."} /obj/item/reagent_containers/cup/beaker/unholywater name = "flask of unholy water" desc = "Toxic to nonbelievers; reinvigorating to the faithful - this flask may be sipped or thrown." - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "holyflask" color = "#333333" list_reagents = list(/datum/reagent/fuel/unholywater = 50) diff --git a/code/modules/antagonists/cult/cult_structure_altar.dm b/code/modules/antagonists/cult/cult_structure_altar.dm index e86e4779ee4..684afbb7ece 100644 --- a/code/modules/antagonists/cult/cult_structure_altar.dm +++ b/code/modules/antagonists/cult/cult_structure_altar.dm @@ -22,7 +22,7 @@ OUTPUT_ITEMS = list(/obj/structure/constructshell), ), UNHOLY_WATER = list( - PREVIEW_IMAGE = image(icon = 'icons/obj/drinks.dmi', icon_state = "holyflask"), + PREVIEW_IMAGE = image(icon = 'icons/obj/drinks/bottles.dmi', icon_state = "holyflask"), OUTPUT_ITEMS = list(/obj/item/reagent_containers/cup/beaker/unholywater), ), ) diff --git a/code/modules/client/preferences/species_features/vampire.dm b/code/modules/client/preferences/species_features/vampire.dm index cc25161275f..1b05c2c3e12 100644 --- a/code/modules/client/preferences/species_features/vampire.dm +++ b/code/modules/client/preferences/species_features/vampire.dm @@ -13,7 +13,7 @@ /datum/preference/choiced/vampire_status/init_possible_values() var/list/values = list() - values["Inoculated"] = icon('icons/obj/drinks.dmi', "bloodglass") + values["Inoculated"] = icon('icons/obj/drinks/drinks.dmi', "bloodglass") values["Outcast"] = icon('icons/obj/medical/bloodpack.dmi', "generic_bloodpack") return values diff --git a/code/modules/food_and_drinks/restaurant/generic_venues.dm b/code/modules/food_and_drinks/restaurant/generic_venues.dm index c845f78649b..6b198b837f9 100644 --- a/code/modules/food_and_drinks/restaurant/generic_venues.dm +++ b/code/modules/food_and_drinks/restaurant/generic_venues.dm @@ -83,20 +83,30 @@ ) /datum/venue/bar/get_food_appearance(order) - var/glass_visual var/datum/reagent/reagent_to_order = order + // Default the icon to the fallback icon + var/glass_visual_icon = initial(reagent_to_order.fallback_icon) + var/glass_visual_icon_state = initial(reagent_to_order.fallback_icon_state) - if(initial(reagent_to_order.glass_icon_state)) - glass_visual = initial(reagent_to_order.glass_icon_state) - else if(initial(reagent_to_order.shot_glass_icon_state)) - glass_visual = initial(reagent_to_order.shot_glass_icon_state) - else if(initial(reagent_to_order.fallback_icon_state)) - glass_visual = initial(reagent_to_order.fallback_icon_state) - else - stack_trace("[reagent_to_order] has no icon sprite for restaurant code, please set a fallback_icon_state for this reagent.") + // Look for a glass style based on this reagent type + for(var/potential_container in GLOB.glass_style_singletons) + var/datum/glass_style/draw_as = GLOB.glass_style_singletons[potential_container][reagent_to_order.type] + if(isnull(draw_as)) + continue - var/image/food_image = image(icon = 'icons/effects/effects.dmi' , icon_state = "thought_bubble") - food_image.add_overlay(mutable_appearance('icons/obj/drinks.dmi', glass_visual)) + // Override the crummy fallback icon if we find a glass style to use instead + glass_visual_icon = draw_as.icon + glass_visual_icon_state = draw_as.icon_state + break + + // If we have no icon or fallback, well... Scream. Someone should fix it + if(!glass_visual_icon || !glass_visual_icon_state) + stack_trace("[reagent_to_order] has no icon sprite for restaurant code, please set a fallback icon for this reagent.") + glass_visual_icon = 'icons/obj/drinks/drinks.dmi' + glass_visual_icon_state = "glass_empty" + + var/image/food_image = image(icon = 'icons/effects/effects.dmi', icon_state = "thought_bubble") + food_image.add_overlay(mutable_appearance(glass_visual_icon, glass_visual_icon_state)) return food_image diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 74479a5c649..cb5eddbf31f 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -26,16 +26,6 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/taste_description = "metaphorical salt" ///how this taste compares to others. Higher values means it is more noticable var/taste_mult = 1 - /// use for specialty drinks. - var/glass_name = "glass of ...what?" - /// desc applied to glasses with this reagent - var/glass_desc = "You can't really tell what this is." - /// Otherwise just sets the icon to a normal glass with the mixture of the reagents in the glass. - var/glass_icon_state = null - /// used for shot glasses, mostly for alcohol - var/shot_glass_icon_state = null - /// fallback icon if the reagent has no glass or shot glass icon state. Used for restaurants. - var/fallback_icon_state = null /// reagent holder this belongs to var/datum/reagents/holder = null /// LIQUID, SOLID, GAS @@ -92,8 +82,6 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/burning_volume = 0.5 ///Assoc list with key type of addiction this reagent feeds, and value amount of addiction points added per unit of reagent metabolzied (which means * REAGENTS_METABOLISM every life()) var/list/addiction_types = null - ///The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!) - var/glass_price /// The affected bodytype, if the reagent damages/heals bodyparts (Brute/Fire) of an affected mob. /// See "Bodytype defines" in /code/_DEFINES/mobs.dm var/affected_bodytype = BODYTYPE_ORGANIC @@ -104,6 +92,14 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) /// See "Organ defines for carbon mobs" in /code/_DEFINES/mobs.dm var/affected_organtype = ORGAN_ORGANIC + // Used for restaurants. + ///The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!) + var/glass_price + /// Icon for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum. + var/fallback_icon + /// Icon state for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum. + var/fallback_icon_state + /datum/reagent/New() SHOULD_CALL_PARENT(TRUE) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 8720f1ca5d4..998b4377388 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2,10 +2,6 @@ #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." @@ -16,26 +12,32 @@ ph = 7.33 burning_temperature = 2193//ethanol burns at 1970C (at it's peak) burning_volume = 0.1 - 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 -*/ + fallback_icon = 'icons/obj/drinks/bottles.dmi' + fallback_icon_state = "beer" + /** + * Boozepwr Chart + * + * Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning + * + * 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 + * (see [/datum/status_effect/inebriated]) + * + * * 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 + */ + var/boozepwr = 65 /datum/reagent/consumable/ethanol/New(list/data) if(LAZYLEN(data)) @@ -99,14 +101,16 @@ All effects don't start immediately, but rather get worse over time; the rate is nutriment_factor = 1 * REAGENTS_METABOLISM boozepwr = 25 taste_description = "mild carbonated malt" - glass_icon_state = "beerglass" - glass_name = "glass of beer" - glass_desc = "A freezing pint of beer." ph = 4 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - fallback_icon_state = "beer" + glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/beer + required_drink_type = /datum/reagent/consumable/ethanol/beer + name = "glass of beer" + desc = "A freezing pint of beer." + icon_state = "beerglass" // Beer is a chemical composition of alcohol and various other things. It's a garbage nutrient but hey, it's still one. Also alcohol is bad, mmmkay? /datum/reagent/consumable/ethanol/beer/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) @@ -120,33 +124,40 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." ph = 5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - fallback_icon_state = "beer" + +/datum/glass_style/drinking_glass/beer/light + required_drink_type = /datum/reagent/consumable/ethanol/beer/light + name = "glass of light beer" + desc = "A freezing pint of watery light beer." /datum/reagent/consumable/ethanol/beer/maltliquor name = "Malt Liquor" description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety is stronger than usual, super cheap, and super terrible." boozepwr = 35 taste_description = "sweet corn beer and the hood life" - glass_name = "glass of malt liquor" - glass_desc = "A freezing pint of malt liquor." ph = 4.8 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/beer/light + required_drink_type = /datum/reagent/consumable/ethanol/beer/maltliquor + name = "glass of malt liquor" + desc = "A freezing pint of malt liquor." + /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." ph = 6 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/beer/green + required_drink_type = /datum/reagent/consumable/ethanol/beer/green + name = "glass of green beer" + desc = "A freezing pint of green beer. Festive." + icon_state = "greenbeerglass" /datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.color != color) @@ -161,13 +172,19 @@ All effects don't start immediately, but rather get worse over time; the rate is description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!" color = "#8e8368" // rgb: 142,131,104 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" ph = 6 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/kahlua + required_drink_type = /datum/reagent/consumable/ethanol/kahlua + icon_state ="shotglasscream" + +/datum/glass_style/drinking_glass/kahlua + required_drink_type = /datum/reagent/consumable/ethanol/kahlua + name = "glass of RR coffee liquor" + desc = "DAMN, THIS THING LOOKS ROBUST!" + icon_state ="kahluaglass" + /datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.set_dizzy_if_lower(10 SECONDS * REM * delta_time) drinker.adjust_drowsyness(-3 * REM * delta_time) @@ -183,33 +200,50 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#b4a287" // rgb: 180,162,135 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" ph = 4.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/shot_glass/whiskey + required_drink_type = /datum/reagent/consumable/ethanol/whiskey + icon_state = "shotglassbrown" + +/datum/glass_style/drinking_glass/whiskey + required_drink_type = /datum/reagent/consumable/ethanol/whiskey + name = "glass of whiskey" + desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy." + icon_state = "whiskeyglass" + /datum/reagent/consumable/ethanol/whiskey/kong name = "Kong" description = "Makes You Go Ape!®" color = "#332100" // rgb: 51, 33, 0 taste_description = "the grip of a giant ape" - glass_name = "glass of Kong" - glass_desc = "Makes You Go Ape!®" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/whiskey/kong + required_drink_type = /datum/reagent/consumable/ethanol/whiskey/kong + +/datum/glass_style/drinking_glass/whiskey/kong + required_drink_type = /datum/reagent/consumable/ethanol/whiskey/kong + name = "glass of Kong" + desc = "Makes You Go Ape!®" /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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/whiskey/candycorn + required_drink_type = /datum/reagent/consumable/ethanol/whiskey/candycorn + +/datum/glass_style/drinking_glass/whiskey/candycorn + required_drink_type = /datum/reagent/consumable/ethanol/whiskey/candycorn + name = "glass of candy corn liquor" + desc = "Good for your Imagination." + /datum/reagent/consumable/ethanol/whiskey/candycorn/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(DT_PROB(5, delta_time)) drinker.adjust_hallucinations(4 SECONDS * REM * delta_time) @@ -224,11 +258,14 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_GOOD overdose_threshold = 60 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/thirteenloko + required_drink_type = /datum/reagent/consumable/ethanol/thirteenloko + name = "glass of Thirteen Loko" + desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass." + icon_state = "thirteen_loko_glass" + /datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_drowsyness(-7 * REM * delta_time) drinker.AdjustSleeping(-40 * REM * delta_time) @@ -285,13 +322,19 @@ All effects don't start immediately, but rather get worse over time; the rate is 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" ph = 8.1 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_CLEANS //Very high proof +/datum/glass_style/shot_glass/vodka + required_drink_type = /datum/reagent/consumable/ethanol/vodka + icon_state = "shotglassclear" + +/datum/glass_style/drinking_glass/vodka + required_drink_type = /datum/reagent/consumable/ethanol/vodka + name = "glass of vodka" + desc = "The glass contain wodka. Xynta." + icon_state = "ginvodkaglass" + /datum/reagent/consumable/ethanol/bilk name = "Bilk" description = "This appears to be beer mixed with milk. Disgusting." @@ -299,11 +342,14 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bilk + required_drink_type = /datum/reagent/consumable/ethanol/bilk + name = "glass of bilk" + desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis." + icon_state = "glass_brown" + /datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.getBruteLoss() && DT_PROB(5, delta_time)) drinker.heal_bodypart_damage(brute = 1) @@ -317,12 +363,16 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." ph = 3.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/threemileisland + required_drink_type = /datum/reagent/consumable/ethanol/threemileisland + name = "Three Mile Island Ice Tea" + desc = "A glass of this is sure to prevent a meltdown." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "threemileislandglass" + /datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.set_drugginess(100 SECONDS * REM * delta_time) return ..() @@ -333,66 +383,93 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#d8e8f0" // rgb: 216,232,240 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." ph = 6.9 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/gin + required_drink_type = /datum/reagent/consumable/ethanol/gin + name = "glass of gin" + desc = "A crystal clear glass of Griffeater gin." + icon_state = "ginvodkaglass" + /datum/reagent/consumable/ethanol/rum name = "Rum" description = "Yohoho and all that." color = "#c9c07e" // rgb: 201,192,126 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" ph = 6.5 +/datum/glass_style/shot_glass/rum + required_drink_type = /datum/reagent/consumable/ethanol/rum + icon_state = "shotglassbrown" + +/datum/glass_style/drinking_glass/rum + required_drink_type = /datum/reagent/consumable/ethanol/rum + name = "glass of rum" + desc = "Now you want to pray for a pirate suit, don't you?" + icon_state = "rumglass" + /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" ph = 4 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/shot_glass/tequila + required_drink_type = /datum/reagent/consumable/ethanol/tequila + icon_state = "shotglassgold" + +/datum/glass_style/drinking_glass/tequila + required_drink_type = /datum/reagent/consumable/ethanol/tequila + name = "glass of tequila" + desc = "Now all that's missing is the weird colored shades!" + icon_state = "tequilaglass" + /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" ph = 3.25 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/vermouth + required_drink_type = /datum/reagent/consumable/ethanol/vermouth + icon_state = "shotglassclear" + +/datum/glass_style/drinking_glass/vermouth + required_drink_type = /datum/reagent/consumable/ethanol/vermouth + name = "glass of vermouth" + desc = "You wonder why you're even drinking this straight." + icon_state = "vermouthglass" + /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" ph = 3.45 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/shot_glass/wine + required_drink_type = /datum/reagent/consumable/ethanol/wine + icon_state = "shotglassred" + +/datum/glass_style/drinking_glass/wine + required_drink_type = /datum/reagent/consumable/ethanol/wine + name = "glass of wine" + desc = "A very classy looking drink." + icon_state = "wineglass" + /datum/reagent/consumable/ethanol/wine/on_merge(data) . = ..() if(src.data && data && data["vintage"] != src.data["vintage"]) @@ -423,52 +500,73 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." ph = 3.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/grappa + required_drink_type = /datum/reagent/consumable/ethanol/grappa + name = "glass of grappa" + desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking." + icon_state = "grappa" + /datum/reagent/consumable/ethanol/amaretto name = "Amaretto" description = "A gentle drink that carries a sweet aroma." color = "#E17600" boozepwr = 25 taste_description = "fruity and nutty sweetness" - glass_icon_state = "amarettoglass" - glass_name = "glass of amaretto" - glass_desc = "A sweet and syrupy looking drink." - shot_glass_icon_state = "shotglassgold" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/shot_glass/amaretto + required_drink_type = /datum/reagent/consumable/ethanol/amaretto + icon_state = "shotglassgold" + +/datum/glass_style/drinking_glass/amaretto + required_drink_type = /datum/reagent/consumable/ethanol/amaretto + name = "glass of amaretto" + desc = "A sweet and syrupy looking drink." + icon_state = "amarettoglass" + /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" ph = 3.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/shot_glass/cognac + required_drink_type = /datum/reagent/consumable/ethanol/cognac + icon_state = "shotglassbrown" + +/datum/glass_style/drinking_glass/cognac + required_drink_type = /datum/reagent/consumable/ethanol/cognac + name = "glass of cognac" + desc = "Damn, you feel like some kind of French aristocrat just by holding this." + icon_state = "cognacglass" + /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" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/absinthe + required_drink_type = /datum/reagent/consumable/ethanol/absinthe + icon_state = "shotglassgreen" + +/datum/glass_style/drinking_glass/absinthe + required_drink_type = /datum/reagent/consumable/ethanol/absinthe + name = "glass of absinthe" + desc = "It's as strong as it smells." + icon_state = "absinthe" + /datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(DT_PROB(5, delta_time) && !HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE)) drinker.adjust_hallucinations(8 SECONDS) @@ -480,25 +578,31 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." addiction_types = list(/datum/addiction/alcohol = 5, /datum/addiction/maintenance_drugs = 2) chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/hooch + required_drink_type = /datum/reagent/consumable/ethanol/hooch + name = "Hooch" + desc = "You've really hit rock bottom now... your liver packed its bags and left last night." + icon_state = "glass_brown2" + /datum/reagent/consumable/ethanol/ale name = "Ale" description = "A dark alcoholic beverage made with malted barley and yeast." color = "#976063" // rgb: 151,96,99 boozepwr = 65 taste_description = "hearty barley ale" - glass_icon_state = "aleglass" - glass_name = "glass of ale" - glass_desc = "A freezing pint of delicious Ale." ph = 4.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/hooch + required_drink_type = /datum/reagent/consumable/ethanol/hooch + name = "glass of ale" + desc = "A freezing pint of delicious Ale." + icon_state = "aleglass" + /datum/reagent/consumable/ethanol/goldschlager name = "Goldschlager" description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break." @@ -506,15 +610,22 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 25 quality = DRINK_NICE 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" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED // This drink is really popular with a certain demographic. var/teenage_girl_quality = DRINK_VERYGOOD +/datum/glass_style/shot_glass/goldschlager + required_drink_type = /datum/reagent/consumable/ethanol/goldschlager + icon_state = "shotglassgold" + +/datum/glass_style/drinking_glass/goldschlager + required_drink_type = /datum/reagent/consumable/ethanol/goldschlager + name = "glass of goldschlager" + desc = "100% proof that teen girls will drink anything with gold in it." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "goldschlagerglass" + /datum/reagent/consumable/ethanol/goldschlager/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume) // Reset quality each time, since the bottle can be shared quality = initial(quality) @@ -543,14 +654,21 @@ All effects don't start immediately, but rather get worse over time; the rate is 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" ph = 4.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_HIGH +/datum/glass_style/shot_glass/patron + required_drink_type = /datum/reagent/consumable/ethanol/patron + icon_state = "shotglassclear" + +/datum/glass_style/drinking_glass/patron + required_drink_type = /datum/reagent/consumable/ethanol/patron + name = "glass of patron" + desc = "Drinking patron in the bar, with all the subpar ladies." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "patronglass" + /datum/reagent/consumable/ethanol/gintonic name = "Gin and Tonic" description = "An all time classic, mild cocktail." @@ -558,13 +676,17 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." ph = 3 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/gintonic + required_drink_type = /datum/reagent/consumable/ethanol/gintonic + name = "Gin and Tonic" + desc = "A mild but still great cocktail. Drink up, like a true Englishman." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "gintonicglass" + /datum/reagent/consumable/ethanol/rum_coke name = "Rum and Coke" description = "Rum, mixed with cola." @@ -572,12 +694,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." ph = 4 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/rum_coke + required_drink_type = /datum/reagent/consumable/ethanol/rum_coke + name = "Rum and Coke" + desc = "The classic go-to of space-fratboys." + icon_state = "whiskeycolaglass" + /datum/reagent/consumable/ethanol/cuba_libre name = "Cuba Libre" description = "Viva la Revolucion! Viva Cuba Libre!" @@ -585,11 +710,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/cuba_libre + required_drink_type = /datum/reagent/consumable/ethanol/cuba_libre + name = "Cuba Libre" + desc = "A classic mix of rum, cola, and lime. A favorite of revolutionaries everywhere!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "cubalibreglass" + /datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/carbon/cubano, delta_time, times_fired) if(cubano.mind && cubano.mind.has_antag_datum(/datum/antagonist/rev)) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries. cubano.adjustBruteLoss(-1 * REM * delta_time, FALSE, required_bodytype = affected_bodytype) @@ -606,11 +735,13 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/whiskey_cola + required_drink_type = /datum/reagent/consumable/ethanol/whiskey_cola + name = "whiskey cola" + desc = "An innocent-looking mixture of cola and whiskey. Delicious." + icon_state = "whiskeycolaglass" /datum/reagent/consumable/ethanol/martini name = "Classic Martini" @@ -619,12 +750,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/martini + required_drink_type = /datum/reagent/consumable/ethanol/martini + name = "Classic Martini" + desc = "Damn, the bartender even stirred it, not shook it." + icon_state = "martiniglass" + /datum/reagent/consumable/ethanol/vodkamartini name = "Vodka Martini" description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious." @@ -632,11 +766,14 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/vodkamartini + required_drink_type = /datum/reagent/consumable/ethanol/vodkamartini + name = "Vodka martini" + desc = "A bastardisation of the classic martini. Still great." + icon_state = "martiniglass" + /datum/reagent/consumable/ethanol/white_russian name = "White Russian" description = "That's just, like, your opinion, man..." @@ -644,11 +781,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/white_russian + required_drink_type = /datum/reagent/consumable/ethanol/white_russian + name = "White Russian" + desc = "A very nice looking drink. But that's just, like, your opinion, man." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "whiterussianglass" + /datum/reagent/consumable/ethanol/screwdrivercocktail name = "Screwdriver" description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious." @@ -656,11 +797,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/screwdrivercocktail + required_drink_type = /datum/reagent/consumable/ethanol/screwdrivercocktail + name = "Screwdriver" + desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "screwdriverglass" + /datum/reagent/consumable/ethanol/screwdrivercocktail/on_transfer(atom/atom, methods = TOUCH, trans_volume) if(!(methods & INGEST)) return ..() @@ -713,11 +858,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#8CFF8C" // rgb: 140, 255, 140 boozepwr = 45 taste_description = "sweet 'n creamy" - glass_icon_state = "booger" - glass_name = "Booger" - glass_desc = "Ewww..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/booger + required_drink_type = /datum/reagent/consumable/ethanol/booger + name = "Booger" + desc = "Ewww..." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "booger" + /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." @@ -725,11 +874,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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 li'l bit of lime. Tastes like liquid murder." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bloody_mary + required_drink_type = /datum/reagent/consumable/ethanol/bloody_mary + name = "Bloody Mary" + desc = "Tomato juice, mixed with Vodka and a li'l bit of lime. Tastes like liquid murder." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "bloodymaryglass" + /datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.blood_volume < BLOOD_VOLUME_NORMAL) drinker.blood_volume = min(drinker.blood_volume + (3 * REM * delta_time), BLOOD_VOLUME_NORMAL) //Bloody Mary quickly restores blood loss. @@ -742,12 +895,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 60 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - var/tough_text glass_price = DRINK_PRICE_EASY + var/tough_text + +/datum/glass_style/drinking_glass/brave_bull + required_drink_type = /datum/reagent/consumable/ethanol/brave_bull + name = "Brave Bull" + desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "bravebullglass" /datum/reagent/consumable/ethanol/brave_bull/on_mob_metabolize(mob/living/drinker) tough_text = pick("brawny", "tenacious", "tough", "hardy", "sturdy") //Tuff stuff @@ -769,12 +926,16 @@ All effects don't start immediately, but rather get worse over time; the rate is 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..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - var/obj/effect/light_holder glass_price = DRINK_PRICE_MEDIUM + var/obj/effect/light_holder + +/datum/glass_style/drinking_glass/tequila_sunrise + required_drink_type = /datum/reagent/consumable/ethanol/tequila_sunrise + name = "tequila Sunrise" + desc = "Oh great, now you feel nostalgic about sunrises back on Terra..." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "tequilasunriseglass" /datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_metabolize(mob/living/drinker) to_chat(drinker, span_notice("You feel gentle warmth spread through your body!")) @@ -799,12 +960,20 @@ All effects don't start immediately, but rather get worse over time; the rate is 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" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/toxins_special + required_drink_type = /datum/reagent/consumable/ethanol/toxins_special + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "toxinsspecialglass" + +/datum/glass_style/drinking_glass/toxins_special + required_drink_type = /datum/reagent/consumable/ethanol/toxins_special + name = "Toxins Special" + desc = "Whoah, this thing is on FIRE!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "toxinsspecialglass" + /datum/reagent/consumable/ethanol/toxins_special/on_mob_life(mob/living/drinker, delta_time, times_fired) drinker.adjust_bodytemperature(15 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, drinker.get_body_temp_normal() + 20) //310.15 is the normal bodytemp. return ..() @@ -817,13 +986,17 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_GOOD metabolization_rate = 1.25 * REAGENTS_METABOLISM 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/beepsky_hallucination ph = 2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + var/datum/brain_trauma/special/beepsky/beepsky_hallucination + +/datum/glass_style/drinking_glass/beepsky_smash + required_drink_type = /datum/reagent/consumable/ethanol/beepsky_smash + name = "Beepsky Smash" + desc = "Heavy, hot and strong. Just like the Iron fist of the LAW." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "beepskysmashglass" /datum/reagent/consumable/ethanol/beepsky_smash/on_mob_metabolize(mob/living/carbon/drinker) if(HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE)) @@ -867,11 +1040,14 @@ All effects don't start immediately, but rather get worse over time; the rate is 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?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/irish_cream + required_drink_type = /datum/reagent/consumable/ethanol/irish_cream + name = "Irish Cream" + desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?" + icon_state = "irishcreamglass" + /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." @@ -879,11 +1055,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - var/dorf_mode + var/dorf_mode = FALSE + +/datum/glass_style/drinking_glass/manly_dorf + required_drink_type = /datum/reagent/consumable/ethanol/manly_dorf + name = "The Manly Dorf" + desc = "A manly concoction made from Ale and Beer. Intended for true men only." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "manlydorfglass" /datum/reagent/consumable/ethanol/manly_dorf/on_mob_metabolize(mob/living/drinker) if(ishuman(drinker)) @@ -906,11 +1086,14 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/longislandicedtea + required_drink_type = /datum/reagent/consumable/ethanol/longislandicedtea + name = "Long Island Iced Tea" + desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "longislandicedteaglass" /datum/reagent/consumable/ethanol/moonshine name = "Moonshine" @@ -918,11 +1101,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha) (like water) 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/moonshine + required_drink_type = /datum/reagent/consumable/ethanol/moonshine + name = "Moonshine" + desc = "You've really hit rock bottom now... your liver packed its bags and left last night." + icon_state = "glass_clear" + /datum/reagent/consumable/ethanol/b52 name = "B-52" description = "Coffee, Irish Cream, and cognac. You will get bombed." @@ -930,13 +1116,21 @@ All effects don't start immediately, but rather get worse over time; the rate is 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" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/shot_glass/b52 + required_drink_type = /datum/reagent/consumable/ethanol/b52 + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "b52glass" + +/datum/glass_style/drinking_glass/b52 + required_drink_type = /datum/reagent/consumable/ethanol/b52 + name = "B-52" + desc = "Kahlua, Irish Cream, and cognac. You will get bombed." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "b52glass" + /datum/reagent/consumable/ethanol/b52/on_mob_metabolize(mob/living/drinker) playsound(drinker, 'sound/effects/explosion_distant.ogg', 100, FALSE) @@ -947,11 +1141,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/irishcoffee + required_drink_type = /datum/reagent/consumable/ethanol/irishcoffee + name = "Irish Coffee" + desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning." + icon = 'icons/obj/drinks/coffee.dmi' + icon_state = "irishcoffeeglass" + /datum/reagent/consumable/ethanol/margarita name = "Margarita" description = "On the rocks with salt on the rim. Arriba~!" @@ -959,12 +1157,16 @@ All effects don't start immediately, but rather get worse over time; the rate is 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~!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/margarita + required_drink_type = /datum/reagent/consumable/ethanol/margarita + name = "Margarita" + desc = "On the rocks with salt on the rim. Arriba~!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "margaritaglass" + /datum/reagent/consumable/ethanol/black_russian name = "Black Russian" description = "For the lactose-intolerant. Still as classy as a White Russian." @@ -972,11 +1174,14 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/black_russian + required_drink_type = /datum/reagent/consumable/ethanol/black_russian + name = "Black Russian" + desc = "For the lactose-intolerant. Still as classy as a White Russian." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "blackrussianglass" /datum/reagent/consumable/ethanol/manhattan name = "Manhattan" @@ -985,12 +1190,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/manhattan + required_drink_type = /datum/reagent/consumable/ethanol/manhattan + name = "Manhattan" + desc = "The Detective's undercover drink of choice. He never could stomach gin..." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "manhattanglass" /datum/reagent/consumable/ethanol/manhattan_proj name = "Manhattan Project" @@ -999,11 +1207,14 @@ All effects don't start immediately, but rather get worse over time; the rate is 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 thinking how to blow up the station." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/manhattan_proj + required_drink_type = /datum/reagent/consumable/ethanol/manhattan_proj + name = "Manhattan Project" + desc = "A scientist's drink of choice, for thinking how to blow up the station." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "proj_manhattanglass" /datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.set_drugginess(1 MINUTES * REM * delta_time) @@ -1016,11 +1227,14 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 70 quality = DRINK_NICE taste_description = "soda" - glass_icon_state = "whiskeysodaglass2" - glass_name = "whiskey soda" - glass_desc = "Ultimate refreshment." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/whiskeysoda + required_drink_type = /datum/reagent/consumable/ethanol/whiskeysoda + name = "whiskey soda" + desc = "Ultimate refreshment." + icon_state = "whiskeysodaglass2" + /datum/reagent/consumable/ethanol/antifreeze name = "Anti-freeze" description = "The ultimate refreshment. Not what it sounds like." @@ -1028,11 +1242,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_NICE taste_description = "Jack Frost's piss" - glass_icon_state = "antifreeze" - glass_name = "Anti-freeze" - glass_desc = "The ultimate refreshment." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/antifreeze + required_drink_type = /datum/reagent/consumable/ethanol/antifreeze + name = "Anti-freeze" + desc = "The ultimate refreshment." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "antifreeze" + /datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_bodytemperature(20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, drinker.get_body_temp_normal() + 20) //310.15 is the normal bodytemp. return ..() @@ -1044,11 +1262,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 45 quality = DRINK_VERYGOOD taste_description = "creamy berries" - glass_icon_state = "b&p" - glass_name = "Barefoot" - glass_desc = "Barefoot and pregnant." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/barefoot + required_drink_type = /datum/reagent/consumable/ethanol/barefoot + name = "Barefoot" + desc = "Barefoot and pregnant." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "b&p" + /datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(ishuman(drinker)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes. var/mob/living/carbon/human/unshoed = drinker @@ -1064,11 +1286,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_NICE taste_description = "refreshing cold" - glass_icon_state = "snowwhite" - glass_name = "Snow White" - glass_desc = "A cold refreshment." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/snowwhite + required_drink_type = /datum/reagent/consumable/ethanol/snowwhite + name = "Snow White" + desc = "A cold refreshment." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "snowwhite" + /datum/reagent/consumable/ethanol/demonsblood name = "Demon's Blood" description = "AHHHH!!!!" @@ -1076,11 +1302,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/demonsblood + required_drink_type = /datum/reagent/consumable/ethanol/demonsblood + name = "Demons Blood" + desc = "Just looking at this thing makes the hair at the back of your neck stand up." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "demonsblood" + /datum/reagent/consumable/ethanol/demonsblood/on_mob_metabolize(mob/living/metabolizer) . = ..() RegisterSignal(metabolizer, COMSIG_LIVING_BLOOD_CRAWL_PRE_CONSUMED, PROC_REF(pre_bloodcrawl_consumed)) @@ -1115,11 +1345,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 70 quality = DRINK_VERYGOOD taste_description = "bitter iron" - glass_icon_state = "devilskiss" - glass_name = "Devils Kiss" - glass_desc = "Creepy time!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/devilskiss + required_drink_type = /datum/reagent/consumable/ethanol/devilskiss + name = "Devils Kiss" + desc = "Creepy time!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "devilskiss" + /datum/reagent/consumable/ethanol/devilskiss/on_mob_metabolize(mob/living/metabolizer) . = ..() RegisterSignal(metabolizer, COMSIG_LIVING_BLOOD_CRAWL_CONSUMED, PROC_REF(on_bloodcrawl_consumed)) @@ -1162,11 +1396,14 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/vodkatonic + required_drink_type = /datum/reagent/consumable/ethanol/vodkatonic + name = "vodka and tonic" + desc = "For when a gin and tonic isn't Russian enough." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "vodkatonicglass" /datum/reagent/consumable/ethanol/ginfizz name = "Gin Fizz" @@ -1175,11 +1412,14 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 45 quality = DRINK_GOOD taste_description = "dry, tart lemons" - glass_icon_state = "ginfizzglass" - glass_name = "gin fizz" - glass_desc = "Refreshingly lemony, deliciously dry." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/ginfizz + required_drink_type = /datum/reagent/consumable/ethanol/ginfizz + name = "gin fizz" + desc = "Refreshingly lemony, deliciously dry." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "ginfizzglass" /datum/reagent/consumable/ethanol/bahama_mama name = "Bahama Mama" @@ -1188,11 +1428,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bahama_mama + required_drink_type = /datum/reagent/consumable/ethanol/bahama_mama + name = "Bahama Mama" + desc = "A tropical cocktail with a complex blend of flavors." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "bahama_mama" + /datum/reagent/consumable/ethanol/singulo name = "Singulo" description = "A blue-space beverage!" @@ -1200,11 +1444,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_VERYGOOD taste_description = "concentrated matter" - glass_icon_state = "singulo" - glass_name = "Singulo" - glass_desc = "A blue-space beverage." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/singulo + required_drink_type = /datum/reagent/consumable/ethanol/singulo + name = "Singulo" + desc = "A blue-space beverage." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "singulo" + /datum/reagent/consumable/ethanol/sbiten name = "Sbiten" description = "A spicy Vodka! Might be a little hot for the little guys!" @@ -1212,9 +1460,6 @@ All effects don't start immediately, but rather get worse over time; the rate is 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) @@ -1228,11 +1473,15 @@ All effects don't start immediately, but rather get worse over time; the rate is 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, made with the blood of their enemies." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/red_mead + required_drink_type = /datum/reagent/consumable/ethanol/red_mead + name = "Red Mead" + desc = "A true Viking's beverage, made with the blood of their enemies." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "red_meadglass" + /datum/reagent/consumable/ethanol/mead name = "Mead" description = "A Viking drink, though a cheap one." @@ -1241,22 +1490,29 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 30 quality = DRINK_NICE taste_description = "sweet, sweet alcohol" - glass_icon_state = "meadglass" - glass_name = "Mead" - glass_desc = "A drink from Valhalla." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/mead + required_drink_type = /datum/reagent/consumable/ethanol/mead + name = "Mead" + desc = "A drink from Valhalla." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "meadglass" + /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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/iced_beer + required_drink_type = /datum/reagent/consumable/ethanol/iced_beer + name = "iced beer" + desc = "A beer so frosty, the air around it freezes." + icon_state = "iced_beerglass" + /datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_bodytemperature(-20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, T0C) //310.15 is the normal bodytemp. return ..() @@ -1267,11 +1523,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#e0e058" // rgb: 224,224,88 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." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/grog + required_drink_type = /datum/reagent/consumable/ethanol/grog + name = "Grog" + desc = "A fine and cepa drink for Space." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "grogglass" /datum/reagent/consumable/ethanol/aloe name = "Aloe" @@ -1280,13 +1539,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_VERYGOOD taste_description = "sweet 'n creamy" - glass_icon_state = "aloe" - glass_name = "Aloe" - glass_desc = "Very, very, very good." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED //somewhat annoying mix glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/aloe + required_drink_type = /datum/reagent/consumable/ethanol/aloe + name = "Aloe" + desc = "Very, very, very good." + icon_state = "aloe" + /datum/reagent/consumable/ethanol/andalusia name = "Andalusia" description = "A nice, strangely named drink." @@ -1294,11 +1556,14 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 40 quality = DRINK_GOOD taste_description = "lemons" - glass_icon_state = "andalusia" - glass_name = "Andalusia" - glass_desc = "A nice, strangely named drink." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/andalusia + required_drink_type = /datum/reagent/consumable/ethanol/andalusia + name = "Andalusia" + desc = "A nice, strangely named drink." + icon_state = "andalusia" + /datum/reagent/consumable/ethanol/alliescocktail name = "Allies Cocktail" description = "A drink made from your allies. Not as sweet as those made from your enemies." @@ -1306,12 +1571,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 45 quality = DRINK_NICE taste_description = "bitter yet free" - glass_icon_state = "alliescocktail" - glass_name = "Allies cocktail" - glass_desc = "A drink made from your allies." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/alliescocktail + required_drink_type = /datum/reagent/consumable/ethanol/alliescocktail + name = "Allies cocktail" + desc = "A drink made from your allies." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "alliescocktail" + /datum/reagent/consumable/ethanol/acid_spit name = "Acid Spit" description = "A drink for the daring, can be deadly if incorrectly prepared!" @@ -1319,11 +1588,14 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 70 quality = DRINK_VERYGOOD taste_description = "stomach acid" - glass_icon_state = "acidspitglass" - glass_name = "Acid Spit" - glass_desc = "A drink from Nanotrasen. Made from live aliens." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/acid_spit + required_drink_type = /datum/reagent/consumable/ethanol/acid_spit + name = "Acid Spit" + desc = "A drink from Nanotrasen. Made from live aliens." + icon_state = "acidspitglass" + /datum/reagent/consumable/ethanol/amasec name = "Amasec" description = "Official drink of the Nanotrasen Gun-Club!" @@ -1331,11 +1603,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_GOOD taste_description = "dark and metallic" - glass_icon_state = "amasecglass" - glass_name = "Amasec" - glass_desc = "Always handy before COMBAT!!!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/amasec + required_drink_type = /datum/reagent/consumable/ethanol/amasec + name = "Amasec" + desc = "Always handy before COMBAT!!!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "amasecglass" + /datum/reagent/consumable/ethanol/changelingsting name = "Changeling Sting" description = "You take a tiny sip and feel a burning sensation..." @@ -1343,16 +1619,18 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 quality = DRINK_GOOD taste_description = "your brain coming out your nose" - glass_icon_state = "changelingsting" - glass_name = "Changeling Sting" - glass_desc = "A stingy drink." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/changelingsting + required_drink_type = /datum/reagent/consumable/ethanol/changelingsting + name = "Changeling Sting" + desc = "A stingy drink." + icon = 'icons/obj/drinks/soda.dmi' + icon_state = "changelingsting" + /datum/reagent/consumable/ethanol/changelingsting/on_mob_life(mob/living/carbon/target, delta_time, times_fired) - if(target.mind) //Changeling Sting assists in the recharging of changeling chemicals. - var/datum/antagonist/changeling/changeling = target.mind.has_antag_datum(/datum/antagonist/changeling) - if(changeling) - changeling.adjust_chemicals(metabolization_rate * REM * delta_time) + var/datum/antagonist/changeling/changeling = target.mind?.has_antag_datum(/datum/antagonist/changeling) + changeling?.adjust_chemicals(metabolization_rate * REM * delta_time) return ..() /datum/reagent/consumable/ethanol/irishcarbomb @@ -1362,11 +1640,14 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 25 quality = DRINK_GOOD taste_description = "the spirit of Ireland" - glass_icon_state = "irishcarbomb" - glass_name = "Irish Car Bomb" - glass_desc = "An Irish car bomb." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/irishcarbomb + required_drink_type = /datum/reagent/consumable/ethanol/irishcarbomb + name = "Irish Car Bomb" + desc = "An Irish car bomb." + icon_state = "irishcarbomb" + /datum/reagent/consumable/ethanol/syndicatebomb name = "Syndicate Bomb" description = "Tastes like terrorism!" @@ -1374,11 +1655,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 90 quality = DRINK_GOOD taste_description = "purified antagonism" - glass_icon_state = "syndicatebomb" - glass_name = "Syndicate Bomb" - glass_desc = "A syndicate bomb." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/syndicatebomb + required_drink_type = /datum/reagent/consumable/ethanol/syndicatebomb + name = "Syndicate Bomb" + desc = "A syndicate bomb." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "syndicatebomb" + /datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(DT_PROB(2.5, delta_time)) playsound(get_turf(drinker), 'sound/effects/explosionfar.ogg', 100, TRUE) @@ -1391,11 +1676,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 40 quality = DRINK_GOOD taste_description = "psychic links" - glass_icon_state = "hiveminderaser" - glass_name = "Hivemind Eraser" - glass_desc = "For when even mindshields can't save you." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/hiveminderaser + required_drink_type = /datum/reagent/consumable/ethanol/hiveminderaser + name = "Hivemind Eraser" + desc = "For when even mindshields can't save you." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "hiveminderaser" + /datum/reagent/consumable/ethanol/erikasurprise name = "Erika Surprise" description = "The surprise is, it's green!" @@ -1403,11 +1692,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_VERYGOOD taste_description = "tartness and bananas" - glass_icon_state = "erikasurprise" - glass_name = "Erika Surprise" - glass_desc = "The surprise is, it's green!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/erikasurprise + required_drink_type = /datum/reagent/consumable/ethanol/erikasurprise + name = "Erika Surprise" + desc = "The surprise is, it's green!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "erikasurprise" + /datum/reagent/consumable/ethanol/driestmartini name = "Driest Martini" description = "Only for the experienced. You think you see sand floating in the glass." @@ -1416,11 +1709,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 65 quality = DRINK_GOOD taste_description = "a beach" - glass_icon_state = "driestmartiniglass" - glass_name = "Driest Martini" - glass_desc = "Only for the experienced. You think you see sand floating in the glass." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/driestmartini + required_drink_type = /datum/reagent/consumable/ethanol/driestmartini + name = "Driest Martini" + desc = "Only for the experienced. You think you see sand floating in the glass." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "driestmartiniglass" + /datum/reagent/consumable/ethanol/bananahonk name = "Banana Honk" description = "A drink from Clown Heaven." @@ -1429,11 +1726,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 60 quality = DRINK_GOOD taste_description = "a bad joke" - glass_icon_state = "bananahonkglass" - glass_name = "Banana Honk" - glass_desc = "A drink from Clown Heaven." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bananahonk + required_drink_type = /datum/reagent/consumable/ethanol/bananahonk + name = "Banana Honk" + desc = "A drink from Clown Heaven." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "bananahonkglass" + /datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) var/obj/item/organ/internal/liver/liver = drinker.getorganslot(ORGAN_SLOT_LIVER) if((liver && HAS_TRAIT(liver, TRAIT_COMEDY_METABOLISM)) || ismonkey(drinker)) @@ -1449,11 +1750,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 59 //Proof that clowns are better than mimes right here quality = DRINK_GOOD taste_description = "a pencil eraser" - glass_icon_state = "silencerglass" - glass_name = "Silencer" - glass_desc = "A drink from Mime Heaven." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/silencer + required_drink_type = /datum/reagent/consumable/ethanol/silencer + name = "Silencer" + desc = "A drink from Mime Heaven." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "silencerglass" + /datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(ishuman(drinker) && drinker.mind?.miming) drinker.set_silence_if_lower(MIMEDRINK_SILENCE_DURATION) @@ -1468,11 +1773,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 quality = DRINK_VERYGOOD taste_description = "molasses and a mouthful of pool water" - glass_icon_state = "drunkenblumpkin" - glass_name = "Drunken Blumpkin" - glass_desc = "A drink for the drunks." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/drunkenblumpkin + required_drink_type = /datum/reagent/consumable/ethanol/drunkenblumpkin + name = "Drunken Blumpkin" + desc = "A drink for the drunks." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "drunkenblumpkin" + /datum/reagent/consumable/ethanol/whiskey_sour //Requested since we had whiskey cola and soda but not sour. name = "Whiskey Sour" description = "Lemon juice/whiskey/sugar mixture. Moderate alcohol content." @@ -1480,9 +1789,12 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_GOOD taste_description = "sour lemons" - glass_icon_state = "whiskey_sour" - glass_name = "whiskey sour" - glass_desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying." + +/datum/glass_style/drinking_glass/whiskey_sour + required_drink_type = /datum/reagent/consumable/ethanol/whiskey_sour + name = "whiskey sour" + desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying." + icon_state = "whiskey_sour" /datum/reagent/consumable/ethanol/hcider name = "Hard Cider" @@ -1491,13 +1803,18 @@ All effects don't start immediately, but rather get worse over time; the rate is nutriment_factor = 1 * REAGENTS_METABOLISM boozepwr = 25 taste_description = "the season that falls between summer and winter" - glass_icon_state = "whiskeyglass" - glass_name = "hard cider" - glass_desc = "Tastes like autumn... no wait, fall!" - shot_glass_icon_state = "shotglassbrown" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/shot_glass/hcider + required_drink_type = /datum/reagent/consumable/ethanol/hcider + icon_state = "shotglassbrown" + +/datum/glass_style/drinking_glass/hcider + required_drink_type = /datum/reagent/consumable/ethanol/hcider + name = "hard cider" + desc = "Tastes like autumn... no wait, fall!" + icon_state = "whiskeyglass" /datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber! name = "Fetching Fizz" @@ -1507,11 +1824,14 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_VERYGOOD metabolization_rate = 0.1 * REAGENTS_METABOLISM taste_description = "charged metal" // the same as teslium, honk honk. - glass_icon_state = "fetching_fizz" - glass_name = "Fetching Fizz" - glass_desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/fetching_fizz + required_drink_type = /datum/reagent/consumable/ethanol/fetching_fizz + name = "Fetching Fizz" + desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "fetching_fizz" /datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) for(var/obj/item/stack/ore/O in orange(3, drinker)) @@ -1527,11 +1847,15 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_VERYGOOD metabolization_rate = 0.4 * REAGENTS_METABOLISM taste_description = "bravado in the face of disaster" - glass_icon_state = "hearty_punch" - glass_name = "Hearty Punch" - glass_desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/hearty_punch + required_drink_type = /datum/reagent/consumable/ethanol/hearty_punch + name = "Hearty Punch" + desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "hearty_punch" + /datum/reagent/consumable/ethanol/hearty_punch/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.health <= 0) drinker.adjustBruteLoss(-3 * REM * delta_time, FALSE, required_bodytype = affected_bodytype) @@ -1548,12 +1872,13 @@ All effects don't start immediately, but rather get worse over time; the rate is color = rgb(51, 19, 3) //Sickly brown boozepwr = 300 //I warned you taste_description = "a wall of bricks" - glass_icon_state = "glass_brown2" - glass_name = "Bacchus' Blessing" - glass_desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - +/datum/glass_style/drinking_glass/bacchus_blessing + required_drink_type = /datum/reagent/consumable/ethanol/bacchus_blessing + name = "Bacchus' Blessing" + desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?" + icon_state = "glass_brown2" /datum/reagent/consumable/ethanol/atomicbomb name = "Atomic Bomb" @@ -1562,12 +1887,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 0 //custom drunk effect quality = DRINK_FANTASTIC taste_description = "da bomb" - glass_icon_state = "atomicbombglass" - glass_name = "Atomic Bomb" - glass_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_HIGH +/datum/glass_style/drinking_glass/atomicbomb + required_drink_type = /datum/reagent/consumable/ethanol/atomicbomb + name = "Atomic Bomb" + desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "atomicbombglass" + /datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.set_drugginess(100 SECONDS * REM * delta_time) if(!HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE)) @@ -1591,11 +1920,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 0 //custom drunk effect quality = DRINK_GOOD taste_description = "your brains smashed out by a lemon wrapped around a gold brick" - glass_icon_state = "gargleblasterglass" - glass_name = "Pan-Galactic Gargle Blaster" - glass_desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/gargle_blaster + required_drink_type = /datum/reagent/consumable/ethanol/gargle_blaster + name = "Pan-Galactic Gargle Blaster" + desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "gargleblasterglass" + /datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_dizzy(3 SECONDS * REM * delta_time) switch(current_cycle) @@ -1620,11 +1953,15 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_VERYGOOD taste_description = "a numbing sensation" metabolization_rate = 1 * REAGENTS_METABOLISM - glass_icon_state = "neurotoxinglass" - glass_name = "Neurotoxin" - glass_desc = "A drink that is guaranteed to knock you silly." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/neurotoxin + required_drink_type = /datum/reagent/consumable/ethanol/neurotoxin + name = "Neurotoxin" + desc = "A drink that is guaranteed to knock you silly." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "neurotoxinglass" + /datum/reagent/consumable/ethanol/neurotoxin/proc/pick_paralyzed_limb() return (pick(TRAIT_PARALYSIS_L_ARM,TRAIT_PARALYSIS_R_ARM,TRAIT_PARALYSIS_R_LEG,TRAIT_PARALYSIS_L_LEG)) @@ -1668,11 +2005,15 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_FANTASTIC metabolization_rate = 0.2 * REAGENTS_METABOLISM taste_description = "giving peace a chance" - glass_icon_state = "hippiesdelightglass" - glass_name = "Hippie's Delight" - glass_desc = "A drink enjoyed by people during the 1960's." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/hippies_delight + required_drink_type = /datum/reagent/consumable/ethanol/hippies_delight + name = "Hippie's Delight" + desc = "A drink enjoyed by people during the 1960's." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "hippiesdelightglass" + /datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.set_slurring_if_lower(1 SECONDS * REM * delta_time) @@ -1713,11 +2054,20 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 1 quality = DRINK_VERYGOOD taste_description = "custard and alcohol" - glass_icon_state = "glass_yellow" - glass_name = "eggnog" - glass_desc = "For enjoying the most wonderful time of the year." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/eggnog + required_drink_type = /datum/reagent/consumable/ethanol/eggnog + name = "eggnog" + desc = "For enjoying the most wonderful time of the year." + icon_state = "glass_yellow" + +/datum/glass_style/juicebox/eggnog + required_drink_type = /datum/reagent/consumable/ethanol/eggnog + name = "carton of eggnog" + desc = "Tasty grape juice in a fun little container. Non-alcoholic!" + icon_state = "grapebox" + drink_type = FRUIT /datum/reagent/consumable/ethanol/narsour name = "Nar'Sour" @@ -1726,11 +2076,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 10 quality = DRINK_FANTASTIC taste_description = "bloody" - glass_icon_state = "narsour" - glass_name = "Nar'Sour" - glass_desc = "A new hit cocktail inspired by THE ARM Breweries will have you shouting Fuu ma'jin in no time!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/narsour + required_drink_type = /datum/reagent/consumable/ethanol/narsour + name = "Nar'Sour" + desc = "A new hit cocktail inspired by THE ARM Breweries will have you shouting Fuu ma'jin in no time!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "narsour" + /datum/reagent/consumable/ethanol/narsour/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_timed_status_effect(6 SECONDS * REM * delta_time, /datum/status_effect/speech/slurring/cult, max_duration = 6 SECONDS) drinker.adjust_stutter_up_to(6 SECONDS * REM * delta_time, 6 SECONDS) @@ -1742,44 +2096,56 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#ffcc66" boozepwr = 30 taste_description = "a warm flowery orange taste which recalls the ocean air and summer wind of the caribbean" - glass_icon_state = "glass_orange" - glass_name = "Triple Sec" - glass_desc = "A glass of straight Triple Sec." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/triple_sec + required_drink_type = /datum/reagent/consumable/ethanol/triple_sec + name = "Triple Sec" + desc = "A glass of straight Triple Sec." + icon_state = "glass_orange" + /datum/reagent/consumable/ethanol/creme_de_menthe name = "Creme de Menthe" description = "A minty liqueur excellent for refreshing, cool drinks." color = "#00cc00" boozepwr = 20 taste_description = "a minty, cool, and invigorating splash of cold streamwater" - glass_icon_state = "glass_green" - glass_name = "Creme de Menthe" - glass_desc = "You can almost feel the first breath of spring just looking at it." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/creme_de_menthe + required_drink_type = /datum/reagent/consumable/ethanol/creme_de_menthe + name = "Creme de Menthe" + desc = "You can almost feel the first breath of spring just looking at it." + icon_state = "glass_green" + /datum/reagent/consumable/ethanol/creme_de_cacao name = "Creme de Cacao" description = "A chocolatey liqueur excellent for adding dessert notes to beverages and bribing sororities." color = "#996633" boozepwr = 20 taste_description = "a slick and aromatic hint of chocolates swirling in a bite of alcohol" - glass_icon_state = "glass_brown" - glass_name = "Creme de Cacao" - glass_desc = "A million hazing lawsuits and alcohol poisonings have started with this humble ingredient." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/creme_de_cacao + required_drink_type = /datum/reagent/consumable/ethanol/creme_de_cacao + name = "Creme de Cacao" + desc = "A million hazing lawsuits and alcohol poisonings have started with this humble ingredient." + icon_state = "glass_brown" + /datum/reagent/consumable/ethanol/creme_de_coconut name = "Creme de Coconut" description = "A coconut liqueur for smooth, creamy, tropical drinks." color = "#F7F0D0" boozepwr = 20 taste_description = "a sweet milky flavor with notes of toasted sugar" - glass_icon_state = "glass_white" - glass_name = "Creme de Coconut" - glass_desc = "An unintimidating glass of coconut liqueur." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/creme_de_coconut + required_drink_type = /datum/reagent/consumable/ethanol/creme_de_coconut + name = "Creme de Coconut" + desc = "An unintimidating glass of coconut liqueur." + icon_state = "glass_white" + /datum/reagent/consumable/ethanol/quadruple_sec name = "Quadruple Sec" description = "Kicks just as hard as licking the power cell on a baton, but tastier." @@ -1787,11 +2153,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_GOOD taste_description = "an invigorating bitter freshness which suffuses your being; no enemy of the station will go unrobusted this day" - glass_icon_state = "quadruple_sec" - glass_name = "Quadruple Sec" - glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/quadruple_sec + required_drink_type = /datum/reagent/consumable/ethanol/quadruple_sec + name = "Quadruple Sec" + desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "quadruple_sec" + /datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) //Securidrink in line with the Screwdriver for engineers or Nothing for mimes var/obj/item/organ/internal/liver/liver = drinker.getorganslot(ORGAN_SLOT_LIVER) @@ -1807,11 +2177,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 55 quality = DRINK_FANTASTIC taste_description = "THE LAW" - glass_icon_state = "quintuple_sec" - glass_name = "Quintuple Sec" - glass_desc = "Now you are become law, destroyer of clowns." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/quintuple_sec + required_drink_type = /datum/reagent/consumable/ethanol/quintuple_sec + name = "Quintuple Sec" + desc = "Now you are become law, destroyer of clowns." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "quintuple_sec" + /datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) //Securidrink in line with the Screwdriver for engineers or Nothing for mimes but STRONG.. var/obj/item/organ/internal/liver/liver = drinker.getorganslot(ORGAN_SLOT_LIVER) @@ -1828,11 +2202,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 25 quality = DRINK_GOOD taste_description = "chocolate and mint dancing around your mouth" - glass_icon_state = "grasshopper" - glass_name = "Grasshopper" - glass_desc = "You weren't aware edible beverages could be that green." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/grasshopper + required_drink_type = /datum/reagent/consumable/ethanol/grasshopper + name = "Grasshopper" + desc = "You weren't aware edible beverages could be that green." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "grasshopper" + /datum/reagent/consumable/ethanol/stinger name = "Stinger" description = "A snappy way to end the day." @@ -1840,11 +2218,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 25 quality = DRINK_NICE taste_description = "a slap on the face in the best possible way" - glass_icon_state = "stinger" - glass_name = "Stinger" - glass_desc = "You wonder what would happen if you pointed this at a heat source..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/stinger + required_drink_type = /datum/reagent/consumable/ethanol/stinger + name = "Stinger" + desc = "You wonder what would happen if you pointed this at a heat source..." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "stinger" + /datum/reagent/consumable/ethanol/bastion_bourbon name = "Bastion Bourbon" description = "Soothing hot herbal brew with restorative properties. Hints of citrus and berry flavors." @@ -1853,14 +2235,21 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_FANTASTIC taste_description = "hot herbal brew with a hint of fruit" metabolization_rate = 2 * REAGENTS_METABOLISM //0.4u per second - glass_icon_state = "bastion_bourbon" - glass_name = "Bastion Bourbon" - glass_desc = "If you're feeling low, count on the buttery flavor of our own bastion bourbon." - shot_glass_icon_state = "shotglassgreen" ph = 4 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_HIGH +/datum/glass_style/shot_glass/bastion_bourbon + required_drink_type = /datum/reagent/consumable/ethanol/bastion_bourbon + icon_state = "shotglassgreen" + +/datum/glass_style/drinking_glass/bastion_bourbon + required_drink_type = /datum/reagent/consumable/ethanol/bastion_bourbon + name = "Bastion Bourbon" + desc = "If you're feeling low, count on the buttery flavor of our own bastion bourbon." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "bastion_bourbon" + /datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_metabolize(mob/living/drinker) var/heal_points = 10 if(drinker.health <= 0) @@ -1892,12 +2281,19 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 40 taste_description = "stale bread with a staler aftertaste" nutriment_factor = 2 * REAGENTS_METABOLISM - glass_icon_state = "squirt_cider" - glass_name = "Squirt Cider" - glass_desc = "Squirt cider will toughen you right up. Too bad about the musty aftertaste." - shot_glass_icon_state = "shotglassgreen" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/squirt_cider + required_drink_type = /datum/reagent/consumable/ethanol/squirt_cider + icon_state = "shotglassgreen" + +/datum/glass_style/drinking_glass/squirt_cider + required_drink_type = /datum/reagent/consumable/ethanol/squirt_cider + name = "Squirt Cider" + desc = "Squirt cider will toughen you right up. Too bad about the musty aftertaste." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "squirt_cider" + /datum/reagent/consumable/ethanol/squirt_cider/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.satiety += 5 * REM * delta_time //for context, vitamins give 15 satiety per second ..() @@ -1910,11 +2306,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 90 //classy hooch, essentially, but lower pwr to make up for slightly easier access quality = DRINK_GOOD taste_description = "ethylic alcohol with a hint of sugar" - glass_icon_state = "fringe_weaver" - glass_name = "Fringe Weaver" - glass_desc = "It's a wonder it doesn't spill out of the glass." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/fringe_weaver + required_drink_type = /datum/reagent/consumable/ethanol/fringe_weaver + name = "Fringe Weaver" + desc = "It's a wonder it doesn't spill out of the glass." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "fringe_weaver" + /datum/reagent/consumable/ethanol/sugar_rush name = "Sugar Rush" description = "Sweet, light, and fruity - as girly as it gets." @@ -1923,11 +2323,15 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_GOOD taste_description = "your arteries clogging with sugar" nutriment_factor = 2 * REAGENTS_METABOLISM - glass_icon_state = "sugar_rush" - glass_name = "Sugar Rush" - glass_desc = "If you can't mix a Sugar Rush, you can't tend bar." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/sugar_rush + required_drink_type = /datum/reagent/consumable/ethanol/sugar_rush + name = "Sugar Rush" + desc = "If you can't mix a Sugar Rush, you can't tend bar." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "sugar_rush" + /datum/reagent/consumable/ethanol/sugar_rush/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.satiety -= 10 * REM * delta_time //junky as hell! a whole glass will keep you from being able to eat junk food ..() @@ -1940,11 +2344,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = -10 //sobers you up - ideally, one would drink to get hit with brute damage now to avoid alcohol problems later quality = DRINK_VERYGOOD taste_description = "a bitter SPIKE with a sour aftertaste" - glass_icon_state = "crevice_spike" - glass_name = "Crevice Spike" - glass_desc = "It'll either knock the drunkenness out of you or knock you out cold. Both, probably." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/crevice_spike + required_drink_type = /datum/reagent/consumable/ethanol/crevice_spike + name = "Crevice Spike" + desc = "It'll either knock the drunkenness out of you or knock you out cold. Both, probably." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "crevice_spike" + /datum/reagent/consumable/ethanol/crevice_spike/on_mob_metabolize(mob/living/drinker) //damage only applies when drink first enters system and won't again until drink metabolizes out drinker.adjustBruteLoss(3 * min(5,volume), required_bodytype = affected_bodytype) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15 @@ -1954,12 +2362,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#DDDDDD" boozepwr = 70 taste_description = "sweet rice wine" - glass_icon_state = "sakecup" - glass_name = "cup of sake" - glass_desc = "A traditional cup of sake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/sake + required_drink_type = /datum/reagent/consumable/ethanol/sake + name = "cup of sake" + desc = "A traditional cup of sake." + icon_state = "sakecup" + /datum/reagent/consumable/ethanol/peppermint_patty name = "Peppermint Patty" description = "This lightly alcoholic drink combines the benefits of menthol and cocoa." @@ -1967,16 +2378,21 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "mint and chocolate" boozepwr = 25 quality = DRINK_GOOD - glass_icon_state = "peppermint_patty" - glass_name = "Peppermint Patty" - glass_desc = "A boozy minty hot cocoa that warms your belly on a cold night." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/peppermint_patty + required_drink_type = /datum/reagent/consumable/ethanol/peppermint_patty + name = "Peppermint Patty" + desc = "A boozy minty hot cocoa that warms your belly on a cold night." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "peppermint_patty" + /datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.apply_status_effect(/datum/status_effect/throat_soothed) drinker.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, drinker.get_body_temp_normal()) ..() + /datum/reagent/consumable/ethanol/alexander name = "Alexander" description = "Named after a Greek hero, this mix is said to embolden a user's shield as if they were in a phalanx." @@ -1984,12 +2400,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 quality = DRINK_GOOD taste_description = "bitter, creamy cacao" - glass_icon_state = "alexander" - glass_name = "Alexander" - glass_desc = "A creamy, indulgent delight that is stronger than it seems." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED var/obj/item/shield/mighty_shield +/datum/glass_style/drinking_glass/alexander + required_drink_type = /datum/reagent/consumable/ethanol/alexander + name = "Alexander" + desc = "A creamy, indulgent delight that is stronger than it seems." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "alexander" + /datum/reagent/consumable/ethanol/alexander/on_mob_metabolize(mob/living/drinker) if(ishuman(drinker)) var/mob/living/carbon/human/the_human = drinker @@ -2017,11 +2437,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_VERYGOOD taste_description = "sweet, creamy cacao" - glass_icon_state = "alexanderam" - glass_name = "Amaretto Alexander" - glass_desc = "A creamy, indulgent delight that is in fact as gentle as it seems." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/amaretto_alexander + required_drink_type = /datum/reagent/consumable/ethanol/amaretto_alexander + name = "Amaretto Alexander" + desc = "A creamy, indulgent delight that is in fact as gentle as it seems." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "alexanderam" + /datum/reagent/consumable/ethanol/sidecar name = "Sidecar" description = "The one ride you'll gladly give up the wheel for." @@ -2029,12 +2453,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 45 quality = DRINK_GOOD taste_description = "delicious freedom" - glass_icon_state = "sidecar" - glass_name = "Sidecar" - glass_desc = "The one ride you'll gladly give up the wheel for." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/sidecar + required_drink_type = /datum/reagent/consumable/ethanol/sidecar + name = "Sidecar" + desc = "The one ride you'll gladly give up the wheel for." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "sidecar" + /datum/reagent/consumable/ethanol/between_the_sheets name = "Between the Sheets" description = "A provocatively named classic. Funny enough, doctors recommend drinking it before taking a nap while underneath bedsheets." @@ -2042,12 +2470,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 55 quality = DRINK_GOOD taste_description = "seduction" - glass_icon_state = "between_the_sheets" - glass_name = "Between the Sheets" - glass_desc = "The only drink that comes with a label reminding you of Nanotrasen's zero-tolerance promiscuity policy." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/between_the_sheets + required_drink_type = /datum/reagent/consumable/ethanol/between_the_sheets + name = "Between the Sheets" + desc = "The only drink that comes with a label reminding you of Nanotrasen's zero-tolerance promiscuity policy." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "between_the_sheets" + /datum/reagent/consumable/ethanol/between_the_sheets/on_mob_life(mob/living/drinker, delta_time, times_fired) ..() var/is_between_the_sheets = FALSE @@ -2077,11 +2509,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 60 quality = DRINK_GOOD taste_description = "divine windiness" - glass_icon_state = "kamikaze" - glass_name = "Kamikaze" - glass_desc = "Divinely windy." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/kamikaze + required_drink_type = /datum/reagent/consumable/ethanol/kamikaze + name = "Kamikaze" + desc = "Divinely windy." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "kamikaze" + /datum/reagent/consumable/ethanol/mojito name = "Mojito" description = "A drink that looks as refreshing as it tastes." @@ -2089,12 +2525,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 30 quality = DRINK_GOOD taste_description = "refreshing mint" - glass_icon_state = "mojito" - glass_name = "Mojito" - glass_desc = "A drink that looks as refreshing as it tastes." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/mojito + required_drink_type = /datum/reagent/consumable/ethanol/mojito + name = "Mojito" + desc = "A drink that looks as refreshing as it tastes." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "mojito" + /datum/reagent/consumable/ethanol/moscow_mule name = "Moscow Mule" description = "A chilly drink that reminds you of the Derelict." @@ -2102,21 +2542,28 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 30 quality = DRINK_GOOD taste_description = "refreshing spiciness" - glass_icon_state = "moscow_mule" - glass_name = "Moscow Mule" - glass_desc = "A chilly drink that reminds you of the Derelict." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/moscow_mule + required_drink_type = /datum/reagent/consumable/ethanol/moscow_mule + name = "Moscow Mule" + desc = "A chilly drink that reminds you of the Derelict." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "moscow_mule" + /datum/reagent/consumable/ethanol/fernet name = "Fernet" description = "An incredibly bitter herbal liqueur used as a digestif." color = "#1B2E24" // rgb: 27, 46, 36 boozepwr = 80 taste_description = "utter bitterness" - glass_name = "glass of fernet" - glass_desc = "A glass of pure Fernet. Only an absolute madman would drink this alone." //Hi Kevum chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/fernet + required_drink_type = /datum/reagent/consumable/ethanol/fernet + name = "glass of fernet" + desc = "A glass of pure Fernet. Only an absolute madman would drink this alone." //Hi Kevum + /datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.nutrition <= NUTRITION_LEVEL_STARVING) drinker.adjustToxLoss(1 * REM * delta_time, FALSE, required_biotype = affected_biotype) @@ -2131,11 +2578,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 25 quality = DRINK_NICE taste_description = "sweet relief" - glass_icon_state = "godlyblend" - glass_name = "glass of fernet cola" - glass_desc = "A sawed-off cola bottle filled with Fernet Cola. Nothing better after eating like a lardass." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/fernet_cola + required_drink_type = /datum/reagent/consumable/ethanol/fernet_cola + name = "glass of fernet cola" + desc = "A sawed-off cola bottle filled with Fernet Cola. Nothing better after eating like a lardass." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "godlyblend" + /datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.nutrition <= NUTRITION_LEVEL_STARVING) drinker.adjustToxLoss(0.5 * REM * delta_time, FALSE, required_biotype = affected_biotype) @@ -2144,19 +2595,21 @@ All effects don't start immediately, but rather get worse over time; the rate is return ..() /datum/reagent/consumable/ethanol/fanciulli - name = "Fanciulli" description = "What if the Manhattan cocktail ACTUALLY used a bitter herb liquour? Helps you sober up." //also causes a bit of stamina damage to symbolize the afterdrink lazyness color = "#CA933F" // rgb: 202, 147, 63 boozepwr = -10 quality = DRINK_NICE taste_description = "a sweet sobering mix" - glass_icon_state = "fanciulli" - glass_name = "glass of fanciulli" - glass_desc = "A glass of Fanciulli. It's just Manhattan with Fernet." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_HIGH +/datum/glass_style/drinking_glass/fanciulli + required_drink_type = /datum/reagent/consumable/ethanol/fanciulli + name = "glass of fanciulli" + desc = "A glass of Fanciulli. It's just Manhattan with Fernet." + icon_state = "fanciulli" + /datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_nutrition(-5 * REM * delta_time) drinker.overeatduration = 0 @@ -2168,7 +2621,6 @@ All effects don't start immediately, but rather get worse over time; the rate is . = TRUE ..() - /datum/reagent/consumable/ethanol/branca_menta name = "Branca Menta" description = "A refreshing mixture of bitter Fernet with mint creme liquour." @@ -2176,12 +2628,14 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_GOOD taste_description = "a bitter freshness" - glass_icon_state= "minted_fernet" - glass_name = "glass of branca menta" - glass_desc = "A glass of Branca Menta, perfect for those lazy and hot Sunday summer afternoons." //Get lazy literally by drinking this chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/branca_menta + required_drink_type = /datum/reagent/consumable/ethanol/branca_menta + name = "glass of branca menta" + desc = "A glass of Branca Menta, perfect for those lazy and hot Sunday summer afternoons." //Get lazy literally by drinking this + icon_state = "minted_fernet" /datum/reagent/consumable/ethanol/branca_menta/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_bodytemperature(-20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, T0C) @@ -2201,11 +2655,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 20 quality = DRINK_GOOD taste_description = "bubbling possibility" - glass_icon_state = "blank_paper" - glass_name = "glass of blank paper" - glass_desc = "A fizzy cocktail for those looking to start fresh." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/blank_paper + required_drink_type = /datum/reagent/consumable/ethanol/blank_paper + name = "glass of blank paper" + desc = "A fizzy cocktail for those looking to start fresh." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "blank_paper" + /datum/reagent/consumable/ethanol/blank_paper/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(ishuman(drinker) && drinker.mind?.miming) drinker.set_silence_if_lower(MIMEDRINK_SILENCE_DURATION) @@ -2224,6 +2682,13 @@ All effects don't start immediately, but rather get worse over time; the rate is var/list/tastes = list("bad coding" = 1) //List of tastes. See above. ph = 4 +/datum/glass_style/drinking_glass/fruit_wine + required_drink_type = /datum/reagent/consumable/ethanol/fruit_wine + // This should really be dynamic like "glass of pineapple wine" or something + // but seeing as fruit wine half doesn't work already I'm not inclined to add support for that now + name = "glass of fruit wine" + desc = "A wine made from grown plants." + /datum/reagent/consumable/ethanol/fruit_wine/on_new(list/data) if(!data) return @@ -2263,8 +2728,6 @@ All effects don't start immediately, but rather get worse over time; the rate is var/const/minimum_percent = 0.15 //Percentages measured between 0 and 1. var/list/primary_tastes = list() var/list/secondary_tastes = list() - glass_name = "glass of [name]" - glass_desc = description for(var/taste in tastes) switch(tastes[taste]) if(minimum_percent*2 to INFINITY) @@ -2327,12 +2790,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#ffffc1" boozepwr = 40 taste_description = "auspicious occasions and bad decisions" - glass_icon_state = "champagne_glass" - glass_name = "Champagne" - glass_desc = "The flute clearly displays the slowly rising bubbles." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/champagne + required_drink_type = /datum/reagent/consumable/ethanol/champagne + name = "Champagne" + desc = "The flute clearly displays the slowly rising bubbles." + icon_state = "champagne_glass" /datum/reagent/consumable/ethanol/wizz_fizz name = "Wizz Fizz" @@ -2341,11 +2806,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 quality = DRINK_GOOD taste_description = "friendship! It is magic, after all" - glass_icon_state = "wizz_fizz" - glass_name = "Wizz Fizz" - glass_desc = "The glass bubbles and froths with an almost magical intensity." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/wizz_fizz + required_drink_type = /datum/reagent/consumable/ethanol/wizz_fizz + name = "Wizz Fizz" + desc = "The glass bubbles and froths with an almost magical intensity." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "wizz_fizz" + /datum/reagent/consumable/ethanol/wizz_fizz/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) //A healing drink similar to Quadruple Sec, Ling Stings, and Screwdrivers for the Wizznerds; the check is consistent with the changeling sting if(drinker?.mind?.has_antag_datum(/datum/antagonist/wizard)) @@ -2362,11 +2831,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 quality = DRINK_GOOD taste_description = "the pain of ten thousand slain mosquitos" - glass_icon_state = "bug_spray" - glass_name = "Bug Spray" - glass_desc = "Your eyes begin to water as the sting of alcohol reaches them." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bug_spray + required_drink_type = /datum/reagent/consumable/ethanol/bug_spray + name = "Bug Spray" + desc = "Your eyes begin to water as the sting of alcohol reaches them." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "bug_spray" + /datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) //Bugs should not drink Bug spray. if(ismoth(drinker) || isflyperson(drinker)) @@ -2379,18 +2852,20 @@ All effects don't start immediately, but rather get worse over time; the rate is drinker.emote("scream") return ..() - /datum/reagent/consumable/ethanol/applejack name = "Applejack" description = "The perfect beverage for when you feel the need to horse around." color = "#ff6633" boozepwr = 20 taste_description = "an honest day's work at the orchard" - glass_icon_state = "applejack_glass" - glass_name = "Applejack" - glass_desc = "You feel like you could drink this all neight." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/applejack + required_drink_type = /datum/reagent/consumable/ethanol/applejack + name = "Applejack" + desc = "You feel like you could drink this all neight." + icon_state = "applejack_glass" + /datum/reagent/consumable/ethanol/jack_rose name = "Jack Rose" description = "A light cocktail perfect for sipping with a slice of pie." @@ -2398,11 +2873,19 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 15 quality = DRINK_NICE taste_description = "a sweet and sour slice of apple" - glass_icon_state = "jack_rose" - glass_name = "Jack Rose" - glass_desc = "Enough of these, and you really will start to suppose your toeses are roses." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/jack_rose + required_drink_type = /datum/reagent/consumable/ethanol/jack_rose + icon_state = "shotglassred" + +/datum/glass_style/drinking_glass/jack_rose + required_drink_type = /datum/reagent/consumable/ethanol/jack_rose + name = "Jack Rose" + desc = "Enough of these, and you really will start to suppose your toeses are roses." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "jack_rose" + /datum/reagent/consumable/ethanol/turbo name = "Turbo" description = "A turbulent cocktail associated with outlaw hoverbike racing. Not for the faint of heart." @@ -2410,11 +2893,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 85 quality = DRINK_VERYGOOD taste_description = "the outlaw spirit" - glass_icon_state = "turbo" - glass_name = "Turbo" - glass_desc = "A turbulent cocktail for outlaw hoverbikers." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/turbo + required_drink_type = /datum/reagent/consumable/ethanol/turbo + name = "Turbo" + desc = "A turbulent cocktail for outlaw hoverbikers." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "turbo" + /datum/reagent/consumable/ethanol/turbo/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(DT_PROB(2, delta_time)) to_chat(drinker, span_notice("[pick("You feel disregard for the rule of law.", "You feel pumped!", "Your head is pounding.", "Your thoughts are racing..")]")) @@ -2428,11 +2915,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 35 quality = DRINK_NICE taste_description = "simpler times" - glass_icon_state = "old_timer" - glass_name = "Old Timer" - glass_desc = "WARNING! May cause premature aging!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/old_timer + required_drink_type = /datum/reagent/consumable/ethanol/old_timer + name = "Old Timer" + desc = "WARNING! May cause premature aging!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "old_timer" + /datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/human/metabolizer, delta_time, times_fired) if(DT_PROB(10, delta_time) && istype(metabolizer)) metabolizer.age += 1 @@ -2459,11 +2950,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 60 quality = DRINK_GOOD taste_description = "artifical fruityness" - glass_icon_state = "rubberneck" - glass_name = "Rubberneck" - glass_desc = "A popular drink amongst those adhering to an all synthetic diet." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/rubberneck + required_drink_type = /datum/reagent/consumable/ethanol/rubberneck + name = "Rubberneck" + desc = "A popular drink amongst those adhering to an all synthetic diet." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "rubberneck" + /datum/reagent/consumable/ethanol/rubberneck/on_mob_metabolize(mob/living/drinker) . = ..() ADD_TRAIT(drinker, TRAIT_SHOCKIMMUNE, type) @@ -2479,11 +2974,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 25 quality = DRINK_NICE taste_description = "green apples and blue raspberries" - glass_icon_state = "duplex" - glass_name = "Duplex" - glass_desc = "To imbibe one component separately from the other is consider a great faux pas." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/duplex + required_drink_type = /datum/reagent/consumable/ethanol/duplex + name = "Duplex" + desc = "To imbibe one component separately from the other is consider a great faux pas." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "duplex" + /datum/reagent/consumable/ethanol/trappist name = "Trappist Beer" description = "A strong dark ale brewed by space-monks." @@ -2491,11 +2990,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 40 quality = DRINK_VERYGOOD taste_description = "dried plums and malt" - glass_icon_state = "trappistglass" - glass_name = "Trappist Beer" - glass_desc = "boozy Catholicism in a glass." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/trappist + required_drink_type = /datum/reagent/consumable/ethanol/trappist + name = "Trappist Beer" + desc = "boozy Catholicism in a glass." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "trappistglass" + /datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.mind?.holy_role) drinker.adjustFireLoss(-2.5 * REM * delta_time, FALSE, required_bodytype = affected_bodytype) @@ -2509,11 +3012,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 70 quality = DRINK_FANTASTIC taste_description = "alternate realities" - glass_icon_state = "blazaamglass" - glass_name = "Blazaam" - glass_desc = "The glass seems to be sliding between realities. Doubles as a Berenstain remover." var/stored_teleports = 0 +/datum/glass_style/drinking_glass/blazaam + required_drink_type = /datum/reagent/consumable/ethanol/blazaam + name = "Blazaam" + desc = "The glass seems to be sliding between realities. Doubles as a Berenstain remover." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "blazaamglass" + /datum/reagent/consumable/ethanol/blazaam/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.get_drunk_amount() > 40) if(stored_teleports) @@ -2526,16 +3033,19 @@ All effects don't start immediately, but rather get worse over time; the rate is drinker.vomit(vomit_type = VOMIT_PURPLE) return ..() - /datum/reagent/consumable/ethanol/planet_cracker name = "Planet Cracker" description = "This jubilant drink celebrates humanity's triumph over the alien menace. May be offensive to non-human crewmembers." boozepwr = 50 quality = DRINK_FANTASTIC taste_description = "triumph with a hint of bitterness" - glass_icon_state = "planet_cracker" - glass_name = "Planet Cracker" - glass_desc = "Although historians believe the drink was originally created to commemorate the end of an important conflict in man's past, its origins have largely been forgotten and it is today seen more as a general symbol of human supremacy." + +/datum/glass_style/drinking_glass/planet_cracker + required_drink_type = /datum/reagent/consumable/ethanol/planet_cracker + name = "Planet Cracker" + desc = "Although historians believe the drink was originally created to commemorate the end of an important conflict in man's past, its origins have largely been forgotten and it is today seen more as a general symbol of human supremacy." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "planet_cracker" /datum/reagent/consumable/ethanol/mauna_loa name = "Mauna Loa" @@ -2544,11 +3054,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#fe8308" // 254, 131, 8 quality = DRINK_FANTASTIC taste_description = "fiery, with an aftertaste of burnt flesh" - glass_icon_state = "mauna_loa" - glass_name = "Mauna Loa" - glass_desc = "Lavaland in a drink... mug... volcano... thing." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/mauna_loa + required_drink_type = /datum/reagent/consumable/ethanol/mauna_loa + name = "Mauna Loa" + desc = "Lavaland in a drink... mug... volcano... thing." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "mauna_loa" + /datum/reagent/consumable/ethanol/mauna_loa/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) // Heats the user up while the reagent is in the body. Occasionally makes you burst into flames. drinker.adjust_bodytemperature(25 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time) @@ -2564,11 +3078,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#EAD677" quality = DRINK_NICE taste_description = "sugary tartness" - glass_icon_state = "painkiller" - glass_name = "Painkiller" - glass_desc = "A combination of tropical juices and rum. Surely this will make you feel better." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/painkiller + required_drink_type = /datum/reagent/consumable/ethanol/painkiller + name = "Painkiller" + desc = "A combination of tropical juices and rum. Surely this will make you feel better." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "painkiller" + /datum/reagent/consumable/ethanol/pina_colada name = "Pina Colada" description = "A fresh pineapple drink with coconut rum. Yum." @@ -2576,10 +3094,13 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#FFF1B2" quality = DRINK_FANTASTIC taste_description = "pineapple, coconut, and a hint of the ocean" - glass_icon_state = "pina_colada" - glass_name = "Pina Colada" - glass_desc = "If you like pina coladas, and getting caught in the rain... well, you'll like this drink." +/datum/glass_style/drinking_glass/pina_colada + required_drink_type = /datum/reagent/consumable/ethanol/pina_colada + name = "Pina Colada" + desc = "If you like pina coladas, and getting caught in the rain... well, you'll like this drink." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "pina_colada" /datum/reagent/consumable/ethanol/pruno // pruno mix is in drink_reagents name = "Pruno" @@ -2587,11 +3108,14 @@ All effects don't start immediately, but rather get worse over time; the rate is description = "Fermented prison wine made from fruit, sugar, and despair. Security loves to confiscate this, which is the only kind thing Security has ever done." boozepwr = 85 taste_description = "your tastebuds being individually shanked" - glass_icon_state = "glass_orange" - glass_name = "glass of pruno" - glass_desc = "Fermented prison wine made from fruit, sugar, and despair. Security loves to confiscate this, which is the only kind thing Security has ever done." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/pruno + required_drink_type = /datum/reagent/consumable/ethanol/pruno + name = "glass of pruno" + desc = "Fermented prison wine made from fruit, sugar, and despair. Security loves to confiscate this, which is the only kind thing Security has ever done." + icon_state = "glass_orange" + /datum/reagent/consumable/ethanol/pruno/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_disgust(5 * REM * delta_time) ..() @@ -2603,11 +3127,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#EFB42A" quality = DRINK_GOOD taste_description = "sweetness followed by a soft sourness and warmth" - glass_icon_state = "gingeramaretto" - glass_name = "Ginger Amaretto" - glass_desc = "The sprig of rosemary adds a nice aroma to the drink, and isn't just to be pretentious afterall!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/ginger_amaretto + required_drink_type = /datum/reagent/consumable/ethanol/ginger_amaretto + name = "Ginger Amaretto" + desc = "The sprig of rosemary adds a nice aroma to the drink, and isn't just to be pretentious afterall!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "gingeramaretto" + /datum/reagent/consumable/ethanol/godfather name = "Godfather" description = "A rough cocktail with illegal connections." @@ -2615,12 +3143,16 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#E68F00" quality = DRINK_GOOD taste_description = "a delightful softened punch" - glass_icon_state = "godfather" - glass_name = "Godfather" - glass_desc = "A classic from old Italy and enjoyed by gangsters, pray the orange peel doesnt end up in your mouth." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/godfather + required_drink_type = /datum/reagent/consumable/ethanol/godfather + name = "Godfather" + desc = "A classic from old Italy and enjoyed by gangsters, pray the orange peel doesnt end up in your mouth." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "godfather" + /datum/reagent/consumable/ethanol/godmother name = "Godmother" description = "A twist on a classic, liked more by mature women." @@ -2628,11 +3160,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#E68F00" quality = DRINK_GOOD taste_description = "sweetness and a zesty twist" - glass_icon_state = "godmother" - glass_name = "Godmother" - glass_desc = "A lovely fresh smelling cocktail, a true Sicilian delight." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/godmother + required_drink_type = /datum/reagent/consumable/ethanol/godmother + name = "Godmother" + desc = "A lovely fresh smelling cocktail, a true Sicilian delight." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "godmother" + /datum/reagent/consumable/ethanol/kortara name = "Kortara" description = "A sweet, milky nut-based drink enjoyed on Tizira. Frequently mixed with fruit juices and cocoa for extra refreshment." @@ -2640,11 +3176,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#EEC39A" quality = DRINK_GOOD taste_description = "sweet nectar" - glass_icon_state = "kortara_glass" - glass_name = "glass of kortara" - glass_desc = "The fermented nectar of the Korta nut, as enjoyed by lizards galaxywide." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/kortara + required_drink_type = /datum/reagent/consumable/ethanol/kortara + name = "glass of kortara" + desc = "The fermented nectar of the Korta nut, as enjoyed by lizards galaxywide." + icon_state = "kortara_glass" + /datum/reagent/consumable/ethanol/kortara/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(drinker.getBruteLoss() && DT_PROB(10, delta_time)) drinker.heal_bodypart_damage(1,0) @@ -2657,11 +3196,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#CFFFE5" quality = DRINK_VERYGOOD taste_description = "mint choc chip" - glass_icon_state = "sea_breeze" - glass_name = "Sea Breeze" - glass_desc = "Minty, chocolatey, and creamy. It's like drinkable mint chocolate chip!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/sea_breeze + required_drink_type = /datum/reagent/consumable/ethanol/sea_breeze + name = "Sea Breeze" + desc = "Minty, chocolatey, and creamy. It's like drinkable mint chocolate chip!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "sea_breeze" + /datum/reagent/consumable/ethanol/sea_breeze/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.apply_status_effect(/datum/status_effect/throat_soothed) ..() @@ -2673,11 +3216,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#A68340" quality = DRINK_GOOD taste_description = "strikes and gutters" - glass_icon_state = "white_tiziran" - glass_name = "White Tiziran" - glass_desc = "I had a rough night and I hate the fucking humans, man." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/white_tiziran + required_drink_type = /datum/reagent/consumable/ethanol/white_tiziran + name = "White Tiziran" + desc = "I had a rough night and I hate the fucking humans, man." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "white_tiziran" + /datum/reagent/consumable/ethanol/drunken_espatier name = "Drunken Espatier" description = "Look, if you had to get into a shootout in the cold vacuum of space, you'd want to be drunk too." @@ -2685,11 +3232,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#A68340" quality = DRINK_GOOD taste_description = "sorrow" - glass_icon_state = "drunken_espatier" - glass_name = "Drunken Espatier" - glass_desc = "A drink to make facing death easier." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/drunken_espatier + required_drink_type = /datum/reagent/consumable/ethanol/drunken_espatier + name = "Drunken Espatier" + desc = "A drink to make facing death easier." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "drunken_espatier" + /datum/reagent/consumable/ethanol/drunken_espatier/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.add_mood_event("numb", /datum/mood_event/narcotic_medium, name) //comfortably numb ..() @@ -2709,12 +3260,16 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#FF5B69" quality = DRINK_NICE taste_description = "regret" - glass_icon_state = "protein_blend" - glass_name = "Protein Blend" - glass_desc = "Vile, even by lizard standards." nutriment_factor = 3 * REAGENTS_METABOLISM chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/protein_blend + required_drink_type = /datum/reagent/consumable/ethanol/protein_blend + name = "Protein Blend" + desc = "Vile, even by lizard standards." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "protein_blend" + /datum/reagent/consumable/ethanol/protein_blend/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) drinker.adjust_nutrition(2 * REM * delta_time) if(!islizard(drinker)) @@ -2730,11 +3285,13 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#C46400" quality = DRINK_VERYGOOD taste_description = "sweet 'shrooms" - glass_icon_state = "glass_orange" - glass_name = "glass of mushi kombucha" - glass_desc = "A glass of (slightly alcoholic) fermented sweetened mushroom tea. Refreshing, if a little strange." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/mushi_kombucha + required_drink_type = /datum/reagent/consumable/ethanol/mushi_kombucha + name = "glass of mushi kombucha" + icon_state = "glass_orange" + /datum/reagent/consumable/ethanol/triumphal_arch name = "Triumphal Arch" description = "A drink celebrating the Lizard Empire and its military victories. It's popular at bars on Unification Day." @@ -2742,11 +3299,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#FFD700" quality = DRINK_FANTASTIC taste_description = "victory" - glass_icon_state = "triumphal_arch" - glass_name = "Triumphal Arch" - glass_desc = "A toast to the Empire, long may it stand." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/triumphal_arch + required_drink_type = /datum/reagent/consumable/ethanol/triumphal_arch + name = "Triumphal Arch" + desc = "A toast to the Empire, long may it stand." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "triumphal_arch" + /datum/reagent/consumable/ethanol/triumphal_arch/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(islizard(drinker)) drinker.add_mood_event("triumph", /datum/mood_event/memories_of_home, name) @@ -2759,12 +3320,16 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 quality = DRINK_GOOD taste_description = "like, the future, man" - glass_icon_state = "thejuice" - glass_name = "The Juice" - glass_desc = "A concoction of not-so-edible things that apparently lets you feel like you're in two places at once" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED var/datum/brain_trauma/special/bluespace_prophet/prophet_trauma +/datum/glass_style/drinking_glass/the_juice + required_drink_type = /datum/reagent/consumable/ethanol/the_juice + name = "The Juice" + desc = "A concoction of not-so-edible things that apparently lets you feel like you're in two places at once" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "thejuice" + /datum/reagent/consumable/ethanol/the_juice/on_mob_metabolize(mob/living/carbon/drinker) . = ..() prophet_trauma = new() @@ -2806,11 +3371,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#1a5fa1" quality = DRINK_NICE taste_description = "blue orange" - glass_icon_state = "curacao" - glass_name = "glass of curaçao" - glass_desc = "It's blue, da ba dee." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/curacao + required_drink_type = /datum/reagent/consumable/ethanol/curacao + name = "glass of curaçao" + desc = "It's blue, da ba dee." + icon_state = "curacao" + /datum/reagent/consumable/ethanol/navy_rum //IN THE NAVY name = "Navy Rum" description = "Rum as the finest sailors drink." @@ -2818,11 +3386,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#d8e8f0" quality = DRINK_NICE taste_description = "a life on the waves" - glass_icon_state = "ginvodkaglass" - glass_name = "glass of navy rum" - glass_desc = "Splice the mainbrace, and God save the King." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/navy_rum + required_drink_type = /datum/reagent/consumable/ethanol/navy_rum + name = "glass of navy rum" + desc = "Splice the mainbrace, and God save the King." + icon_state = "ginvodkaglass" + /datum/reagent/consumable/ethanol/bitters //why do they call them bitters, anyway? they're more spicy than anything else name = "Andromeda Bitters" description = "A bartender's best friend, often used to lend a delicate spiciness to any drink. Produced in New Trinidad, now and forever." @@ -2830,11 +3401,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#1c0000" quality = DRINK_NICE taste_description = "spiced alcohol" - glass_icon_state = "bitters" - glass_name = "glass of bitters" - glass_desc = "Typically you'd want to mix this with something- but you do you." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bitters + required_drink_type = /datum/reagent/consumable/ethanol/bitters + name = "glass of bitters" + desc = "Typically you'd want to mix this with something- but you do you." + icon_state = "bitters" + /datum/reagent/consumable/ethanol/admiralty //navy rum, vermouth, fernet name = "Admiralty" description = "A refined, bitter drink made with navy rum, vermouth and fernet." @@ -2842,11 +3416,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#1F0001" quality = DRINK_VERYGOOD taste_description = "haughty arrogance" - glass_icon_state = "admiralty" - glass_name = "Admiralty" - glass_desc = "Hail to the Admiral, for he brings fair tidings, and rum too." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/admiralty + required_drink_type = /datum/reagent/consumable/ethanol/admiralty + name = "Admiralty" + desc = "Hail to the Admiral, for he brings fair tidings, and rum too." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "admiralty" + /datum/reagent/consumable/ethanol/long_haul //Rum, Curacao, Sugar, dash of bitters, lengthened with soda water name = "Long Haul" description = "A favourite amongst freighter pilots, unscrupulous smugglers, and nerf herders." @@ -2854,11 +3432,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#003153" quality = DRINK_VERYGOOD taste_description = "companionship" - glass_icon_state = "long_haul" - glass_name = "Long Haul" - glass_desc = "A perfect companion for a lonely long haul flight." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/long_haul + required_drink_type = /datum/reagent/consumable/ethanol/long_haul + name = "Long Haul" + desc = "A perfect companion for a lonely long haul flight." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "long_haul" + /datum/reagent/consumable/ethanol/long_john_silver //navy rum, bitters, lemonade name = "Long John Silver" description = "A long drink of navy rum, bitters, and lemonade. Particularly popular aboard the Mothic Fleet as it's light on ration credits and heavy on flavour." @@ -2866,11 +3448,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#c4b35c" quality = DRINK_VERYGOOD taste_description = "rum and spices" - glass_icon_state = "long_john_silver" - glass_name = "Long John Silver" - glass_desc = "Named for a famous pirate, who may or may not have been fictional. But hey, why let the truth get in the way of a good yarn?" //Chopper Reid says "How the fuck are ya?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/long_john_silver + required_drink_type = /datum/reagent/consumable/ethanol/long_john_silver + name = "Long John Silver" + desc = "Named for a famous pirate, who may or may not have been fictional. But hey, why let the truth get in the way of a good yarn?" //Chopper Reid says "How the fuck are ya?" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "long_john_silver" + /datum/reagent/consumable/ethanol/tropical_storm //dark rum, pineapple juice, triple citrus, curacao name = "Tropical Storm" description = "A taste of the Caribbean in one glass." @@ -2878,11 +3464,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#00bfa3" quality = DRINK_VERYGOOD taste_description = "the tropics" - glass_icon_state = "tropical_storm" - glass_name = "Tropical Storm" - glass_desc = "Less destructive than the real thing." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/tropical_storm + required_drink_type = /datum/reagent/consumable/ethanol/tropical_storm + name = "Tropical Storm" + desc = "Less destructive than the real thing." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "tropical_storm" + /datum/reagent/consumable/ethanol/dark_and_stormy //rum and ginger beer- simple and classic name = "Dark and Stormy" description = "A classic drink arriving to thunderous applause." //thank you, thank you, I'll be here forever @@ -2890,11 +3480,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#8c5046" quality = DRINK_GOOD taste_description = "ginger and rum" - glass_icon_state = "dark_and_stormy" - glass_name = "Dark and Stormy" - glass_desc = "Thunder and lightning, very very frightening." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/dark_and_stormy + required_drink_type = /datum/reagent/consumable/ethanol/dark_and_stormy + name = "Dark and Stormy" + desc = "Thunder and lightning, very very frightening." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "dark_and_stormy" + /datum/reagent/consumable/ethanol/salt_and_swell //navy rum, tochtause syrup, egg whites, dash of saline-glucose solution name = "Salt and Swell" description = "A bracing sour with an interesting salty taste." @@ -2902,11 +3496,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#b4abd0" quality = DRINK_FANTASTIC taste_description = "salt and spice" - glass_icon_state = "salt_and_swell" - glass_name = "Salt and Swell" - glass_desc = "Ah, I do like to be beside the seaside." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/salt_and_swell + required_drink_type = /datum/reagent/consumable/ethanol/salt_and_swell + name = "Salt and Swell" + desc = "Ah, I do like to be beside the seaside." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "salt_and_swell" + /datum/reagent/consumable/ethanol/tiltaellen //yoghurt, salt, vinegar name = "Tiltällen" description = "A lightly fermented yoghurt drink with salt and a light dash of vinegar. Has a distinct sour cheesy flavour." @@ -2914,11 +3512,14 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#F4EFE2" quality = DRINK_NICE taste_description = "sour cheesy yoghurt" - glass_icon_state = "tiltaellen" - glass_name = "glass of tiltällen" - glass_desc = "Eww... it's curdled." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/tiltaellen + required_drink_type = /datum/reagent/consumable/ethanol/tiltaellen + name = "glass of tiltällen" + desc = "Eww... it's curdled." + icon_state = "tiltaellen" + /datum/reagent/consumable/ethanol/tich_toch name = "Tich Toch" description = "A mix of Tiltällen, Töchtaüse Syrup, and vodka. It's not exactly to everyones' tastes." @@ -2926,11 +3527,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#b4abd0" quality = DRINK_VERYGOOD taste_description = "spicy sour cheesy yoghurt" - glass_icon_state = "tich_toch" - glass_name = "Tich Toch" - glass_desc = "Oh god." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/tich_toch + required_drink_type = /datum/reagent/consumable/ethanol/tich_toch + name = "Tich Toch" + desc = "Oh god." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "tich_toch" + /datum/reagent/consumable/ethanol/helianthus name = "Helianthus" description = "A dark yet radiant mixture of absinthe and hallucinogens. The choice of all true artists." @@ -2938,12 +3543,16 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#fba914" quality = DRINK_VERYGOOD taste_description = "golden memories" - glass_icon_state = "helianthus" - glass_name = "Helianthus" - glass_desc = "Another reason to cut off an ear..." + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED var/hal_amt = 4 var/hal_cap = 24 - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + +/datum/glass_style/drinking_glass/helianthus + required_drink_type = /datum/reagent/consumable/ethanol/helianthus + name = "Helianthus" + desc = "Another reason to cut off an ear..." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "helianthus" /datum/reagent/consumable/ethanol/helianthus/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(DT_PROB(5, delta_time)) @@ -2958,12 +3567,15 @@ All effects don't start immediately, but rather get worse over time; the rate is nutriment_factor = 1 * REAGENTS_METABOLISM boozepwr = 20 taste_description = "a poet's love and undoing" - glass_icon_state = "plumwineglass" - glass_name = "plum wine" - glass_desc = "Looks like an evening of writing fine poetry." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/plumwine + required_drink_type = /datum/reagent/consumable/ethanol/plumwine + name = "plum wine" + desc = "Looks like an evening of writing fine poetry." + icon_state = "plumwineglass" + /datum/reagent/consumable/ethanol/the_hat name = "The Hat" description = "A fancy drink, usually served in a man's hat." @@ -2971,12 +3583,15 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 80 quality = DRINK_NICE taste_description = "something perfumy" - glass_icon_state = "thehatglass" - glass_name = "The Hat" - glass_desc ="A single plum floating in perfume, served in a man's hat." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/the_hat + required_drink_type = /datum/reagent/consumable/ethanol/the_hat + name = "The Hat" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "thehatglass" + /datum/reagent/consumable/ethanol/gin_garden name = "Gin Garden" description = "Excellent cooling alcoholic drink with not so ordinary taste." @@ -2984,11 +3599,15 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#6cd87a" quality = DRINK_VERYGOOD taste_description = "light gin with sweet ginger and cucumber" - glass_icon_state = "gin_garden" - glass_name = "gin garden" - glass_desc = "Hey, someone forgot the herb and... the cucumber in my cocktail!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/gin_garden + required_drink_type = /datum/reagent/consumable/ethanol/gin_garden + name = "gin garden" + desc = "Hey, someone forgot the herb and... the cucumber in my cocktail!" + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "gin_garden" + /datum/reagent/consumable/ethanol/gin_garden/on_mob_life(mob/living/carbon/doll, delta_time, times_fired) doll.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, doll.get_body_temp_normal()) ..() diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 3a07a7d52fe..a6aaf5dab07 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -9,12 +9,22 @@ description = "Both delicious AND rich in Vitamin C, what more do you need?" color = "#E78108" // rgb: 231, 129, 8 taste_description = "oranges" - glass_icon_state = "glass_orange" - glass_name = "glass of orange juice" - glass_desc = "Vitamins! Yay!" ph = 3.3 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/orangejuice + required_drink_type = /datum/reagent/consumable/orangejuice + name = "glass of orange juice" + desc = "Vitamins! Yay!" + icon_state = "glass_orange" + +/datum/glass_style/juicebox/orangejuice + required_drink_type = /datum/reagent/consumable/orangejuice + name = "orange juice box" + desc = "A great source of vitamins. Stay healthy!" + icon_state = "orangebox" + drink_type = FRUIT | BREAKFAST + /datum/reagent/consumable/orangejuice/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(affected_mob.getOxyLoss() && DT_PROB(16, delta_time)) affected_mob.adjustOxyLoss(-1, FALSE, required_biotype = affected_biotype) @@ -26,11 +36,14 @@ description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?" color = "#731008" // rgb: 115, 16, 8 taste_description = "tomatoes" - glass_icon_state = "glass_red" - glass_name = "glass of tomato juice" - glass_desc = "Are you sure this is tomato juice?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/tomatojuice + required_drink_type = /datum/reagent/consumable/tomatojuice + name = "glass of tomato juice" + desc = "Are you sure this is tomato juice?" + icon_state = "glass_red" + /datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(affected_mob.getFireLoss() && DT_PROB(10, delta_time)) affected_mob.heal_bodypart_damage(0, 1) @@ -42,12 +55,15 @@ description = "The sweet-sour juice of limes." color = "#365E30" // rgb: 54, 94, 48 taste_description = "unbearable sourness" - glass_icon_state = "glass_green" - glass_name = "glass of lime juice" - glass_desc = "A glass of sweet-sour lime juice." ph = 2.2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/limejuice + required_drink_type = /datum/reagent/consumable/limejuice + name = "glass of lime juice" + desc = "A glass of sweet-sour lime juice." + icon_state = "glass_green" + /datum/reagent/consumable/limejuice/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(affected_mob.getToxLoss() && DT_PROB(10, delta_time)) affected_mob.adjustToxLoss(-1, FALSE, required_biotype = affected_biotype) @@ -59,11 +75,14 @@ description = "It is just like a carrot but without crunching." color = "#973800" // rgb: 151, 56, 0 taste_description = "carrots" - glass_icon_state = "carrotjuice" - glass_name = "glass of carrot juice" - glass_desc = "It's just like a carrot but without crunching." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/carrotjuice + required_drink_type = /datum/reagent/consumable/carrotjuice + name = "glass of carrot juice" + desc = "It's just like a carrot but without crunching." + icon_state = "carrotjuice" + /datum/reagent/consumable/carrotjuice/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_blurriness(-1 * REM * delta_time) affected_mob.adjust_blindness(-1 * REM * delta_time) @@ -83,11 +102,14 @@ description = "A delicious blend of several different kinds of berries." color = "#863333" // rgb: 134, 51, 51 taste_description = "berries" - glass_icon_state = "berryjuice" - glass_name = "glass of berry juice" - glass_desc = "Berry juice. Or maybe it's jam. Who cares?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/berryjuice + required_drink_type = /datum/reagent/consumable/berryjuice + name = "glass of berry juice" + desc = "Berry juice. Or maybe it's jam. Who cares?" + icon_state = "berryjuice" + /datum/reagent/consumable/applejuice name = "Apple Juice" description = "The sweet juice of an apple, fit for all ages." @@ -95,16 +117,26 @@ taste_description = "apples" ph = 3.2 // ~ 2.7 -> 3.7 +/datum/glass_style/juicebox/applejuice + required_drink_type = /datum/reagent/consumable/applejuice + name = "apple juice box" + desc = "Sweet apple juice. Don't be late for school!" + icon_state = "juicebox" + drink_type = FRUIT + /datum/reagent/consumable/poisonberryjuice name = "Poison Berry Juice" description = "A tasty juice blended from various kinds of very deadly and toxic berries." color = "#863353" // rgb: 134, 51, 83 taste_description = "berries" - glass_icon_state = "poisonberryjuice" - glass_name = "glass of berry juice" - glass_desc = "Berry juice. Or maybe it's poison. Who cares?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/poisonberryjuice + required_drink_type = /datum/reagent/consumable/poisonberryjuice + name = "glass of berry juice" + desc = "Berry juice. Or maybe it's poison. Who cares?" + icon_state = "poisonberryjuice" + /datum/reagent/consumable/poisonberryjuice/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjustToxLoss(1 * REM * delta_time, FALSE, required_biotype = affected_biotype) . = TRUE @@ -115,32 +147,41 @@ description = "Delicious juice made from watermelon." color = "#863333" // rgb: 134, 51, 51 taste_description = "juicy watermelon" - glass_icon_state = "glass_red" - glass_name = "glass of watermelon juice" - glass_desc = "A glass of watermelon juice." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/watermelonjuice + required_drink_type = /datum/reagent/consumable/watermelonjuice + name = "glass of watermelon juice" + desc = "A glass of watermelon juice." + icon_state = "glass_red" + /datum/reagent/consumable/lemonjuice name = "Lemon Juice" description = "This juice is VERY sour." color = "#863333" // rgb: 175, 175, 0 taste_description = "sourness" - glass_icon_state = "lemonglass" - glass_name = "glass of lemon juice" - glass_desc = "Sour..." ph = 2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/lemonjuice + required_drink_type = /datum/reagent/consumable/lemonjuice + name = "glass of lemon juice" + desc = "Sour..." + icon_state = "lemonglass" + /datum/reagent/consumable/banana name = "Banana Juice" description = "The raw essence of a banana. HONK" color = "#863333" // rgb: 175, 175, 0 taste_description = "banana" - glass_icon_state = "banana" - glass_name = "glass of banana juice" - glass_desc = "The raw essence of a banana. HONK." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/banana + required_drink_type = /datum/reagent/consumable/banana + name = "glass of banana juice" + desc = "The raw essence of a banana. HONK." + icon_state = "banana" + /datum/reagent/consumable/banana/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) var/obj/item/organ/internal/liver/liver = affected_mob.getorganslot(ORGAN_SLOT_LIVER) if((liver && HAS_TRAIT(liver, TRAIT_COMEDY_METABOLISM)) || ismonkey(affected_mob)) @@ -152,12 +193,18 @@ name = "Nothing" description = "Absolutely nothing." taste_description = "nothing" - glass_icon_state = "nothing" - glass_name = "nothing" - glass_desc = "Absolutely nothing." - shot_glass_icon_state = "shotglass" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/nothing + required_drink_type = /datum/reagent/consumable/nothing + icon_state = "shotglass" + +/datum/glass_style/drinking_glass/nothing + required_drink_type = /datum/reagent/consumable/nothing + name = "nothing" + desc = "Absolutely nothing." + icon_state = "nothing" + /datum/reagent/consumable/nothing/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired) if(ishuman(drinker) && drinker.mind?.miming) drinker.set_silence_if_lower(MIMEDRINK_SILENCE_DURATION) @@ -199,11 +246,14 @@ nutriment_factor = 2 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 taste_description = "irish sadness" - glass_icon_state = "glass_brown" - glass_name = "glass of potato juice" - glass_desc = "Bleh..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/potato_juice + required_drink_type = /datum/reagent/consumable/potato_juice + name = "glass of potato juice" + desc = "Bleh..." + icon_state = "glass_brown" + /datum/reagent/consumable/grapejuice name = "Grape Juice" description = "The juice of a bunch of grapes. Guaranteed non-alcoholic." @@ -211,27 +261,47 @@ taste_description = "grape soda" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/juicebox/grapejuice + required_drink_type = /datum/reagent/consumable/grapejuice + name = "grape juice box" + desc = "For enjoying the most wonderful time of the year." + icon_state = "nog2" + drink_type = MEAT + /datum/reagent/consumable/plumjuice name = "Plum Juice" description = "Refreshing and slightly acidic beverage." color = "#b6062c" taste_description = "plums" - glass_icon_state = "plumjuiceglass" - glass_name = "glass of plum juice" - glass_desc = "Noice." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/plumjuice + required_drink_type = /datum/reagent/consumable/plumjuice + name = "glass of plum juice" + desc = "Noice." + icon_state = "plumjuiceglass" + /datum/reagent/consumable/milk name = "Milk" description = "An opaque white liquid produced by the mammary glands of mammals." color = "#DFDFDF" // rgb: 223, 223, 223 taste_description = "milk" - glass_icon_state = "glass_white" - glass_name = "glass of milk" - glass_desc = "White and nutritious goodness!" ph = 6.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/milk + required_drink_type = /datum/reagent/consumable/milk + name = "glass of milk" + desc = "White and nutritious goodness!" + icon_state = "glass_white" + +/datum/glass_style/juicebox/milk + required_drink_type = /datum/reagent/consumable/milk + name = "carton of milk" + desc = "An excellent source of calcium for growing space explorers." + icon_state = "milkbox" + drink_type = DAIRY | BREAKFAST + // Milk is good for humans, but bad for plants. The sugars cannot be used by plants, and the milk fat harms growth. Not shrooms though. I can't deal with this now... /datum/reagent/consumable/milk/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) . = ..() @@ -253,11 +323,14 @@ description = "An opaque white liquid made from soybeans." color = "#DFDFC7" // rgb: 223, 223, 199 taste_description = "soy milk" - glass_icon_state = "glass_white" - glass_name = "glass of soy milk" - glass_desc = "White and nutritious soy goodness!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/soymilk + required_drink_type = /datum/reagent/consumable/soymilk + name = "glass of soy milk" + desc = "White and nutritious soy goodness!" + icon_state = "glass_white" + /datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(affected_mob.getBruteLoss() && DT_PROB(10, delta_time)) affected_mob.heal_bodypart_damage(1, 0) @@ -269,11 +342,14 @@ description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?" color = "#DFD7AF" // rgb: 223, 215, 175 taste_description = "creamy milk" - glass_icon_state = "glass_white" - glass_name = "glass of cream" - glass_desc = "Ewwww..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/cream + required_drink_type = /datum/reagent/consumable/cream + name = "glass of cream" + desc = "Ewwww..." + icon_state = "glass_white" + /datum/reagent/consumable/cream/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(affected_mob.getBruteLoss() && DT_PROB(10, delta_time)) affected_mob.heal_bodypart_damage(1, 0) @@ -287,12 +363,15 @@ nutriment_factor = 0 overdose_threshold = 80 taste_description = "bitterness" - glass_icon_state = "glass_brown" - glass_name = "glass of coffee" - glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/coffee + required_drink_type = /datum/reagent/consumable/coffee + name = "glass of coffee" + desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." + icon_state = "glass_brown" + /datum/reagent/consumable/coffee/overdose_process(mob/living/affected_mob, delta_time, times_fired) affected_mob.set_jitter_if_lower(10 SECONDS * REM * delta_time) ..() @@ -314,12 +393,15 @@ color = "#101000" // rgb: 16, 16, 0 nutriment_factor = 0 taste_description = "tart black tea" - glass_icon_state = "teaglass" - glass_name = "glass of tea" - glass_desc = "Drinking it from here would not seem right." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_STOCK +/datum/glass_style/drinking_glass/tea + required_drink_type = /datum/reagent/consumable/tea + name = "glass of tea" + desc = "Drinking it from here would not seem right." + icon_state = "teaglass" + /datum/reagent/consumable/tea/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_dizzy(-4 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-1 * REM * delta_time) @@ -337,12 +419,16 @@ color = "#FFE978" quality = DRINK_NICE taste_description = "sunshine and summertime" - glass_icon_state = "lemonpitcher" - glass_name = "pitcher of lemonade" - glass_desc = "This drink leaves you feeling nostalgic for some reason." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/lemonade + required_drink_type = /datum/reagent/consumable/lemonade + name = "pitcher of lemonade" + desc = "This drink leaves you feeling nostalgic for some reason." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "lemonpitcher" + /datum/reagent/consumable/tea/arnold_palmer name = "Arnold Palmer" description = "Encourages the patient to go golfing." @@ -350,11 +436,15 @@ quality = DRINK_NICE nutriment_factor = 10 * REAGENTS_METABOLISM taste_description = "bitter tea" - glass_icon_state = "arnold_palmer" - glass_name = "Arnold Palmer" - glass_desc = "You feel like taking a few golf swings after a few swigs of this." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/arnold_palmer + required_drink_type = /datum/reagent/consumable/tea/arnold_palmer + name = "Arnold Palmer" + desc = "You feel like taking a few golf swings after a few swigs of this." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "arnold_palmer" + /datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(DT_PROB(2.5, delta_time)) to_chat(affected_mob, span_notice("[pick("You remember to square your shoulders.","You remember to keep your head down.","You can't decide between squaring your shoulders and keeping your head down.","You remember to relax.","You think about how someday you'll get two strokes off your golf game.")]")) @@ -367,11 +457,15 @@ color = "#102838" // rgb: 16, 40, 56 nutriment_factor = 0 taste_description = "bitter coldness" - glass_icon_state = "icedcoffeeglass" - glass_name = "iced coffee" - glass_desc = "A drink to perk you up and refresh you!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/icecoffee + required_drink_type = /datum/reagent/consumable/icecoffee + name = "iced coffee" + desc = "A drink to perk you up and refresh you!" + icon = 'icons/obj/drinks/coffee.dmi' + icon_state = "icedcoffeeglass" + /datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_dizzy(-10 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-3 * REM * delta_time) @@ -387,11 +481,15 @@ color = "#102838" // rgb: 16, 40, 56 nutriment_factor = 0 taste_description = "bitter coldness and a hint of smoke" - glass_icon_state = "hoticecoffee" - glass_name = "hot ice coffee" - glass_desc = "A sharp drink, this can't have come cheap" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/hot_ice_coffee + required_drink_type = /datum/reagent/consumable/hot_ice_coffee + name = "hot ice coffee" + desc = "A sharp drink - This can't have come cheap." + icon = 'icons/obj/drinks/coffee.dmi' + icon_state = "hoticecoffee" + /datum/reagent/consumable/hot_ice_coffee/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_dizzy(-10 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-3 * REM * delta_time) @@ -408,11 +506,15 @@ color = "#104038" // rgb: 16, 64, 56 nutriment_factor = 0 taste_description = "sweet tea" - glass_icon_state = "icedteaglass" - glass_name = "iced tea" - glass_desc = "All natural, antioxidant-rich flavour sensation." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/icetea + required_drink_type = /datum/reagent/consumable/icetea + name = "iced tea" + desc = "All natural, antioxidant-rich flavour sensation." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "icedteaglass" + /datum/reagent/consumable/icetea/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_dizzy(-4 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-1 * REM * delta_time) @@ -428,11 +530,14 @@ description = "A refreshing beverage." color = "#100800" // rgb: 16, 8, 0 taste_description = "cola" - glass_icon_state = "spacecola" - glass_name = "glass of Space Cola" - glass_desc = "A glass of refreshing Space Cola." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/space_cola + required_drink_type = /datum/reagent/consumable/space_cola + name = "glass of Space Cola" + desc = "A glass of refreshing Space Cola." + icon_state = "spacecola" + /datum/reagent/consumable/space_cola/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_drowsyness(-5 * REM * delta_time) affected_mob.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) @@ -444,11 +549,14 @@ color = "#53090B" quality = DRINK_GOOD taste_description = "fruity overlysweet cola" - glass_icon_state = "royrogers" - glass_name = "Roy Rogers" - glass_desc = "90% sugar in a glass." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/roy_rogers + required_drink_type = /datum/reagent/consumable/roy_rogers + name = "Roy Rogers" + desc = "90% sugar in a glass." + icon_state = "royrogers" + /datum/reagent/consumable/roy_rogers/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.set_jitter_if_lower(12 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-5 * REM * delta_time) @@ -461,11 +569,15 @@ color = "#100800" // rgb: 16, 8, 0 quality = DRINK_VERYGOOD taste_description = "the future" - glass_icon_state = "nuka_colaglass" - glass_name = "glass of Nuka Cola" - glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/nuka_cola + required_drink_type = /datum/reagent/consumable/nuka_cola + name = "glass of Nuka Cola" + desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." + icon = 'icons/obj/drinks/soda.dmi' + icon_state = "nuka_colaglass" + /datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/affected_mob) ..() affected_mob.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) @@ -492,13 +604,15 @@ nutriment_factor = 10 * REAGENTS_METABOLISM metabolization_rate = 2 * REAGENTS_METABOLISM taste_description = "a monstrous sugar rush" - glass_icon_state = "spacecola" - glass_name = "glass of root beer" - glass_desc = "A glass of highly potent, incredibly sugary root beer." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /// If we activated the effect var/effect_enabled = FALSE +/datum/glass_style/drinking_glass/rootbeer + required_drink_type = /datum/reagent/consumable/rootbeer + name = "glass of root beer" + desc = "A glass of highly potent, incredibly sugary root beer." + icon_state = "spacecola" /datum/reagent/consumable/rootbeer/on_mob_end_metabolize(mob/living/affected_mob) REMOVE_TRAIT(affected_mob, TRAIT_DOUBLE_TAP, type) @@ -529,11 +643,14 @@ color = "#EEFF00" // rgb: 238, 255, 0 quality = DRINK_VERYGOOD taste_description = "carbonated oil" - glass_icon_state = "grey_bull_glass" - glass_name = "glass of Grey Bull" - glass_desc = "Surprisingly it isn't grey." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/grey_bull + required_drink_type = /datum/reagent/consumable/grey_bull + name = "glass of Grey Bull" + desc = "Surprisingly it isn't grey." + icon_state = "grey_bull_glass" + /datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/affected_mob) ..() ADD_TRAIT(affected_mob, TRAIT_SHOCKIMMUNE, type) @@ -555,11 +672,14 @@ description = "Blows right through you like a space wind." color = "#102000" // rgb: 16, 32, 0 taste_description = "sweet citrus soda" - glass_icon_state = "Space_mountain_wind_glass" - glass_name = "glass of Space Mountain Wind" - glass_desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/spacemountainwind + required_drink_type = /datum/reagent/consumable/spacemountainwind + name = "glass of Space Mountain Wind" + desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind." + icon_state = "Space_mountain_wind_glass" + /datum/reagent/consumable/spacemountainwind/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_drowsyness(-7 * REM * delta_time) affected_mob.AdjustSleeping(-20 * REM * delta_time) @@ -573,11 +693,14 @@ description = "A delicious blend of 42 different flavours." color = "#102000" // rgb: 16, 32, 0 taste_description = "cherry soda" // FALSE ADVERTISING - glass_icon_state = "dr_gibb_glass" - glass_name = "glass of Dr. Gibb" - glass_desc = "Dr. Gibb. Not as dangerous as the glass_name might imply." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/dr_gibb + required_drink_type = /datum/reagent/consumable/dr_gibb + name = "glass of Dr. Gibb" + desc = "Dr. Gibb. Not as dangerous as the container_name might imply." + icon_state = "dr_gibb_glass" + /datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_drowsyness(-6 * REM * delta_time) affected_mob.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) @@ -588,11 +711,13 @@ description = "Tastes like a hull breach in your mouth." color = "#00FF00" // rgb: 0, 255, 0 taste_description = "cherry soda" - glass_icon_state = "space-up_glass" - glass_name = "glass of Space-Up" - glass_desc = "Space-up. It helps you keep your cool." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/space_up + required_drink_type = /datum/reagent/consumable/space_up + name = "glass of Space-Up" + desc = "Space-up. It helps you keep your cool." + icon_state = "space-up_glass" /datum/reagent/consumable/space_up/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) @@ -603,27 +728,31 @@ description = "A tangy substance made of 0.5% natural citrus!" color = "#8CFF00" // rgb: 135, 255, 0 taste_description = "tangy lime and lemon soda" - glass_icon_state = "lemonlime" - glass_name = "glass of lemon-lime" - glass_desc = "You're pretty certain a real fruit has never actually touched this." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/lemon_lime + required_drink_type = /datum/reagent/consumable/lemon_lime + name = "glass of lemon-lime" + desc = "You're pretty certain a real fruit has never actually touched this." + icon_state = "lemonlime" /datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) ..() - /datum/reagent/consumable/pwr_game name = "Pwr Game" description = "The only drink with the PWR that true gamers crave." color = "#9385bf" // rgb: 58, 52, 75 taste_description = "sweet and salty tang" - glass_icon_state = "pwrgame" - glass_name = "glass of Pwr Game" - glass_desc = "Goes well with a Vlad's salad." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/pwr_game + required_drink_type = /datum/reagent/consumable/pwr_game + name = "glass of Pwr Game" + desc = "Goes well with a Vlad's salad." + icon_state = "pwrgame" + /datum/reagent/consumable/pwr_game/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume) . = ..() if(exposed_mob?.mind?.get_skill_level(/datum/skill/gaming) >= SKILL_LEVEL_LEGENDARY && (methods & INGEST) && !HAS_TRAIT(exposed_mob, TRAIT_GAMERGOD)) @@ -642,11 +771,14 @@ description = "~Shake me up some of that Shambler's Juice!~" color = "#f00060" // rgb: 94, 0, 38 taste_description = "carbonated metallic soda" - glass_icon_state = "shamblerjuice" - glass_name = "glass of Shambler's juice" - glass_desc = "Mmm mm, shambly." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/shamblers + required_drink_type = /datum/reagent/consumable/shamblers + name = "glass of Shambler's juice" + desc = "Mmm mm, shambly." + icon_state = "shamblerjuice" + /datum/reagent/consumable/shamblers/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) ..() @@ -656,14 +788,16 @@ description = "A can of club soda. Why not make a scotch and soda?" color = "#619494" // rgb: 97, 148, 148 taste_description = "carbonated water" - glass_icon_state = "glass_clearcarb" - glass_name = "glass of soda water" - glass_desc = "Soda water. Why not make a scotch and soda?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/sodawater + required_drink_type = /datum/reagent/consumable/sodawater + name = "glass of soda water" + desc = "Soda water. Why not make a scotch and soda?" + icon_state = "glass_clearcarb" - // A variety of nutrients are dissolved in club soda, without sugar. - // These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth. +// A variety of nutrients are dissolved in club soda, without sugar. +// These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth. /datum/reagent/consumable/sodawater/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) . = ..() if(chems.has_reagent(type, 1)) @@ -681,11 +815,14 @@ description = "It tastes strange but at least the quinine keeps the Space Malaria at bay." color = "#0064C8" // rgb: 0, 100, 200 taste_description = "tart and fresh" - glass_icon_state = "glass_clearcarb" - glass_name = "glass of tonic water" - glass_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/tonic + required_drink_type = /datum/reagent/consumable/tonic + name = "glass of tonic water" + desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." + icon_state = "glass_clearcarb" + /datum/reagent/consumable/tonic/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_dizzy(-10 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-3 * REM * delta_time) @@ -700,11 +837,14 @@ color = "#f39b03" // rgb: 243, 155, 3 overdose_threshold = 60 taste_description = "barbecue and nostalgia" - glass_icon_state = "monkey_energy_glass" - glass_name = "glass of Monkey Energy" - glass_desc = "You can unleash the ape, but without the pop of the can?" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/monkey_energy + required_drink_type = /datum/reagent/consumable/monkey_energy + name = "glass of Monkey Energy" + desc = "You can unleash the ape, but without the pop of the can?" + icon_state = "monkey_energy_glass" + /datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.set_jitter_if_lower(80 SECONDS * REM * delta_time) affected_mob.adjust_dizzy(2 SECONDS * REM * delta_time) @@ -733,11 +873,14 @@ reagent_state = SOLID color = "#619494" // rgb: 97, 148, 148 taste_description = "ice" - glass_icon_state = "iceglass" - glass_name = "glass of ice" - glass_desc = "Generally, you're supposed to put something else in there too..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/ice + required_drink_type = /datum/reagent/consumable/ice + name = "glass of ice" + desc = "Generally, you're supposed to put something else in there too..." + icon_state = "iceglass" + /datum/reagent/consumable/ice/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) ..() @@ -748,12 +891,16 @@ color = "#cc6404" // rgb: 204,100,4 quality = DRINK_NICE taste_description = "creamy coffee" - glass_icon_state = "soy_latte" - glass_name = "soy latte" - glass_desc = "A nice and refreshing beverage while you're reading." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/soy_latte + required_drink_type = /datum/reagent/consumable/soy_latte + name = "soy latte" + desc = "A nice and refreshing beverage while you're reading." + icon = 'icons/obj/drinks/coffee.dmi' + icon_state = "soy_latte" + /datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_dizzy(-10 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-3 *REM * delta_time) @@ -771,12 +918,16 @@ color = "#cc6404" // rgb: 204,100,4 quality = DRINK_NICE taste_description = "bitter cream" - glass_icon_state = "cafe_latte" - glass_name = "cafe latte" - glass_desc = "A nice, strong and refreshing beverage while you're reading." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/cafe_latte + required_drink_type = /datum/reagent/consumable/cafe_latte + name = "cafe latte" + desc = "A nice, strong and refreshing beverage while you're reading." + icon = 'icons/obj/drinks/coffee.dmi' + icon_state = "cafe_latte" + /datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_dizzy(-10 SECONDS * REM * delta_time) affected_mob.adjust_drowsyness(-6 * REM * delta_time) @@ -794,11 +945,15 @@ color = "#FF8CFF" // rgb: 255, 140, 255 quality = DRINK_VERYGOOD taste_description = "homely fruit" - glass_icon_state = "doctorsdelightglass" - glass_name = "Doctor's Delight" - glass_desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/doctor_delight + required_drink_type = /datum/reagent/consumable/doctor_delight + name = "Doctor's Delight" + desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "doctorsdelightglass" + /datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjustBruteLoss(-0.5 * REM * delta_time, FALSE, required_bodytype = affected_bodytype) affected_mob.adjustFireLoss(-0.5 * REM * delta_time, FALSE, required_bodytype = affected_bodytype) @@ -818,11 +973,15 @@ color = "#FF6A50" quality = DRINK_VERYGOOD taste_description = "sweet tangy fruit" - glass_icon_state = "cinderella" - glass_name = "Cinderella" - glass_desc = "There is not a single drop of alcohol in this thing." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/cinderella + required_drink_type = /datum/reagent/consumable/cinderella + name = "Cinderella" + desc = "There is not a single drop of alcohol in this thing." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "cinderella" + /datum/reagent/consumable/cinderella/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_disgust(-5 * REM * delta_time) return ..() @@ -834,12 +993,16 @@ quality = DRINK_VERYGOOD nutriment_factor = 8 * REAGENTS_METABOLISM taste_description = "creamy tart cherry" - glass_icon_state = "cherryshake" - glass_name = "cherry shake" - glass_desc = "A cherry flavored milkshake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/cherryshake + required_drink_type = /datum/reagent/consumable/cherryshake + name = "cherry shake" + desc = "A cherry flavored milkshake." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "cherryshake" + /datum/reagent/consumable/bluecherryshake name = "Blue Cherry Shake" description = "An exotic milkshake." @@ -847,11 +1010,15 @@ quality = DRINK_VERYGOOD nutriment_factor = 8 * REAGENTS_METABOLISM taste_description = "creamy blue cherry" - glass_icon_state = "bluecherryshake" - glass_name = "blue cherry shake" - glass_desc = "An exotic blue milkshake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bluecherryshake + required_drink_type = /datum/reagent/consumable/bluecherryshake + name = "blue cherry shake" + desc = "An exotic blue milkshake." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "bluecherryshake" + /datum/reagent/consumable/vanillashake name = "Vanilla Shake" description = "A vanilla flavored milkshake. The basics are still good." @@ -859,12 +1026,16 @@ quality = DRINK_VERYGOOD nutriment_factor = 8 * REAGENTS_METABOLISM taste_description = "sweet creamy vanilla" - glass_icon_state = "vanillashake" - glass_name = "vanilla shake" - glass_desc = "A vanilla flavored milkshake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/vanillashake + required_drink_type = /datum/reagent/consumable/vanillashake + name = "vanilla shake" + desc = "A vanilla flavored milkshake." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "vanillashake" + /datum/reagent/consumable/caramelshake name = "Caramel Shake" description = "A caramel flavored milkshake. Your teeth hurt looking at it." @@ -872,12 +1043,16 @@ quality = DRINK_GOOD nutriment_factor = 10 * REAGENTS_METABOLISM taste_description = "sweet rich creamy caramel" - glass_icon_state = "caramelshake" - glass_name = "caramel shake" - glass_desc = "A caramel flavored milkshake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/caramelshake + required_drink_type = /datum/reagent/consumable/caramelshake + name = "caramel shake" + desc = "A caramel flavored milkshake." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "caramelshake" + /datum/reagent/consumable/choccyshake name = "Chocolate Shake" description = "A frosty chocolate milkshake." @@ -885,12 +1060,16 @@ quality = DRINK_VERYGOOD nutriment_factor = 8 * REAGENTS_METABOLISM taste_description = "sweet creamy chocolate" - glass_icon_state = "choccyshake" - glass_name = "chocolate shake" - glass_desc = "A chocolate flavored milkshake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/choccyshake + required_drink_type = /datum/reagent/consumable/choccyshake + name = "chocolate shake" + desc = "A chocolate flavored milkshake." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "choccyshake" + /datum/reagent/consumable/strawberryshake name = "Strawberry Shake" description = "A strawberry milkshake." @@ -898,12 +1077,16 @@ quality = DRINK_VERYGOOD nutriment_factor = 8 * REAGENTS_METABOLISM taste_description = "sweet strawberries and milk" - glass_icon_state = "strawberryshake" - glass_name = "strawberry shake" - glass_desc = "A strawberry flavored milkshake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/strawberryshake + required_drink_type = /datum/reagent/consumable/strawberryshake + name = "strawberry shake" + desc = "A strawberry flavored milkshake." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "strawberryshake" + /datum/reagent/consumable/bananashake name = "Banana Shake" description = "A banana milkshake. Stuff that clowns drink at their honkday parties." @@ -911,12 +1094,16 @@ quality = DRINK_VERYGOOD nutriment_factor = 8 * REAGENTS_METABOLISM taste_description = "thick banana" - glass_icon_state = "bananashake" - glass_name = "banana shake" - glass_desc = "A banana flavored milkshake." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM +/datum/glass_style/drinking_glass/bananashake + required_drink_type = /datum/reagent/consumable/bananashake + name = "banana shake" + desc = "A banana flavored milkshake." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "bananashake" + /datum/reagent/consumable/pumpkin_latte name = "Pumpkin Latte" description = "A mix of pumpkin juice and coffee." @@ -924,11 +1111,15 @@ quality = DRINK_VERYGOOD nutriment_factor = 3 * REAGENTS_METABOLISM taste_description = "creamy pumpkin" - glass_icon_state = "pumpkin_latte" - glass_name = "pumpkin latte" - glass_desc = "A mix of coffee and pumpkin juice." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/pumpkin_latte + required_drink_type = /datum/reagent/consumable/pumpkin_latte + name = "pumpkin latte" + desc = "A mix of coffee and pumpkin juice." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "pumpkin_latte" + /datum/reagent/consumable/gibbfloats name = "Gibb Floats" description = "Ice cream on top of a Dr. Gibb glass." @@ -936,11 +1127,15 @@ quality = DRINK_NICE nutriment_factor = 3 * REAGENTS_METABOLISM taste_description = "creamy cherry" - glass_icon_state = "gibbfloats" - glass_name = "Gibbfloat" - glass_desc = "Dr. Gibb with ice cream on top." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/gibbfloats + required_drink_type = /datum/reagent/consumable/gibbfloats + name = "Gibbfloat" + desc = "Dr. Gibb with ice cream on top." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "gibbfloats" + /datum/reagent/consumable/pumpkinjuice name = "Pumpkin Juice" description = "Juiced from real pumpkin." @@ -961,20 +1156,26 @@ color = "#EEFF00" quality = DRINK_NICE taste_description = "extreme bitterness" - glass_icon_state = "triplecitrus" //needs own sprite mine are trash //your sprite is great tho - glass_name = "glass of triple citrus" - glass_desc = "A mixture of citrus juices. Tangy, yet smooth." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/triple_citrus + required_drink_type = /datum/reagent/consumable/triple_citrus + name = "glass of triple citrus" + desc = "A mixture of citrus juices. Tangy, yet smooth." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "triplecitrus" //needs own sprite mine are trash //your sprite is great tho + /datum/reagent/consumable/grape_soda name = "Grape Soda" description = "Beloved by children and teetotalers." color = "#E6CDFF" taste_description = "grape soda" - glass_name = "glass of grape juice" - glass_desc = "It's grape (soda)!" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/grape_soda + required_drink_type = /datum/reagent/consumable/grape_soda + name = "glass of grape juice" + /datum/reagent/consumable/grape_soda/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) ..() @@ -987,17 +1188,27 @@ taste_description = "chocolate milk" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/juicebox/chocolate_milk + required_drink_type = /datum/reagent/consumable/milk/chocolate_milk + name = "carton of chocolate milk" + desc = "Milk for cool kids!" + icon_state = "chocolatebox" + drink_type = SUGAR | DAIRY + /datum/reagent/consumable/hot_coco name = "Hot Coco" description = "Made with love! And coco beans." nutriment_factor = 4 * REAGENTS_METABOLISM color = "#403010" // rgb: 64, 48, 16 taste_description = "creamy chocolate" - glass_icon_state = "chocolateglass" - glass_name = "glass of hot coco" - glass_desc = "A favorite winter drink to warm you up." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/hot_coco + required_drink_type = /datum/reagent/consumable/hot_coco + name = "glass of hot coco" + desc = "A favorite winter drink to warm you up." + icon_state = "chocolateglass" + /datum/reagent/consumable/hot_coco/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, affected_mob.get_body_temp_normal()) if(affected_mob.getBruteLoss() && DT_PROB(10, delta_time)) @@ -1014,11 +1225,15 @@ color = "#57372A" quality = DRINK_VERYGOOD taste_description = "thick creamy chocolate" - glass_icon_state = "italiancoco" - glass_name = "glass of italian coco" - glass_desc = "A spin on a winter favourite, made to please." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/italian_coco + required_drink_type = /datum/reagent/consumable/italian_coco + name = "glass of italian coco" + desc = "A spin on a winter favourite, made to please." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "italiancoco" + /datum/reagent/consumable/italian_coco/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, affected_mob.get_body_temp_normal()) return ..() @@ -1028,11 +1243,14 @@ description = "Alleviates coughing symptoms one might have." color = "#80AF9C" taste_description = "mint" - glass_icon_state = "glass_green" - glass_name = "glass of menthol" - glass_desc = "Tastes naturally minty, and imparts a very mild numbing sensation." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/menthol + required_drink_type = /datum/reagent/consumable/menthol + name = "glass of menthol" + desc = "Tastes naturally minty, and imparts a very mild numbing sensation." + icon_state = "glass_green" + /datum/reagent/consumable/menthol/on_mob_life(mob/living/affected_mob, delta_time, times_fired) affected_mob.apply_status_effect(/datum/status_effect/throat_soothed) ..() @@ -1042,46 +1260,69 @@ description = "Not cherry flavored!" color = "#EA1D26" taste_description = "sweet pomegranates" - glass_name = "glass of grenadine" - glass_desc = "Delicious flavored syrup." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/grenadine + required_drink_type = /datum/reagent/consumable/grenadine + name = "glass of grenadine" + desc = "Delicious flavored syrup." + /datum/reagent/consumable/parsnipjuice name = "Parsnip Juice" description = "Why..." color = "#FFA500" taste_description = "parsnip" - glass_name = "glass of parsnip juice" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/parsnipjuice + required_drink_type = /datum/reagent/consumable/parsnipjuice + name = "glass of parsnip juice" + /datum/reagent/consumable/pineapplejuice name = "Pineapple Juice" description = "Tart, tropical, and hotly debated." color = "#F7D435" taste_description = "pineapple" - glass_name = "glass of pineapple juice" - glass_desc = "Tart, tropical, and hotly debated." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/pineapplejuice + required_drink_type = /datum/reagent/consumable/pineapplejuice + name = "glass of pineapple juice" + desc = "Tart, tropical, and hotly debated." + +/datum/glass_style/juicebox/pineapplejuice + required_drink_type = /datum/reagent/consumable/pineapplejuice + name = "pineapple juice box" + desc = "Why would you even want this?" + icon_state = "pineapplebox" + drink_type = FRUIT | PINEAPPLE + /datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink name = "Peach Juice" description = "Just peachy." color = "#E78108" taste_description = "peaches" - glass_name = "glass of peach juice" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/peachjuice + required_drink_type = /datum/reagent/consumable/peachjuice + name = "glass of peach juice" + /datum/reagent/consumable/cream_soda name = "Cream Soda" description = "A classic space-American vanilla flavored soft drink." color = "#dcb137" quality = DRINK_VERYGOOD taste_description = "fizzy vanilla" - glass_icon_state = "cream_soda" - glass_name = "Cream Soda" - glass_desc = "A classic space-American vanilla flavored soft drink." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/cream_soda + required_drink_type = /datum/reagent/consumable/cream_soda + name = "Cream Soda" + desc = "A classic space-American vanilla flavored soft drink." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "cream_soda" + /datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) ..() @@ -1092,11 +1333,14 @@ color = "#f7d26a" quality = DRINK_NICE taste_description = "sweet ginger spice" - glass_icon_state = "soldry" - glass_name = "Sol Dry" - glass_desc = "A soothing, mellow drink made from ginger." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/sol_dry + required_drink_type = /datum/reagent/consumable/sol_dry + name = "Sol Dry" + desc = "A soothing, mellow drink made from ginger." + icon_state = "soldry" + /datum/reagent/consumable/sol_dry/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_disgust(-5 * REM * delta_time) ..() @@ -1107,11 +1351,15 @@ color = "#F43724" quality = DRINK_GOOD taste_description = "sweet cherry syrup and ginger spice" - glass_icon_state = "shirleytemple" - glass_name = "Shirley Temple" - glass_desc = "Ginger ale with processed grenadine. " chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/shirley_temple + required_drink_type = /datum/reagent/consumable/shirley_temple + name = "Shirley Temple" + desc = "Ginger ale with processed grenadine. " + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "shirleytemple" + /datum/reagent/consumable/shirley_temple/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_disgust(-3 * REM * delta_time) return ..() @@ -1122,11 +1370,15 @@ color = "#e6ddc3" quality = DRINK_GOOD taste_description = "wonder" - glass_icon_state = "red_queen" - glass_name = "Red Queen" - glass_desc = "DRINK ME." - var/current_size = RESIZE_DEFAULT_SIZE chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + var/current_size = RESIZE_DEFAULT_SIZE + +/datum/glass_style/drinking_glass/red_queen + required_drink_type = /datum/reagent/consumable/red_queen + name = "Red Queen" + desc = "DRINK ME." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "red_queen" /datum/reagent/consumable/red_queen/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(DT_PROB(50, delta_time)) @@ -1152,31 +1404,40 @@ color = "#F9E43D" description = "Exotic! You feel like you are on vacation already." taste_description = "succulent bungo" - glass_icon_state = "glass_yellow" - glass_name = "glass of bungo juice" - glass_desc = "Exotic! You feel like you are on vacation already." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/bungojuice + required_drink_type = /datum/reagent/consumable/bungojuice + name = "glass of bungo juice" + desc = "Exotic! You feel like you are on vacation already." + icon_state = "glass_yellow" + /datum/reagent/consumable/prunomix name = "Pruno Mixture" color = "#E78108" description = "Fruit, sugar, yeast, and water pulped together into a pungent slurry." taste_description = "garbage" - glass_icon_state = "glass_orange" - glass_name = "glass of pruno mixture" - glass_desc = "Fruit, sugar, yeast, and water pulped together into a pungent slurry." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/prunomix + required_drink_type = /datum/reagent/consumable/prunomix + name = "glass of pruno mixture" + desc = "Fruit, sugar, yeast, and water pulped together into a pungent slurry." + icon_state = "glass_orange" + /datum/reagent/consumable/aloejuice name = "Aloe Juice" color = "#A3C48B" description = "A healthy and refreshing juice." taste_description = "vegetable" - glass_icon_state = "glass_yellow" - glass_name = "glass of aloe juice" - glass_desc = "A healthy and refreshing juice." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/aloejuice + required_drink_type = /datum/reagent/consumable/aloejuice + name = "glass of aloe juice" + desc = "A healthy and refreshing juice." + icon_state = "glass_yellow" + /datum/reagent/consumable/aloejuice/on_mob_life(mob/living/affected_mob, delta_time, times_fired) if(affected_mob.getToxLoss() && DT_PROB(16, delta_time)) affected_mob.adjustToxLoss(-1, FALSE, required_biotype = affected_biotype) @@ -1189,11 +1450,15 @@ color = "#D25B66" quality = DRINK_VERYGOOD taste_description = "cool refreshing watermelon" - glass_icon_state = "aguafresca" - glass_name = "Agua Fresca" - glass_desc = "90% water, but still refreshing." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/agua_fresca + required_drink_type = /datum/reagent/consumable/agua_fresca + name = "Agua Fresca" + desc = "90% water, but still refreshing." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "aguafresca" + /datum/reagent/consumable/agua_fresca/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) affected_mob.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, affected_mob.get_body_temp_normal()) if(affected_mob.getToxLoss() && DT_PROB(10, delta_time)) @@ -1206,11 +1471,14 @@ color = "#674945" // rgb: 16, 16, 0 nutriment_factor = 0 taste_description = "mushrooms" - glass_icon_state = "mushroom_tea_glass" - glass_name = "glass of mushroom tea" - glass_desc = "Oddly savoury for a drink." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/mushroom_tea + required_drink_type = /datum/reagent/consumable/mushroom_tea + name = "glass of mushroom tea" + desc = "Oddly savoury for a drink." + icon_state = "mushroom_tea_glass" + /datum/reagent/consumable/mushroom_tea/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) if(islizard(affected_mob)) affected_mob.adjustOxyLoss(-0.5 * REM * delta_time, FALSE, required_biotype = affected_biotype) @@ -1224,22 +1492,27 @@ color = "#554862" nutriment_factor = 0 taste_description = "fiery itchy pain" - glass_icon_state = "toechtauese_syrup" - glass_name = "glass of töchtaüse juice" - glass_desc = "Raw, unadulterated töchtaüse juice. One swig will fill you with regrets." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/toechtauese_juice + required_drink_type = /datum/reagent/consumable/toechtauese_juice + name = "glass of töchtaüse juice" + desc = "Raw, unadulterated töchtaüse juice. One swig will fill you with regrets." + icon_state = "toechtauese_syrup" + /datum/reagent/consumable/toechtauese_syrup name = "Töchtaüse Syrup" description = "A harsh spicy and bitter syrup, made from töchtaüse berries. Useful as an ingredient, both for food and cocktails." color = "#554862" nutriment_factor = 0 taste_description = "sugar, spice, and nothing nice" - glass_icon_state = "toechtauese_syrup" - glass_name = "glass of töchtaüse syrup" - glass_desc = "Not for drinking on its own." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/toechtauese_syrup + required_drink_type = /datum/reagent/consumable/toechtauese_syrup + name = "glass of töchtaüse syrup" + desc = "Not for drinking on its own." + icon_state = "toechtauese_syrup" /datum/reagent/consumable/strawberry_banana name = "strawberry banana smoothie" @@ -1247,76 +1520,102 @@ color = "#FF9999" nutriment_factor = 0 taste_description = "strawberry and banana" - glass_icon_state = "strawberry_banana" - glass_name = "strawberry banana smoothie" - glass_desc = "A classic drink which countless souls have bonded over..." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/strawberry_banana + required_drink_type = /datum/reagent/consumable/strawberry_banana + name = "strawberry banana smoothie" + desc = "A classic drink which countless souls have bonded over..." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "strawberry_banana" + /datum/reagent/consumable/berry_blast name = "berry blast smoothie" description = "A classic smoothie made from mixed berries." color = "#A76DC5" nutriment_factor = 0 taste_description = "mixed berry" - glass_icon_state = "berry_blast" - glass_name = "berry blast smoothie" - glass_desc = "A classic drink, freshly made with hand picked berries. Or, maybe not." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/berry_blast + required_drink_type = /datum/reagent/consumable/berry_blast + name = "berry blast smoothie" + desc = "A classic drink, freshly made with hand picked berries. Or, maybe not." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "berry_blast" + /datum/reagent/consumable/funky_monkey name = "funky monkey smoothie" description = "A classic smoothie made from chocolate and bananas." color = "#663300" nutriment_factor = 0 taste_description = "chocolate and banana" - glass_icon_state = "funky_monkey" - glass_name = "funky monkey smoothie" - glass_desc = "A classic drink made with chocolate and banana. No monkeys were harmed, officially." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/funky_monkey + required_drink_type = /datum/reagent/consumable/funky_monkey + name = "funky monkey smoothie" + desc = "A classic drink made with chocolate and banana. No monkeys were harmed, officially." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "funky_monkey" + /datum/reagent/consumable/green_giant name = "green giant smoothie" description = "A green vegetable smoothie, made without vegetables." color = "#003300" nutriment_factor = 0 taste_description = "green, just green" - glass_icon_state = "green_giant" - glass_name = "green giant smoothie" - glass_desc = "A classic drink, if you enjoy juiced wheatgrass and chia seeds." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/green_giant + required_drink_type = /datum/reagent/consumable/green_giant + name = "green giant smoothie" + desc = "A classic drink, if you enjoy juiced wheatgrass and chia seeds." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "green_giant" + /datum/reagent/consumable/melon_baller name = "melon baller smoothie" description = "A classic smoothie made from melons." color = "#D22F55" nutriment_factor = 0 taste_description = "fresh melon" - glass_icon_state = "melon_baller" - glass_name = "melon baller smoothie" - glass_desc = "A wonderfully fresh melon smoothie. Guaranteed to brighten your day." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/melon_baller + required_drink_type = /datum/reagent/consumable/melon_baller + name = "melon baller smoothie" + desc = "A wonderfully fresh melon smoothie. Guaranteed to brighten your day." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "melon_baller" + /datum/reagent/consumable/vanilla_dream name = "vanilla dream smoothie" description = "A classic smoothie made from vanilla and fresh cream." color = "#FFF3DD" nutriment_factor = 0 taste_description = "creamy vanilla" - glass_icon_state = "vanilla_dream" - glass_name = "vanilla dream smoothie" - glass_desc = "A classic drink made with vanilla and fresh cream." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/vanilla_dream + required_drink_type = /datum/reagent/consumable/vanilla_dream + name = "vanilla dream smoothie" + desc = "A classic drink made with vanilla and fresh cream." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "vanilla_dream" + /datum/reagent/consumable/cucumberjuice name = "Cucumber Juice" description = "Ordinary cucumber juice, nothing from the fantasy world." color = "#6cd87a" taste_description = "light cucumber" - glass_icon_state = "glass_cucumber" - glass_name = "glass of cucumber juice" - glass_desc = "A glass of cucumber juice." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/cucumberjuice + required_drink_type = /datum/reagent/consumable/cucumberjuice + name = "glass of cucumber juice" + desc = "A glass of cucumber juice." + icon_state = "glass_cucumber" /datum/reagent/consumable/cucumberlemonade name = "Cucumber Lemonade" @@ -1324,11 +1623,15 @@ color = "#6cd87a" quality = DRINK_GOOD taste_description = "citrus soda with cucumber" - glass_icon_state = "cucumber_lemonade" - glass_name = "cucumber lemonade" - glass_desc = "The smell of cucumber from lemonade, I'm sure I won't get poisoned?." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/cucumberlemonade + required_drink_type = /datum/reagent/consumable/cucumberlemonade + name = "cucumber lemonade" + desc = "The smell of cucumber from lemonade, I'm sure I won't get poisoned?." + icon = 'icons/obj/drinks/mixed_drinks.dmi' + icon_state = "cucumber_lemonade" + /datum/reagent/consumable/cucumberlemonade/on_mob_life(mob/living/carbon/doll, delta_time, times_fired) doll.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, doll.get_body_temp_normal()) if(doll.getToxLoss() && DT_PROB(10, delta_time)) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 1dbc8919d81..44858cf8fed 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -922,12 +922,16 @@ quality = DRINK_VERYGOOD nutriment_factor = 4 * REAGENTS_METABOLISM taste_description = "sweet chocolate" - glass_icon_state = "chocolatepudding" - glass_name = "chocolate pudding" - glass_desc = "Tasty." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY +/datum/glass_style/drinking_glass/chocolatepudding + required_drink_type = /datum/reagent/consumable/chocolatepudding + name = "chocolate pudding" + desc = "Tasty." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "chocolatepudding" + /datum/reagent/consumable/vanillapudding name = "Vanilla Pudding" description = "A great dessert for vanilla lovers." @@ -935,11 +939,15 @@ quality = DRINK_VERYGOOD nutriment_factor = 4 * REAGENTS_METABOLISM taste_description = "sweet vanilla" - glass_icon_state = "vanillapudding" - glass_name = "vanilla pudding" - glass_desc = "Tasty." chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/vanillapudding + required_drink_type = /datum/reagent/consumable/vanillapudding + name = "vanilla pudding" + desc = "Tasty." + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "vanillapudding" + /datum/reagent/consumable/laughsyrup name = "Laughin' Syrup" description = "The product of juicing Laughin' Peas. Fizzy, and seems to change flavour based on what it's used with!" diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents.dm index f19852415bd..bd63635fdea 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents.dm @@ -49,6 +49,7 @@ taste_description = "an awful, strongly chemical taste" color = "#270d03" glass_price = DRINK_PRICE_HIGH + fallback_icon = 'icons/obj/drinks/drink_effects.dmi' fallback_icon_state = "failed_reaction_fallback" // Unique diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index d5de5227028..e18ffe63f16 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1603,21 +1603,28 @@ description = "Ancient Clown Lore says that pulped banana peels are good for your blood, but are you really going to take medical advice from a clown about bananas?" color = "#50531a" // rgb: 175, 175, 0 taste_description = "horribly stringy, bitter pulp" - glass_name = "glass of banana peel pulp" - glass_desc = "Ancient Clown Lore says that pulped banana peels are good for your blood, but are you really going to take medical advice from a clown about bananas?" metabolization_rate = 0.5 * REAGENTS_METABOLISM clot_rate = 0.2 passive_bleed_modifier = 0.8 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/drinking_glass/banana_peel + required_drink_type = /datum/reagent/medicine/coagulant/banana_peel + name = "glass of banana peel pulp" + desc = "Ancient Clown Lore says that pulped banana peels are good for your blood, \ + but are you really going to take medical advice from a clown about bananas?" + /datum/reagent/medicine/coagulant/seraka_extract name = "Seraka Extract" description = "A deeply coloured oil present in small amounts in Seraka Mushrooms. Acts as an effective blood clotting agent, but has a low overdose threshold." color = "#00767C" taste_description = "intensely savoury bitterness" - glass_name = "glass of seraka extract" - glass_desc = "Deeply savoury, bitter, and makes your blood clot up in your veins. A great drink, all things considered." metabolization_rate = 0.2 * REAGENTS_METABOLISM clot_rate = 0.4 //slightly better than regular coagulant passive_bleed_modifier = 0.5 overdose_threshold = 10 //but easier to overdose on + +/datum/glass_style/drinking_glass/seraka_extract + required_drink_type = /datum/reagent/medicine/coagulant/seraka_extract + name = "glass of seraka extract" + desc = "Deeply savoury, bitter, and makes your blood clot up in your veins. A great drink, all things considered." diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 240e7f63865..c2bc50ccdaa 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -5,13 +5,20 @@ metabolization_rate = 12.5 * REAGENTS_METABOLISM //fast rate so it disappears fast. taste_description = "iron" taste_mult = 1.3 - glass_icon_state = "glass_red" - glass_name = "glass of tomato juice" - glass_desc = "Are you sure this is tomato juice?" - shot_glass_icon_state = "shotglassred" penetrates_skin = NONE ph = 7.4 +/datum/glass_style/shot_glass/blood + required_drink_type = /datum/reagent/blood + icon_state = "shotglassred" + +/datum/glass_style/drinking_glass/blood + required_drink_type = /datum/reagent/blood + name = "glass of tomato juice" + desc = "Are you sure this is tomato juice?" + icon_state = "glass_red" + + // FEED ME /datum/reagent/blood/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) . = ..() @@ -110,11 +117,14 @@ color = "#CC4633" description = "You don't even want to think about what's in here." taste_description = "gross iron" - shot_glass_icon_state = "shotglassred" material = /datum/material/meat ph = 7.45 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/liquidgibs + required_drink_type = /datum/reagent/liquidgibs + icon_state = "shotglassred" + /datum/reagent/bone_dust name = "Bone Dust" color = "#dbcdcb" @@ -162,12 +172,18 @@ color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha) taste_description = "water" var/cooling_temperature = 2 - glass_icon_state = "glass_clear" - glass_name = "glass of water" - glass_desc = "The father of all refreshments." - shot_glass_icon_state = "shotglassclear" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_CLEANS +/datum/glass_style/shot_glass/water + required_drink_type = /datum/reagent/water + icon_state = "shotglassclear" + +/datum/glass_style/drinking_glass/water + required_drink_type = /datum/reagent/water + name = "glass of water" + desc = "The father of all refreshments." + icon_state = "glass_clear" + /* * Water reaction to turf */ @@ -246,13 +262,16 @@ name = "Holy Water" description = "Water blessed by some deity." color = "#E0E8EF" // rgb: 224, 232, 239 - glass_icon_state = "glass_clear" - glass_name = "glass of holy water" - glass_desc = "A glass of holy water." self_consuming = TRUE //divine intervention won't be limited by the lack of a liver ph = 7.5 //God is alkaline chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_CLEANS +/datum/glass_style/drinking_glass/holywater + required_drink_type = /datum/reagent/water/holywater + name = "glass of holy water" + desc = "A glass of holy water." + icon_state = "glass_clear" + // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits. Also ALSO increases instability. /datum/reagent/water/holywater/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray) if(chems.has_reagent(type, 1)) @@ -334,13 +353,19 @@ color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha) taste_description = "burning water" var/cooling_temperature = 2 - glass_icon_state = "glass_clear" - glass_name = "glass of oxygenated water" - glass_desc = "The father of all refreshments. Surely it tastes great, right?" - shot_glass_icon_state = "shotglassclear" ph = 6.2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/glass_style/shot_glass/hydrogen_peroxide + required_drink_type = /datum/reagent/hydrogen_peroxide + icon_state = "shotglassclear" + +/datum/glass_style/drinking_glass/hydrogen_peroxide + required_drink_type = /datum/reagent/hydrogen_peroxide + name = "glass of oxygenated water" + desc = "The father of all refreshments. Surely it tastes great, right?" + icon_state = "glass_clear" + /* * Water reaction to turf */ @@ -440,6 +465,7 @@ overdose_threshold = 11 //Slightly more than one un-nozzled spraybottle. taste_description = "sour oranges" ph = 5 + fallback_icon = 'icons/obj/drinks/drink_effects.dmi' fallback_icon_state = "spraytan_fallback" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -1143,9 +1169,6 @@ description = "Required for welders. Flammable." color = "#660000" // rgb: 102, 0, 0 taste_description = "gross metal" - glass_icon_state = "dr_gibb_glass" - glass_name = "glass of welder fuel" - glass_desc = "Unless you're an industrial tool, this is probably not safe for consumption." penetrates_skin = NONE ph = 4 burning_temperature = 1725 //more refined than oil @@ -1153,6 +1176,12 @@ chemical_flags = REAGENT_CAN_BE_SYNTHESIZED addiction_types = list(/datum/addiction/alcohol = 4) +/datum/glass_style/drinking_glass/fuel + required_drink_type = /datum/reagent/fuel + name = "glass of welder fuel" + desc = "Unless you're an industrial tool, this is probably not safe for consumption." + icon_state = "dr_gibb_glass" + /datum/reagent/fuel/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite! . = ..() if(methods & (TOUCH|VAPOR)) @@ -2453,8 +2482,6 @@ /datum/reagent/yuck name = "Organic Slurry" description = "A mixture of various colors of fluid. Induces vomiting." - glass_name = "glass of ...yuck!" - glass_desc = "It smells like a carcass, and doesn't look much better." color = "#545000" taste_description = "insides" taste_mult = 4 @@ -2462,6 +2489,11 @@ chemical_flags = REAGENT_CAN_BE_SYNTHESIZED var/yuck_cycle = 0 //! The `current_cycle` when puking starts. +/datum/glass_style/drinking_glass/yuck + required_drink_type = /datum/reagent/yuck + name = "glass of ...yuck!" + desc = "It smells like a carcass, and doesn't look much better." + /datum/reagent/yuck/on_mob_add(mob/living/affected_mob) . = ..() if(HAS_TRAIT(affected_mob, TRAIT_NOHUNGER)) //they can't puke @@ -2695,8 +2727,6 @@ taste_mult = 1.3 taste_description = "tiny legs scuttling down the back of your throat" metabolization_rate = 5 * REAGENTS_METABOLISM //1u per second - glass_name = "glass of ants" - glass_desc = "Bottoms up...?" ph = 4.6 // Ants contain Formic Acid /// How much damage the ants are going to be doing (rises with each tick the ants are in someone's body) var/ant_damage = 0 @@ -2708,8 +2738,13 @@ "GET THEM OUT OF ME!!", "HOLY HELL THEY BURN!!", "MY GOD THEY'RE INSIDE ME!!", - "GET THEM OUT!!" - ) + "GET THEM OUT!!", + ) + +/datum/glass_style/drinking_glass/ants + required_drink_type = /datum/reagent/ants + name = "glass of ants" + desc = "Bottoms up...?" /datum/reagent/ants/on_mob_life(mob/living/carbon/victim, delta_time) victim.adjustBruteLoss(max(0.1, round((ant_damage * 0.025),0.1))) //Scales with time. Roughly 32 brute with 100u. diff --git a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm index b97b2576c40..a86bcfc97b0 100644 --- a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm @@ -22,6 +22,7 @@ color = "#fbc314" ph = 0 inverse_chem = null + fallback_icon = 'icons/obj/drinks/drink_effects.dmi' fallback_icon_state = "acid_buffer_fallback" ///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will decrease by 0.4 var/strength = 30 @@ -48,6 +49,7 @@ color = "#3853a4" ph = 14 inverse_chem = null + fallback_icon = 'icons/obj/drinks/drink_effects.dmi' fallback_icon_state = "base_buffer_fallback" ///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will increase by 0.4 var/strength = 30 diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 70148157f5b..6c84cbaf384 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -491,12 +491,21 @@ color = "#664300" // rgb: 102, 67, 0 metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "piss water" - glass_icon_state = "beerglass" - glass_name = "glass of beer" - glass_desc = "A freezing pint of beer." ph = 2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE +/datum/glass_style/drinking_glass/fakebeer + required_drink_type = /datum/reagent/toxin/fakebeer + +/datum/glass_style/drinking_glass/fakebeer/New() + . = ..() + // Copy styles from the beer drinking glass datum + var/datum/glass_style/copy_from = /datum/glass_style/drinking_glass/beer + name = initial(copy_from.name) + desc = initial(copy_from.desc) + icon = initial(copy_from.icon) + icon_state = initial(copy_from.icon_state) + /datum/reagent/toxin/fakebeer/on_mob_life(mob/living/carbon/affected_mob, delta_time, times_fired) switch(current_cycle) if(1 to 50) diff --git a/code/modules/reagents/reagent_containers/cups/_glass_datum.dm b/code/modules/reagents/reagent_containers/cups/_glass_datum.dm new file mode 100644 index 00000000000..479a8608384 --- /dev/null +++ b/code/modules/reagents/reagent_containers/cups/_glass_datum.dm @@ -0,0 +1,79 @@ +/// Global list of all glass style singletons created. See [/proc/create_glass_styles] for list format. +GLOBAL_LIST_INIT(glass_style_singletons, create_glass_styles()) + +/** + * Constructs a nested list of glass style singletons + * + * List format: + * * list(glasses = list(beer = style datum, vodka = style datum), shot glasses = list(vodka = different style datum)) + * + * Where + * * "glasses" and "shotglasses" are item typepaths + * * "beer" and "vodka" are reagent typepaths + * * "style datum" is a glass style singleton datum + * + * Returns the list. + */ +/proc/create_glass_styles() + var/list/final_list = list() + for(var/datum/glass_style/style as anything in typesof(/datum/glass_style)) + if(!initial(style.required_drink_type) || !initial(style.required_container_type)) + continue + + var/datum/glass_style/new_style = new style() + var/container_type = new_style.required_container_type + var/reagent_type = new_style.required_drink_type + if(!islist(final_list[container_type])) + final_list[container_type] = list() + // Check that our slot is free. If it's not free, this is an error + if(final_list[container_type][reagent_type]) + stack_trace("[style] collided with another glass style singleton during instantiation. \ + This means its reagent ([reagent_type]) has two styles set for the same container type. \ + This is invalid - please correct this.") + + final_list[container_type][reagent_type] = new_style + + return final_list + +/** + * ## Glass style singleton + * + * Used by [/datum/component/takes_reagent_appearance], and a few other places, + * to modify the looks of a reagent container (not /reagent_containers, any atom with reagents) + * when certain types of reagents are put into and become the majority reagent of the container + * + * For example, pouring Vodka into a glass will change its icon to look like the vodka glass sprite + * while pouring it into a shot glass will change to the vodka shot glass sprite + * + * A reagent type can have multiple glass styles so long as each style is linked to a different container type, + * this allows one reagent to style multiple things across a variety of icon files + */ +/datum/glass_style + /// Required - What EXACT type of reagent is needed for this style to be used + /// If not supplied, will be assumed to be an abstract type and will not be instantiated + var/required_drink_type + /// Required - What EXACT type of atom is needed for this style to be used + /// If not supplied, will be assumed to be an abstract type and will not be instantiated + var/required_container_type + /// Optional - What the glass is renamed to + var/name + /// Optional - What the glass description is changed to + var/desc + /// Suggested - What icon file to use for this glass style + var/icon + /// Suggested - What icon state is used for this glass style + var/icon_state + +/datum/glass_style/drinking_glass + required_container_type = /obj/item/reagent_containers/cup/glass/drinkingglass + icon = 'icons/obj/drinks/drinks.dmi' + +/datum/glass_style/shot_glass + required_container_type = /obj/item/reagent_containers/cup/glass/drinkingglass/shotglass + icon = 'icons/obj/drinks/shot_glasses.dmi' + +/datum/glass_style/juicebox + required_container_type = /obj/item/reagent_containers/cup/glass/sillycup/smallcarton + icon = 'icons/obj/drinks/boxes.dmi' + /// This style changes the "drink type" of the container it's placed it as well, it's like food types + var/drink_type = NONE diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm index eae5ba85dfb..60be37c8042 100644 --- a/code/modules/reagents/reagent_containers/cups/bottle.dm +++ b/code/modules/reagents/reagent_containers/cups/bottle.dm @@ -108,7 +108,7 @@ /obj/item/reagent_containers/cup/bottle/adminordrazine name = "Adminordrazine Bottle" desc = "A small bottle. Contains the liquid essence of the gods." - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "holyflask" list_reagents = list(/datum/reagent/medicine/adminordrazine = 30) diff --git a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm index d9b12554d6c..f065969590c 100644 --- a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm @@ -18,44 +18,22 @@ //the screwdriver cocktail can make a drinking glass into the world's worst screwdriver. beautiful. toolspeed = 25 +/obj/item/reagent_containers/cup/glass/drinkingglass/Initialize(mapload, vol) + . = ..() + AddComponent(/datum/component/takes_reagent_appearance, CALLBACK(src, PROC_REF(on_glass_change)), CALLBACK(src, PROC_REF(on_glass_reset))) + /obj/item/reagent_containers/cup/glass/drinkingglass/on_reagent_change(datum/reagents/holder, ...) . = ..() if(!length(reagents.reagent_list)) renamedByPlayer = FALSE //so new drinks can rename the glass -/obj/item/reagent_containers/cup/glass/drinkingglass/update_name(updates) - if(renamedByPlayer) - return - . = ..() - var/datum/reagent/largest_reagent = reagents.get_master_reagent() - name = largest_reagent?.glass_name || initial(name) +/// Having our icon state change removes fill thresholds +/obj/item/reagent_containers/cup/glass/drinkingglass/proc/on_glass_change(datum/glass_style/style) + fill_icon_thresholds = null -/obj/item/reagent_containers/cup/glass/drinkingglass/update_desc(updates) - if(renamedByPlayer) - return - . = ..() - var/datum/reagent/largest_reagent = reagents.get_master_reagent() - desc = largest_reagent?.glass_desc || initial(desc) - -/obj/item/reagent_containers/cup/glass/drinkingglass/update_icon_state() - if(!reagents.total_volume) - icon_state = base_icon_state - return ..() - - var/glass_icon = get_glass_icon(reagents.get_master_reagent()) - if(glass_icon) - icon_state = glass_icon - fill_icon_thresholds = null - else - //Make sure the fill_icon_thresholds and the icon_state are reset. We'll use reagent overlays. - fill_icon_thresholds = fill_icon_thresholds || list(1) - icon_state = base_icon_state - return ..() - -/obj/item/reagent_containers/cup/glass/drinkingglass/proc/get_glass_icon(datum/reagent/largest_reagent) - if(!largest_reagent) - return FALSE - return largest_reagent.glass_icon_state +/// And having our icon reset restores our fill thresholds +/obj/item/reagent_containers/cup/glass/drinkingglass/proc/on_glass_reset() + fill_icon_thresholds ||= list(0) //Shot glasses!// // This lets us add shots in here instead of lumping them in with drinks because >logic // @@ -67,6 +45,7 @@ /obj/item/reagent_containers/cup/glass/drinkingglass/shotglass name = "shot glass" desc = "A shot glass - the universal symbol for bad decisions." + icon = 'icons/obj/drinks/shot_glasses.dmi' icon_state = "shotglass" base_icon_state = "shotglass" gulp_size = 15 @@ -81,21 +60,16 @@ if(renamedByPlayer) return . = ..() - name = "[length(reagents.reagent_list) ? "filled " : null]shot glass" + name = "[length(reagents.reagent_list) ? "filled " : ""]shot glass" /obj/item/reagent_containers/cup/glass/drinkingglass/shotglass/update_desc(updates) if(renamedByPlayer) return . = ..() - if(!length(reagents.reagent_list)) - desc = "A shot glass - the universal symbol for bad decisions." - else + if(length(reagents.reagent_list)) desc = "The challenge is not taking as many as you can, but guessing what it is before you pass out." - -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass/get_glass_icon(datum/reagent/largest_reagent) - if(!largest_reagent) - return FALSE - return largest_reagent.shot_glass_icon_state + else + desc = "A shot glass - the universal symbol for bad decisions." /obj/item/reagent_containers/cup/glass/drinkingglass/filled/soda name = "Soda Water" diff --git a/code/modules/reagents/reagent_containers/cups/drinks.dm b/code/modules/reagents/reagent_containers/cups/drinks.dm index de4013502d4..23917f7af52 100644 --- a/code/modules/reagents/reagent_containers/cups/drinks.dm +++ b/code/modules/reagents/reagent_containers/cups/drinks.dm @@ -4,7 +4,7 @@ /obj/item/reagent_containers/cup/glass name = "drink" desc = "yummy" - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/drinks.dmi' icon_state = null possible_transfer_amounts = list(5,10,15,20,25,30,50) resistance_flags = NONE @@ -40,6 +40,7 @@ /obj/item/reagent_containers/cup/glass/trophy name = "pewter cup" desc = "Everyone gets a trophy." + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "pewter_cup" w_class = WEIGHT_CLASS_TINY force = 1 @@ -56,6 +57,7 @@ /obj/item/reagent_containers/cup/glass/trophy/gold_cup name = "gold cup" desc = "You're winner!" + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "golden_cup" inhand_icon_state = "golden_cup" w_class = WEIGHT_CLASS_BULKY @@ -68,6 +70,7 @@ /obj/item/reagent_containers/cup/glass/trophy/silver_cup name = "silver cup" desc = "Best loser!" + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "silver_cup" w_class = WEIGHT_CLASS_NORMAL force = 10 @@ -80,6 +83,7 @@ /obj/item/reagent_containers/cup/glass/trophy/bronze_cup name = "bronze cup" desc = "At least you ranked!" + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "bronze_cup" w_class = WEIGHT_CLASS_SMALL force = 5 @@ -96,7 +100,9 @@ /obj/item/reagent_containers/cup/glass/coffee name = "robust coffee" desc = "Careful, the beverage you're about to enjoy is extremely hot." + icon = 'icons/obj/drinks/coffee.dmi' icon_state = "coffee" + base_icon_state = "coffee" list_reagents = list(/datum/reagent/consumable/coffee = 30) spillable = TRUE resistance_flags = FREEZE_PROOF @@ -120,9 +126,9 @@ /obj/item/reagent_containers/cup/glass/coffee/update_icon_state() if(lid_open) - icon_state = reagents.total_volume ? "coffee_full" : "coffee_empty" + icon_state = reagents.total_volume ? "[base_icon_state]_full" : "[base_icon_state]_empty" else - icon_state = "coffee" + icon_state = base_icon_state return ..() /obj/item/reagent_containers/cup/glass/ice @@ -142,6 +148,7 @@ /obj/item/reagent_containers/cup/glass/mug // parent type is literally just so empty mug sprites are a thing name = "mug" desc = "A drink served in a classy mug." + icon = 'icons/obj/drinks/coffee.dmi' icon_state = "tea_empty" base_icon_state = "tea" inhand_icon_state = "coffee" @@ -175,14 +182,16 @@ /obj/item/reagent_containers/cup/glass/coffee_cup name = "coffee cup" desc = "A heat-formed plastic coffee cup. Can theoretically be used for other hot drinks, if you're feeling adventurous." + icon = 'icons/obj/drinks/coffee.dmi' icon_state = "coffee_cup_e" + base_icon_state = "coffee_cup" possible_transfer_amounts = list(10) volume = 30 spillable = TRUE isGlass = FALSE /obj/item/reagent_containers/cup/glass/coffee_cup/update_icon_state() - icon_state = reagents.total_volume ? "coffee_cup" : "coffee_cup_e" + icon_state = reagents.total_volume ? base_icon_state : "[base_icon_state]_e" return ..() /obj/item/reagent_containers/cup/glass/dry_ramen @@ -197,7 +206,7 @@ /obj/item/reagent_containers/cup/glass/waterbottle name = "bottle of water" desc = "A bottle of water filled at an old Earth bottling facility." - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "smallbottle" inhand_icon_state = null list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard @@ -358,100 +367,22 @@ /obj/item/reagent_containers/cup/glass/sillycup/smallcarton name = "small carton" desc = "A small carton, intended for holding drinks." + icon = 'icons/obj/drinks/boxes.dmi' icon_state = "juicebox" volume = 15 //I figure if you have to craft these it should at least be slightly better than something you can get for free from a watercooler -/// Reagent container icon updates, especially this one, are complete jank. I will need to rework them after this is merged. -/obj/item/reagent_containers/cup/glass/sillycup/smallcarton/on_reagent_change(datum/reagents/holder, ...) +/obj/item/reagent_containers/cup/glass/sillycup/smallcarton/Initialize(mapload, vol) . = ..() - if(!length(reagents.reagent_list)) - drink_type = NONE /// Why are drink types on the _container_? TODO: move these to the reagents //im waiting + AddComponent(/datum/component/takes_reagent_appearance, CALLBACK(src, PROC_REF(on_box_change)), CALLBACK(src, PROC_REF(on_box_reset))) + +/// Having our icon state change changes our food type +/obj/item/reagent_containers/cup/glass/sillycup/smallcarton/proc/on_box_change(datum/glass_style/juicebox/style) + if(!istype(style)) return + drink_type = style.drink_type - switch(reagents.get_master_reagent_id()) - if(/datum/reagent/consumable/orangejuice) - drink_type = FRUIT | BREAKFAST - if(/datum/reagent/consumable/milk) - drink_type = DAIRY | BREAKFAST - if(/datum/reagent/consumable/applejuice) - drink_type = FRUIT - if(/datum/reagent/consumable/grapejuice) - drink_type = FRUIT - if(/datum/reagent/consumable/pineapplejuice) - drink_type = FRUIT | PINEAPPLE - if(/datum/reagent/consumable/milk/chocolate_milk) - drink_type = SUGAR - if(/datum/reagent/consumable/ethanol/eggnog) - drink_type = MEAT - -/obj/item/reagent_containers/cup/glass/sillycup/smallcarton/update_name(updates) - . = ..() - if(!length(reagents.reagent_list)) - name = "small carton" - return - - switch(reagents.get_master_reagent_id()) - if(/datum/reagent/consumable/orangejuice) - name = "orange juice box" - if(/datum/reagent/consumable/milk) - name = "carton of milk" - if(/datum/reagent/consumable/applejuice) - name = "apple juice box" - if(/datum/reagent/consumable/grapejuice) - name = "grape juice box" - if(/datum/reagent/consumable/pineapplejuice) - name = "pineapple juice box" - if(/datum/reagent/consumable/milk/chocolate_milk) - name = "carton of chocolate milk" - if(/datum/reagent/consumable/ethanol/eggnog) - name = "carton of eggnog" - -/obj/item/reagent_containers/cup/glass/sillycup/smallcarton/update_desc(updates) - . = ..() - if(!length(reagents.reagent_list)) - desc = "A small carton, intended for holding drinks." - return - - switch(reagents.get_master_reagent_id()) - if(/datum/reagent/consumable/orangejuice) - desc = "A great source of vitamins. Stay healthy!" - if(/datum/reagent/consumable/milk) - desc = "An excellent source of calcium for growing space explorers." - if(/datum/reagent/consumable/applejuice) - desc = "Sweet apple juice. Don't be late for school!" - if(/datum/reagent/consumable/grapejuice) - desc = "Tasty grape juice in a fun little container. Non-alcoholic!" - if(/datum/reagent/consumable/pineapplejuice) - desc = "Why would you even want this?" - if(/datum/reagent/consumable/milk/chocolate_milk) - desc = "Milk for cool kids!" - if(/datum/reagent/consumable/ethanol/eggnog) - desc = "For enjoying the most wonderful time of the year." - - -/obj/item/reagent_containers/cup/glass/sillycup/smallcarton/update_icon_state() - . = ..() - if(!length(reagents.reagent_list)) - icon_state = "juicebox" - return - - switch(reagents.get_master_reagent_id()) // Thanks to update_name not existing we need to do this whole switch twice - if(/datum/reagent/consumable/orangejuice) - icon_state = "orangebox" - if(/datum/reagent/consumable/milk) - icon_state = "milkbox" - if(/datum/reagent/consumable/applejuice) - icon_state = "juicebox" - if(/datum/reagent/consumable/grapejuice) - icon_state = "grapebox" - if(/datum/reagent/consumable/pineapplejuice) - icon_state = "pineapplebox" - if(/datum/reagent/consumable/milk/chocolate_milk) - icon_state = "chocolatebox" - if(/datum/reagent/consumable/ethanol/eggnog) - icon_state = "nog2" - else - icon_state = "juicebox" +/obj/item/reagent_containers/cup/glass/sillycup/smallcarton/proc/on_box_reset() + drink_type = NONE /obj/item/reagent_containers/cup/glass/sillycup/smallcarton/smash(atom/target, mob/thrower, ranged = FALSE) if(bartender_check(target) && ranged) @@ -465,7 +396,7 @@ /obj/item/reagent_containers/cup/glass/colocup name = "colo cup" desc = "A cheap, mass produced style of cup, typically used at parties. They never seem to come out red, for some reason..." - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/colo.dmi' icon_state = "colocup" inhand_icon_state = "colocup" custom_materials = list(/datum/material/plastic = 1000) @@ -494,6 +425,7 @@ /obj/item/reagent_containers/cup/glass/shaker name = "shaker" desc = "A metal shaker to mix drinks in." + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "shaker" custom_materials = list(/datum/material/iron=1500) amount_per_transfer_from_this = 10 @@ -511,6 +443,7 @@ name = "flask" desc = "Every good spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go." custom_price = PAYCHECK_COMMAND * 2 + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "flask" custom_materials = list(/datum/material/iron=250) volume = 60 @@ -528,9 +461,11 @@ icon_state = "detflask" list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 30) -/obj/item/reagent_containers/cup/glass/britcup +/obj/item/reagent_containers/cup/glass/mug/britcup name = "cup" desc = "A cup with the british flag emblazoned on it." - icon_state = "britcup" + icon = 'icons/obj/drinks/coffee.dmi' + icon_state = "britcup_empty" + base_icon_state = "britcup" volume = 30 spillable = TRUE diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index a2bda6713c2..dd1e3158ec0 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -7,6 +7,7 @@ /obj/item/reagent_containers/cup/glass/bottle name = "glass bottle" desc = "This blank bottle is unyieldingly anonymous, offering no clues to its contents." + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "glassbottle" worn_icon_state = "bottle" fill_icon_thresholds = list(0, 10, 20, 30, 40, 50, 60, 70, 80, 90) @@ -143,7 +144,7 @@ /obj/item/broken_bottle name = "broken bottle" desc = "A bottle with a sharp broken bottom." - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/drink_effects.dmi' icon_state = "broken_bottle" force = 9 throwforce = 5 @@ -159,9 +160,9 @@ attack_verb_simple = list("stab", "slash", "attack") sharpness = SHARP_EDGED ///The mask image for mimicking a broken-off bottom of the bottle - var/static/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken") + var/static/icon/broken_outline = icon('icons/obj/drinks/drink_effects.dmi', "broken") ///The mask image for mimicking a broken-off neck of the bottle - var/static/icon/flipped_broken_outline = icon('icons/obj/drinks.dmi', "broken-flipped") + var/static/icon/flipped_broken_outline = icon('icons/obj/drinks/drink_effects.dmi', "broken-flipped") /obj/item/broken_bottle/Initialize(mapload) . = ..() @@ -301,6 +302,7 @@ /obj/item/reagent_containers/cup/glass/bottle/holywater name = "flask of holy water" desc = "A flask of the chaplain's holy water." + icon = 'icons/obj/drinks/bottles.dmi' icon_state = "holyflask" list_reagents = list(/datum/reagent/water/holywater = 100) drink_type = NONE @@ -623,7 +625,7 @@ /obj/projectile/bullet/reusable/champagne_cork name = "champagne cork" - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/drink_effects.dmi' icon_state = "champagne_cork" hitsound = 'sound/weapons/genhit.ogg' damage = 10 @@ -646,7 +648,7 @@ /obj/item/trash/champagne_cork name = "champagne cork" - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/drink_effects.dmi' icon_state = "champagne_cork" /obj/item/trash/champagne_cork/sabrage @@ -832,6 +834,7 @@ /obj/item/reagent_containers/cup/glass/bottle/juice/orangejuice name = "orange juice" desc = "Full of vitamins and deliciousness!" + icon = 'icons/obj/drinks/boxes.dmi' icon_state = "orangejuice" list_reagents = list(/datum/reagent/consumable/orangejuice = 100) drink_type = FRUIT | BREAKFAST @@ -839,6 +842,7 @@ /obj/item/reagent_containers/cup/glass/bottle/juice/cream name = "milk cream" desc = "It's cream. Made from milk. What else did you think you'd find in there?" + icon = 'icons/obj/drinks/boxes.dmi' icon_state = "cream" list_reagents = list(/datum/reagent/consumable/cream = 100) drink_type = DAIRY @@ -846,6 +850,7 @@ /obj/item/reagent_containers/cup/glass/bottle/juice/tomatojuice name = "tomato juice" desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness." + icon = 'icons/obj/drinks/boxes.dmi' icon_state = "tomatojuice" list_reagents = list(/datum/reagent/consumable/tomatojuice = 100) drink_type = VEGETABLES @@ -853,6 +858,7 @@ /obj/item/reagent_containers/cup/glass/bottle/juice/limejuice name = "lime juice" desc = "Sweet-sour goodness." + icon = 'icons/obj/drinks/boxes.dmi' icon_state = "limejuice" list_reagents = list(/datum/reagent/consumable/limejuice = 100) drink_type = FRUIT @@ -860,6 +866,7 @@ /obj/item/reagent_containers/cup/glass/bottle/juice/pineapplejuice name = "pineapple juice" desc = "Extremely tart, yellow juice." + icon = 'icons/obj/drinks/boxes.dmi' icon_state = "pineapplejuice" list_reagents = list(/datum/reagent/consumable/pineapplejuice = 100) drink_type = FRUIT | PINEAPPLE diff --git a/code/modules/reagents/reagent_containers/cups/soda.dm b/code/modules/reagents/reagent_containers/cups/soda.dm index 98ecd6998bd..e927b023b68 100644 --- a/code/modules/reagents/reagent_containers/cups/soda.dm +++ b/code/modules/reagents/reagent_containers/cups/soda.dm @@ -8,7 +8,7 @@ /obj/item/reagent_containers/cup/soda_cans name = "soda can" - icon = 'icons/obj/drinks.dmi' + icon = 'icons/obj/drinks/soda.dmi' reagent_flags = NONE spillable = FALSE custom_price = PAYCHECK_CREW * 0.9 diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 2563f1a4357..50cc1f08586 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -101,6 +101,7 @@ #include "dcs_get_id_from_elements.dm" #include "designs.dm" #include "dragon_expiration.dm" +#include "drink_icons.dm" #include "dummy_spawn.dm" #include "dynamic_ruleset_sanity.dm" #include "egg_glands.dm" diff --git a/code/modules/unit_tests/drink_icons.dm b/code/modules/unit_tests/drink_icons.dm new file mode 100644 index 00000000000..efa1e39f9d1 --- /dev/null +++ b/code/modules/unit_tests/drink_icons.dm @@ -0,0 +1,75 @@ +/// Unit tests all glass style datums with icons / icon states that those are valid and not missing. +/datum/unit_test/glass_style_icons + /// The generic commonplace DMI for all normal drink sprites + var/generic_drink_loc = 'icons/obj/drinks/drinks.dmi' + /// The generic commonplace DMI for all mixed drink sprites + var/generic_mixed_drink_loc = 'icons/obj/drinks/mixed_drinks.dmi' + +/datum/unit_test/glass_style_icons/Run() + for(var/container_type in GLOB.glass_style_singletons) + for(var/reagent_type in GLOB.glass_style_singletons[container_type]) + var/datum/glass_style/style = GLOB.glass_style_singletons[container_type][reagent_type] + var/style_icon = style.icon + var/style_icon_state = style.icon_state + + if(!style_icon_state) + continue + if(!style_icon) + TEST_FAIL("[style.type] glass style had an icon state ([style_icon_state]) but no icon file.") + continue + if(icon_exists(style_icon, style_icon_state)) + continue + + var/was_actually_in = "" + // For ease of debugging errors, we will check a few generic locations + // to see if it's just misplaced and the user needs to just correct it + if(style_icon != generic_mixed_drink_loc && icon_exists(generic_mixed_drink_loc, style_icon_state)) + was_actually_in = "The icon was found in the mixed drinks dmi." + else if(style_icon != generic_drink_loc && icon_exists(generic_drink_loc, style_icon_state)) + was_actually_in = "The icon was found in the standard drinks dmi." + // If it wasn't found in either of the generic spots it could be absent or otherwise in another file + else + was_actually_in = "The icon may be located in another dmi or is missing." + + TEST_FAIL("[style.type] glass style had an icon state ([style_icon_state]) not present in its icon ([style_icon]). [was_actually_in]") + +/// Unit tests glass style datums are applied to drinking glasses +/datum/unit_test/glass_style_functionality + +/datum/unit_test/glass_style_functionality/Run() + // The tested drink + // Should ideally have multiple drinking glass datums associated (to check the correct one is seletced) + // As well as a value set from every var (name, description, icon, and icon state) + var/tested_reagent_type = /datum/reagent/consumable/ethanol/jack_rose + var/obj/item/reagent_containers/cup/glass/drinkingglass/glass = allocate(/obj/item/reagent_containers/cup/glass/drinkingglass) + var/datum/glass_style/expected_glass_type = GLOB.glass_style_singletons[glass.type][tested_reagent_type] + TEST_ASSERT_NOTNULL(expected_glass_type, "Glass style datum for the tested reagent ([tested_reagent_type]) and container ([glass.type]) was not found.") + + // Add 5 units of the reagent to the glass. This will change the name, desc, icon, and icon state + glass.reagents.add_reagent(tested_reagent_type, 5) + TEST_ASSERT_EQUAL(glass.icon, expected_glass_type.icon, "Glass icon file did not change after gaining a reagent that would change it.") + TEST_ASSERT_EQUAL(glass.icon_state, expected_glass_type.icon_state, "Glass icon state did not change after gaining a reagent that would change it") + TEST_ASSERT_EQUAL(glass.name, expected_glass_type.name, "Glass name did not change after gaining a reagent that would change it") + TEST_ASSERT_EQUAL(glass.desc, expected_glass_type.desc, "Glass desc did not change after gaining a reagent that would change it") + // Clear all units from the glass, This will reset all the previously changed values + glass.reagents.clear_reagents() + TEST_ASSERT_EQUAL(glass.icon, initial(glass.icon), "Glass icon file did not reset after clearing reagents") + TEST_ASSERT_EQUAL(glass.icon_state, initial(glass.icon_state), "Glass icon state did not reset after clearing reagents") + TEST_ASSERT_EQUAL(glass.name, initial(glass.name), "Glass name did not reset after clearing reagents") + TEST_ASSERT_EQUAL(glass.desc, initial(glass.desc), "Glass desc did not reset after clearing reagents") + +/// Unit tests glass subtypes have a valid icon setup +/datum/unit_test/drink_icons + +/datum/unit_test/drink_icons/Run() + for(var/obj/item/reagent_containers/cup/glass/glass_subtypes as anything in subtypesof(/obj/item/reagent_containers/cup)) + var/glass_icon = initial(glass_subtypes.icon) + var/glass_icon_state = initial(glass_subtypes.icon_state) + if(!glass_icon_state) + continue + if(!glass_icon) + TEST_FAIL("[glass_subtypes] had an icon state ([glass_icon_state]) but no icon file.") + continue + if(icon_exists(glass_icon, glass_icon_state)) + continue + TEST_FAIL("[glass_subtypes] had an icon state ([glass_icon_state]) not present in its icon ([glass_icon]).") diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi deleted file mode 100644 index d982f371405..00000000000 Binary files a/icons/obj/drinks.dmi and /dev/null differ diff --git a/icons/obj/drinks/bottles.dmi b/icons/obj/drinks/bottles.dmi new file mode 100644 index 00000000000..fbdf45d3edc Binary files /dev/null and b/icons/obj/drinks/bottles.dmi differ diff --git a/icons/obj/drinks/boxes.dmi b/icons/obj/drinks/boxes.dmi new file mode 100644 index 00000000000..8ed76d9760a Binary files /dev/null and b/icons/obj/drinks/boxes.dmi differ diff --git a/icons/obj/drinks/coffee.dmi b/icons/obj/drinks/coffee.dmi new file mode 100644 index 00000000000..66ca0611a52 Binary files /dev/null and b/icons/obj/drinks/coffee.dmi differ diff --git a/icons/obj/drinks/colo.dmi b/icons/obj/drinks/colo.dmi new file mode 100644 index 00000000000..e25c7272bfe Binary files /dev/null and b/icons/obj/drinks/colo.dmi differ diff --git a/icons/obj/drinks/drink_effects.dmi b/icons/obj/drinks/drink_effects.dmi new file mode 100644 index 00000000000..63bc699c9f5 Binary files /dev/null and b/icons/obj/drinks/drink_effects.dmi differ diff --git a/icons/obj/drinks/drinks.dmi b/icons/obj/drinks/drinks.dmi new file mode 100644 index 00000000000..25e01943fd3 Binary files /dev/null and b/icons/obj/drinks/drinks.dmi differ diff --git a/icons/obj/drinks/mixed_drinks.dmi b/icons/obj/drinks/mixed_drinks.dmi new file mode 100644 index 00000000000..3d3454c35aa Binary files /dev/null and b/icons/obj/drinks/mixed_drinks.dmi differ diff --git a/icons/obj/drinks/shakes.dmi b/icons/obj/drinks/shakes.dmi new file mode 100644 index 00000000000..9ec0ea435de Binary files /dev/null and b/icons/obj/drinks/shakes.dmi differ diff --git a/icons/obj/drinks/shot_glasses.dmi b/icons/obj/drinks/shot_glasses.dmi new file mode 100644 index 00000000000..88a0c5f13e8 Binary files /dev/null and b/icons/obj/drinks/shot_glasses.dmi differ diff --git a/icons/obj/drinks/soda.dmi b/icons/obj/drinks/soda.dmi new file mode 100644 index 00000000000..dedca0ff89e Binary files /dev/null and b/icons/obj/drinks/soda.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 975ebf04eac..24a3031ee37 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -934,6 +934,7 @@ #include "code\datums\components\swarming.dm" #include "code\datums\components\tackle.dm" #include "code\datums\components\tactical.dm" +#include "code\datums\components\takes_reagent_appearance.dm" #include "code\datums\components\tameable.dm" #include "code\datums\components\tattoo.dm" #include "code\datums\components\technointrovert.dm" @@ -4327,6 +4328,7 @@ #include "code\modules\reagents\reagent_containers\syringes.dm" #include "code\modules\reagents\reagent_containers\watering_can.dm" #include "code\modules\reagents\reagent_containers\cups\_cup.dm" +#include "code\modules\reagents\reagent_containers\cups\_glass_datum.dm" #include "code\modules\reagents\reagent_containers\cups\bottle.dm" #include "code\modules\reagents\reagent_containers\cups\drinkingglass.dm" #include "code\modules\reagents\reagent_containers\cups\drinks.dm" diff --git a/tools/UpdatePaths/Scripts/71810_brit_mug.txt b/tools/UpdatePaths/Scripts/71810_brit_mug.txt new file mode 100644 index 00000000000..f526e9a116d --- /dev/null +++ b/tools/UpdatePaths/Scripts/71810_brit_mug.txt @@ -0,0 +1 @@ +/obj/item/reagent_containers/cup/glass/britcup : /obj/item/reagent_containers/cup/glass/mug/britcup{@OLD} \ No newline at end of file