Skip to content
This repository has been archived by the owner on Apr 16, 2021. It is now read-only.

Water cooler upgrades #209

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 84 additions & 7 deletions code/datums/chemistry/tools/dispensers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -171,20 +171,96 @@
reagents.add_reagent("water",100000)

/obj/reagent_dispensers/watertank/fountain
name = "water fountain"
desc = "It's called a fountain, but it's not very decorative or interesting. You can get a drink from it, though."
icon_state = "water_fountain1"
name = "water cooler"
desc = "A popular gathering place for NanoTrasen's finest bureaucrats and pencil-pushers."
icon = 'icons/obj/foodNdrink/watercooler.dmi'
icon_state = "coolerbase"
anchored = 1
var/cup_amount = 12
mats = 8

get_desc(dist, mob/user) // this shit refused to show the parent get_desc() info even if I added a ..() so I'M JUST COPYING THE CODE NOW LIKE SOME KIND OF GIGANTIC ASSHOLE
var/has_tank = 1

var/cup_max = 12
var/cup_amount

var/image/cup_sprite = null
var/image/fluid_sprite = null
var/image/tank_sprite = null

New()
..()

src.cup_sprite = new /image('icons/obj/foodNdrink/watercooler.dmi', "coolercup")
src.fluid_sprite = new /image('icons/obj/foodNdrink/watercooler.dmi',"fluid-coolertank")
src.tank_sprite = new /image('icons/obj/foodNdrink/watercooler.dmi',"coolertank")

src.cup_amount = cup_max

src.update_icon()

//on_reagent_change()
// src.update_icon()

proc/update_icon()
src.UpdateOverlays(null, "fluid_overlay")
src.UpdateOverlays(null, "tank_overlay")
src.UpdateOverlays(null, "cup_overlay")
if (src.has_tank)
if (src.reagents.total_volume)
var/datum/color/average = src.reagents.get_average_color()
src.fluid_sprite.color = average.to_rgba()
src.UpdateOverlays(fluid_sprite, "fluid_overlay")
src.UpdateOverlays(src.tank_sprite, "tank_overlay")
if (src.cup_amount > 0)
src.UpdateOverlays(src.cup_sprite, "cup_overlay")

get_desc(dist, mob/user)
. += "There's [cup_amount] paper cup[s_es(src.cup_amount)] in [src]'s cup dispenser."
if (dist <= 2 && reagents)
. += "<br><span style=\"color:blue\">[reagents.get_description(user,RC_SCALE)]</span>"

attackby(obj/W as obj, mob/user as mob)
if (src.has_tank)
if (istype(W, /obj/item/wrench))
user.show_text("You disconnect the bottle from [src].", "blue")
var/obj/item/reagent_containers/food/drinks/P = new /obj/item/reagent_containers/food/drinks/coolerbottle(src.loc)
src.reagents.trans_to(P, reagents.total_volume)
src.reagents.clear_reagents()
src.has_tank = 0
src.update_icon()
return
else if (istype(W, /obj/item/reagent_containers/food/drinks/coolerbottle))
user.show_text("You connect the bottle to [src].", "blue")
W.reagents.trans_to(src, W.reagents.total_volume)
user.u_equip(W)
qdel(W)
src.has_tank = 1
src.update_icon()
return

if (istype(W, /obj/item/screwdriver))
if (src.anchored)
playsound(src.loc, "sound/items/Screwdriver.ogg", 50, 1)
if (do_after(user, 30))
user.show_text("You unscrew [src] from the floor.", "blue")
src.anchored = 0
return
else
var/turf/T = get_turf(src)
if (istype(T, /turf/space))
user.show_text("What exactly are you gunna secure [src] to?", "red")
return
else
playsound(src.loc, "sound/items/Screwdriver.ogg", 50, 1)
if (do_after(user, 30))
user.show_text("You secure [src] to [T].", "blue")
src.anchored = 1
return
..()

attack_hand(mob/user as mob)
if (src.cup_amount <= 0)
user.show_text("\The [src] doesn't have any cups left.", "red")
user.show_text("\The [src] doesn't have any cups left, damnit!", "red")
return
else
src.visible_message("<b>[user]</b> grabs a paper cup from [src].",\
Expand All @@ -193,7 +269,8 @@
var/obj/item/reagent_containers/food/drinks/paper_cup/P = new /obj/item/reagent_containers/food/drinks/paper_cup(src)
user.put_in_hand_or_drop(P)
if (src.cup_amount <= 0)
src.icon_state = "water_fountain0"
user.show_text("That was the last cup!", "red")
src.update_icon()

/obj/reagent_dispensers/fueltank
name = "fueltank"
Expand Down
33 changes: 33 additions & 0 deletions code/datums/chemistry/tools/watercoolerbottle.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

/* ==================================================== */
/* --------------- Water Cooler Bottle ---------------- */
/* ==================================================== */

/obj/item/reagent_containers/food/drinks/coolerbottle
name = "water cooler bottle"
desc = "A water cooler bottle. Can hold up to 1000 units."
icon = 'icons/obj/foodNdrink/watercooler.dmi'
inhand_image_icon = 'icons/mob/inhand/hand_medical.dmi'
icon_state = "itemtank"
item_state = "flask"
initial_volume = 1000
w_class = 4.0

var/image/fluid_image

New()
..()
fluid_image = image(src.icon, "fluid-[src.icon_state]")

on_reagent_change()
src.update_icon()

proc/update_icon()
src.underlays = null
if (reagents.total_volume)
//icon_state = "[src.icon_style]1"
var/datum/color/average = reagents.get_average_color()
fluid_image.color = average.to_rgba()
src.underlays += src.fluid_image
// else
// icon_state = null // src.icon_style
Binary file added icons/obj/foodNdrink/watercooler.dmi
Binary file not shown.
Binary file added icons/obj/reagentfountain.dmi
Binary file not shown.