Porting Goofconomy & co.

This commit is contained in:
Ghommie
2020-04-17 07:48:11 +02:00
parent 19328b8710
commit 4c6f1b622b
190 changed files with 2213 additions and 353 deletions
+5 -67
View File
@@ -26,77 +26,15 @@
/obj/item/storage/box/donkpockets = 2)
refill_canister = /obj/item/vending_refill/snack
var/chef_compartment_access = "28" //ACCESS_KITCHEN
canload_access_list = list(ACCESS_KITCHEN)
default_price = 60
extra_price = 160
payment_department = ACCOUNT_SRV
input_display_header = "Chef's Food Selection"
/obj/item/vending_refill/snack
machine_name = "Getmore Chocolate Corp"
/obj/machinery/vending/snack/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/reagent_containers/food/snacks))
if(!compartment_access_check(user))
return
var/obj/item/reagent_containers/food/snacks/S = W
if(!S.junkiness)
if(!iscompartmentfull(user))
if(!user.transferItemToLoc(W, src))
return
food_load(W)
to_chat(user, "<span class='notice'>You insert [W] into [src]'s chef compartment.</span>")
else
to_chat(user, "<span class='notice'>[src]'s chef compartment does not accept junk food.</span>")
else if(istype(W, /obj/item/storage/bag/tray))
if(!compartment_access_check(user))
return
var/obj/item/storage/T = W
var/loaded = 0
var/denied_items = 0
for(var/obj/item/reagent_containers/food/snacks/S in T.contents)
if(iscompartmentfull(user))
break
if(!S.junkiness)
SEND_SIGNAL(T, COMSIG_TRY_STORAGE_TAKE, S, src, TRUE)
food_load(S)
loaded++
else
denied_items++
if(denied_items)
to_chat(user, "<span class='notice'>[src] refuses some items.</span>")
if(loaded)
to_chat(user, "<span class='notice'>You insert [loaded] dishes into [src]'s chef compartment.</span>")
updateUsrDialog()
return
else
return ..()
/obj/machinery/vending/snack/Destroy()
for(var/obj/item/reagent_containers/food/snacks/S in contents)
S.forceMove(get_turf(src))
return ..()
/obj/machinery/vending/snack/proc/compartment_access_check(user)
req_access_txt = chef_compartment_access
if(!allowed(user) && !(obj_flags & EMAGGED) && scan_id)
to_chat(user, "<span class='warning'>[src]'s chef compartment blinks red: Access denied.</span>")
req_access_txt = "0"
return 0
req_access_txt = "0"
return 1
/obj/machinery/vending/snack/proc/iscompartmentfull(mob/user)
if(contents.len >= 30) // no more than 30 dishes can fit inside
to_chat(user, "<span class='warning'>[src]'s chef compartment is full.</span>")
return 1
return 0
/obj/machinery/vending/snack/proc/food_load(obj/item/reagent_containers/food/snacks/S)
if(dish_quants[S.name])
dish_quants[S.name]++
else
dish_quants[S.name] = 1
sortList(dish_quants)
/obj/machinery/vending/snack/random
name = "\improper Random Snackies"
icon_state = "random_snack"