@@ -141,7 +141,8 @@ var/global/num_vending_terminals = 1
141
141
/ obj / item/ weapon/ circuitboard/ vendomat,\
142
142
/ obj / item/ weapon/ stock_parts/ matter_bin,\
143
143
/ 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\
145
146
)
146
147
147
148
RefreshParts ()
@@ -155,8 +156,6 @@ var/global/num_vending_terminals = 1
155
156
156
157
power_change ()
157
158
158
- coinbox = new (src )
159
-
160
159
for (var /langname in slogan_languages)
161
160
if (istext(langname))
162
161
slogan_languages -= langname
@@ -190,6 +189,10 @@ var/global/num_vending_terminals = 1
190
189
if (istype(SP , / obj / item/ weapon/ stock_parts/ manipulator))
191
190
manipcount += SP . rating
192
191
shoot_chance = manipcount * 3
192
+
193
+ coinbox = locate () in component_parts
194
+ if (! coinbox)
195
+ coinbox = new (src )
193
196
194
197
/ obj / machinery/ vending/ Destroy()
195
198
if (wires)
@@ -201,15 +204,18 @@ var/global/num_vending_terminals = 1
201
204
/ obj / machinery/ vending/ splashable()
202
205
return FALSE
203
206
207
+ / obj / machinery/ vending/ spillContents(destroy_chance)
208
+ . = .. ()
209
+ dump_vendpack_and_coinbox ()
210
+
204
211
/ obj / machinery/ vending/ proc / dump_vendpack_and_coinbox()
205
212
if (product_records. len && cardboard) // Only spit out if we have slotted cardboard
213
+ var /obj /structure/vendomatpack/custom/newpack = new (src . loc)
206
214
if (is_custom_machine)
207
- var /obj /structure/vendomatpack/custom/newpack = new (src . loc)
208
215
for (var /obj /item/I in custom_stock)
209
216
I. forceMove(newpack)
210
217
custom_stock. Remove(I)
211
218
else
212
- var /obj /structure/vendomatpack/partial/newpack = new (src . loc)
213
219
newpack. stock = products
214
220
newpack. secretstock = contraband
215
221
newpack. preciousstock = premium
@@ -220,7 +226,8 @@ var/global/num_vending_terminals = 1
220
226
newpack. targetvendomat = src . type
221
227
222
228
if (coinbox)
223
- coinbox. forceMove(get_turf(src ))
229
+ coinbox. forceMove(src . loc)
230
+ coinbox = null
224
231
225
232
/ obj / machinery/ vending/ examine(var /mob /user )
226
233
.. ()
@@ -286,7 +293,6 @@ var/global/num_vending_terminals = 1
286
293
if (user. machine== src )
287
294
newmachine. attack_hand(user)
288
295
component_parts = 0
289
- qdel (coinbox)
290
296
qdel (src )
291
297
else
292
298
is_being_filled = FALSE
0 commit comments