Skip to content

Commit d9ee71e

Browse files
Vendor coinbox and vendpack qol (#36668)
* Vendor coinbox and vendpack qol * removes this error from happening * unatomic, will do in other pr * hotfix for this * makes coinbox buildable, this version has no access requirements
1 parent a10c9fe commit d9ee71e

File tree

4 files changed

+21
-10
lines changed

4 files changed

+21
-10
lines changed

code/game/machinery/constructable_frame.dm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1170,7 +1170,8 @@ to destroy them and players will be able to make replacements.
11701170
req_components = list(
11711171
/obj/item/weapon/stock_parts/matter_bin = 1,
11721172
/obj/item/weapon/stock_parts/manipulator = 1,
1173-
/obj/item/weapon/stock_parts/scanning_module = 1)
1173+
/obj/item/weapon/stock_parts/scanning_module = 1,
1174+
/obj/item/weapon/storage/lockbox/coinbox = 1)
11741175

11751176
/obj/item/weapon/circuitboard/pdapainter
11761177
name = "Circuit Board (PDA Painter)"

code/game/machinery/vending.dm

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ var/global/num_vending_terminals = 1
141141
/obj/item/weapon/circuitboard/vendomat,\
142142
/obj/item/weapon/stock_parts/matter_bin,\
143143
/obj/item/weapon/stock_parts/manipulator,\
144-
/obj/item/weapon/stock_parts/scanning_module\
144+
/obj/item/weapon/stock_parts/scanning_module,\
145+
/obj/item/weapon/storage/lockbox/coinbox\
145146
)
146147

147148
RefreshParts()
@@ -155,8 +156,6 @@ var/global/num_vending_terminals = 1
155156

156157
power_change()
157158

158-
coinbox = new(src)
159-
160159
for(var/langname in slogan_languages)
161160
if(istext(langname))
162161
slogan_languages -= langname
@@ -190,6 +189,10 @@ var/global/num_vending_terminals = 1
190189
if(istype(SP, /obj/item/weapon/stock_parts/manipulator))
191190
manipcount += SP.rating
192191
shoot_chance = manipcount * 3
192+
193+
coinbox = locate() in component_parts
194+
if(!coinbox)
195+
coinbox = new(src)
193196

194197
/obj/machinery/vending/Destroy()
195198
if(wires)
@@ -201,15 +204,18 @@ var/global/num_vending_terminals = 1
201204
/obj/machinery/vending/splashable()
202205
return FALSE
203206

207+
/obj/machinery/vending/spillContents(destroy_chance)
208+
. = ..()
209+
dump_vendpack_and_coinbox()
210+
204211
/obj/machinery/vending/proc/dump_vendpack_and_coinbox()
205212
if(product_records.len && cardboard) //Only spit out if we have slotted cardboard
213+
var/obj/structure/vendomatpack/custom/newpack = new(src.loc)
206214
if(is_custom_machine)
207-
var/obj/structure/vendomatpack/custom/newpack = new(src.loc)
208215
for(var/obj/item/I in custom_stock)
209216
I.forceMove(newpack)
210217
custom_stock.Remove(I)
211218
else
212-
var/obj/structure/vendomatpack/partial/newpack = new(src.loc)
213219
newpack.stock = products
214220
newpack.secretstock = contraband
215221
newpack.preciousstock = premium
@@ -220,7 +226,8 @@ var/global/num_vending_terminals = 1
220226
newpack.targetvendomat = src.type
221227

222228
if(coinbox)
223-
coinbox.forceMove(get_turf(src))
229+
coinbox.forceMove(src.loc)
230+
coinbox = null
224231

225232
/obj/machinery/vending/examine(var/mob/user)
226233
..()
@@ -286,7 +293,6 @@ var/global/num_vending_terminals = 1
286293
if(user.machine==src)
287294
newmachine.attack_hand(user)
288295
component_parts = 0
289-
qdel(coinbox)
290296
qdel(src)
291297
else
292298
is_being_filled = FALSE

code/game/objects/items/stacks/stack_recipes.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@ var/list/datum/stack_recipe/metal_recipes = list (
411411
new/datum/stack_recipe("cannonball", /obj/item/cannonball/iron, 20, time = 4 SECONDS, one_per_turf = 0, on_floor = 1),
412412
new/datum/stack_recipe("frying pan", /obj/item/weapon/reagent_containers/pan, 10, time = 4 SECONDS, one_per_turf = 0, on_floor = 0),
413413
new/datum/stack_recipe("lunch box", /obj/item/weapon/storage/lunchbox/metal, 1, time = 2 SECONDS, one_per_turf = 0, on_floor = 0),
414+
new/datum/stack_recipe("coinbox", /obj/item/weapon/storage/lockbox/coinbox/allaccess, 1, time = 2 SECONDS, one_per_turf = 0, on_floor = 0),
414415
null,
415416
blacksmithing_recipes,
416417
null,

code/game/objects/items/weapons/storage/lockbox.dm

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,12 +275,15 @@
275275
throwforce = 10
276276
storage_slots = 20
277277
req_one_access = list(access_qm)
278-
locked = 1
279-
broken = 0
278+
starting_materials = list(MAT_IRON = CC_PER_SHEET_METAL)
279+
w_type = RECYK_ELECTRONIC
280280
icon_locked = "coinbox+l"
281281
icon_closed = "coinbox"
282282
icon_broken = "coinbox+b"
283283

284+
/obj/item/weapon/storage/lockbox/coinbox/allaccess
285+
req_one_access = null
286+
284287
/obj/item/weapon/storage/lockbox/lawgiver
285288
name = "lockbox (lawgiver)"
286289
req_one_access = list(access_armory)

0 commit comments

Comments
 (0)