Refactor round start volume of welding packs and fryers (#23027)

# Summary

This PR adjust welding packs and fryers. Welding packs now spawn empty
[on the Horizon] to encourage the persistent welding tanks and fryers
have their optimal oil level adjusted to balance out oil refills.

**Depends on https://github.com/Aurorastation/Aurora.3/pull/23005**.

## Changes

- Added new sprite for empty welding packs.
(Regular vs new low variant)
<img width="835" height="108" alt="image"
src="https://github.com/user-attachments/assets/a882bff1-901b-4b0e-8d1d-750ed4e1e83c"
/>

- Welding packs now spawn empty (only on the Horizon and during map
load).
- Deep fryer no longer contain 9 full tanks of cooking oil. They contain
100u now and make refills using the [persistent cooking oil
tanks](https://github.com/Aurorastation/Aurora.3/pull/23005) much more
reasonable. Added a wrench to the kitchen for tank handling.
This commit is contained in:
FabianK3
2026-08-10 00:36:44 +00:00
committed by GitHub
parent 9985c5c286
commit 77019460cc
6 changed files with 46 additions and 1 deletions
@@ -15,6 +15,16 @@
drop_sound = 'sound/items/drop/backpack.ogg'
pickup_sound = 'sound/items/pickup/backpack.ogg'
/obj/item/reagent_containers/weldpack/Initialize(mapload)
var/turf/T = get_turf(src)
if(mapload && T && is_station_level(T.z))
// If the weldpack is spawned on a station level during map load, don't give it any fuel.
// This is in support of persistent welding fuel tanks and only for the persistent levels.
reagents_to_add = null
create_reagents(volume) // Ensure reagents datum is created, even if empty
update_volume()
. = ..() // After reagents_to_add is updated
/obj/item/reagent_containers/weldpack/feedback_hints(mob/user, distance, is_adjacent)
. += ..()
if(ishuman(loc) && user != loc) // what if we want to sneak some reagents out of somewhere?
@@ -27,6 +37,20 @@
else
. += SPAN_WARNING("\The [src] is empty!")
/obj/item/reagent_containers/weldpack/proc/update_volume()
var/fill_level = reagents.total_volume / volume
if(fill_level <= 0.1)
icon_state = "welderpack_low"
item_state = "welderpack_low"
else
icon_state = "welderpack"
item_state = "welderpack"
update_icon()
update_worn_icon()
/obj/item/reagent_containers/weldpack/on_reagent_change()
update_volume()
/obj/item/reagent_containers/weldpack/attackby(obj/item/attacking_item, mob/user)
if(attacking_item.tool_behaviour == TOOL_WRENCH)
if(atom_flags & ATOM_FLAG_OPEN_CONTAINER)
@@ -60,5 +84,6 @@
reagents.trans_type_to(attacking_item, /singleton/reagent/fuel, min(fuel_volume, T.reagents.maximum_volume - tool_fuel_volume))
to_chat(user, SPAN_NOTICE("Welder refilled!"))
playsound(loc, 'sound/effects/refill.ogg', 50, 1, -6)
update_volume()
return
return ..()