Donk Pocket Cooling 2: The Reworkening (#20453)

* donk pocket rework

* Snowball had a far more sensible way to do this

* lewcc review

* Sirryan review

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* I fix?

* Revert "I fix?"

This reverts commit 1517d2e21e.

* please work you stupid .dmi

* WORK DAMN YOU

* will this hypothetically work

* re-adds syndie donk kit

* documented these

* just return

* clause guarded

---------

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
This commit is contained in:
Coolrune206
2023-03-20 14:26:06 -05:00
committed by GitHub
co-authored by Ryan
parent cd5e8cdfed
commit 48eb386e5c
7 changed files with 72 additions and 7 deletions
+8
View File
@@ -468,6 +468,14 @@
reqs = list(/obj/item/paper = 5)
category = CAT_MISC
/datum/crafting_recipe/donk_box
name = "Donk Pocket Box"
result = list(/obj/item/storage/box/donkpockets/empty)
time = 10
reqs = list(/obj/item/storage/box,
/obj/item/stack/sheet/plastic,
/obj/item/stack/sheet/metal)
/datum/crafting_recipe/flashlight_eyes
name = "Flashlight Eyes"
result = list(/obj/item/organ/internal/eyes/cybernetic/flashlight)
@@ -114,9 +114,47 @@
filling_color = "#DEDEAB"
list_reagents = list("nutriment" = 4)
tastes = list("meat" = 2, "dough" = 2, "laziness" = 1)
/// Is the donk pocket warm or has it cooled - this affects what chemicals it yields when consumed
var/warm = TRUE
/// This stores the timer for how long the donk pocket takes to cool, seven minutes, that is paused inside of a donk pocket box
var/cool_timer
/// This is used to check the world time when the donk pocket was heated or last removed from a donk pocket box, for restarting the timer
var/heated_at
/// This tracks how much time the donk pocket has already been cooling for when its timer is paused
var/subtracted_time = 0
/obj/item/reagent_containers/food/snacks/warmdonkpocket/Initialize(mapload)
. = ..()
donk_heat()
/obj/item/reagent_containers/food/snacks/warmdonkpocket/proc/donk_heat()
heated_at = world.time
cool_timer = addtimer(CALLBACK(src, PROC_REF(donk_cool)), 7 MINUTES - subtracted_time, TIMER_UNIQUE|TIMER_STOPPABLE)
/obj/item/reagent_containers/food/snacks/warmdonkpocket/proc/donk_cool()
name = "cold Donk-pocket"
desc = "The food of choice for the seasoned traitor. This one is cold."
warm = FALSE
/obj/item/reagent_containers/food/snacks/warmdonkpocket/on_enter_storage(obj/item/storage/S)
. = ..()
if(!cool_timer)
return
if(istype(S, /obj/item/storage/box/donkpockets))
deltimer(cool_timer)
subtracted_time += (world.time - heated_at)
cool_timer = null
/obj/item/reagent_containers/food/snacks/warmdonkpocket/on_exit_storage(obj/item/storage/S)
. = ..()
if(warm)
donk_heat()
/obj/item/reagent_containers/food/snacks/warmdonkpocket/Post_Consume(mob/living/M)
M.reagents.add_reagent("omnizine", 15)
if(warm)
M.reagents.add_reagent("omnizine", 15)
return
M.reagents.add_reagent("weak_omnizine", 5)
/obj/item/reagent_containers/food/snacks/warmdonkpocket_weak
name = "lukewarm Donk-pocket"
@@ -334,9 +334,9 @@
qdel(O)
source.reagents.clear_reagents()
var/reagents_per_serving = temp_reagents.total_volume / efficiency
for(var/i in 1 to efficiency) // Extra servings when upgraded, ingredient reagents split equally
var/portions = recipe.duplicate ? efficiency : 1
var/reagents_per_serving = temp_reagents.total_volume / portions
for(var/i in 1 to portions) // Extra servings when upgraded, ingredient reagents split equally
var/obj/cooked = new recipe.result(loc)
temp_reagents.trans_to(cooked, reagents_per_serving, no_react = TRUE) // Don't react with the abstract holder please
temp_reagents.clear_reagents()
@@ -347,7 +347,7 @@
if(istype(source, /obj/item/mixing_bowl)) // Cooking in mixing bowls returns them dirtier
var/obj/item/mixing_bowl/mb = source
mb.make_dirty(5 * efficiency)
mb.make_dirty(5 * portions)
mb.forceMove(loc)
stop()
@@ -155,11 +155,19 @@
result = /obj/item/reagent_containers/food/snacks/donkpocket
/datum/recipe/microwave/warmdonkpocket
duplicate = FALSE
items = list(
/obj/item/reagent_containers/food/snacks/donkpocket
)
result = /obj/item/reagent_containers/food/snacks/warmdonkpocket
/datum/recipe/microwave/reheatwarmdonkpocket
duplicate = FALSE
items = list(
/obj/item/reagent_containers/food/snacks/warmdonkpocket
)
result = /obj/item/reagent_containers/food/snacks/warmdonkpocket
/datum/recipe/microwave/eggplantparm
items = list(
/obj/item/reagent_containers/food/snacks/cheesewedge,