From fadbb378aa96af8ca38cbdca0c0096730f9cbb44 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 12:23:07 -0500 Subject: [PATCH] Adds Bonfire Grills (#1003) --- code/modules/hydroponics/grown/towercap.dm | 61 +++++++++++++++++---- icons/obj/hydroponics/equipment.dmi | Bin 24543 -> 24765 bytes 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 6a1c877b97..dd322e57d3 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -107,20 +107,45 @@ anchored = TRUE buckle_lying = 0 var/burning = 0 + var/grill = FALSE var/fire_stack_strength = 5 /obj/structure/bonfire/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/stack/rods) && !can_buckle) + if(istype(W, /obj/item/stack/rods) && !can_buckle && !grill) var/obj/item/stack/rods/R = W - R.use(1) - can_buckle = 1 - buckle_requires_restraints = 1 - to_chat(user, "You add a rod to [src].") - var/mutable_appearance/rod_underlay = mutable_appearance('icons/obj/hydroponics/equipment.dmi', "bonfire_rod") - rod_underlay.pixel_y = 16 - underlays += rod_underlay + var/choice = input(user, "What would you like to construct?", "Bonfire") as null|anything in list("Stake","Grill") + switch(choice) + if("Stake") + R.use(1) + can_buckle = TRUE + buckle_requires_restraints = TRUE + to_chat(user, "You add a rod to \the [src].") + var/mutable_appearance/rod_underlay = mutable_appearance('icons/obj/hydroponics/equipment.dmi', "bonfire_rod") + rod_underlay.pixel_y = 16 + underlays += rod_underlay + if("Grill") + R.use(1) + grill = TRUE + to_chat(user, "You add a grill to \the [src].") + var/mutable_appearance/grill_overlay = mutable_appearance('icons/obj/hydroponics/equipment.dmi', "bonfire_grill") + overlays += grill_overlay + else + return ..() if(W.is_hot()) StartBurning() + if(grill) + if(user.a_intent != INTENT_HARM && !(W.flags & ABSTRACT)) + if(user.temporarilyRemoveItemFromInventory(W)) + W.forceMove(get_turf(src)) + var/list/click_params = params2list(params) + //Center the icon where the user clicked. + if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) + return + //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) + W.pixel_x = Clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + W.pixel_y = Clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + else + return ..() /obj/structure/bonfire/attack_hand(mob/user) @@ -158,7 +183,7 @@ StartBurning() /obj/structure/bonfire/Crossed(atom/movable/AM) - if(burning) + if(burning & !grill) Burn() /obj/structure/bonfire/proc/Burn() @@ -175,11 +200,27 @@ L.adjust_fire_stacks(fire_stack_strength) L.IgniteMob() +/obj/structure/bonfire/proc/Cook() + var/turf/current_location = get_turf(src) + for(var/A in current_location) + if(A == src) + continue + else if(isliving(A)) //It's still a fire, idiot. + var/mob/living/L = A + L.adjust_fire_stacks(fire_stack_strength) + L.IgniteMob() + else if(istype(A, /obj/item) && prob(20)) + var/obj/item/O = A + O.microwave_act() + /obj/structure/bonfire/process() if(!CheckOxygen()) extinguish() return - Burn() + if(!grill) + Burn() + else + Cook() /obj/structure/bonfire/extinguish() if(burning) diff --git a/icons/obj/hydroponics/equipment.dmi b/icons/obj/hydroponics/equipment.dmi index fc2c0585940931baacab89ca4236f695e3b68ecf..b0de3ddda27664c9c31c78a500f318894d347f01 100644 GIT binary patch delta 4499 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