diff --git a/code/game/machinery/casino_prize_dispenser_ch.dm b/code/game/machinery/casino_prize_dispenser_ch.dm index 94ffe23f35..3b740fe2b7 100644 --- a/code/game/machinery/casino_prize_dispenser_ch.dm +++ b/code/game/machinery/casino_prize_dispenser_ch.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD:code/game/machinery/casino_prize_dispenser_ch.dm // Use this define to register a prize! // * n - The proper name of the purchasable // * o - The object type path of the purchasable to spawn @@ -355,3 +356,614 @@ /obj/machinery/casino_prize_dispenser/process() //Might not need this, but just to be safe for now if(stat & (BROKEN|NOPOWER)) return +||||||| parent of 737c473e4b... [MIRROR] :siffet: (#11584):code/modules/casino/casino_prize_vendor.dm + +//Original Casino Code created by Shadowfire117#1269 - Ported from CHOMPstation +//Modified by GhostActual#2055 for use with VOREstation + +// Use this define to register a prize! +// * n - The proper name of the purchasable +// * o - The object type path of the purchasable to spawn +// * r - The amount to dispense +// * p - The price of the purchasable in chips +// * l - The restriction of the item +#define CASINO_PRIZE(n, o, r, p, l) n = new /datum/data/casino_prize(n, o, r, p, l) + +/datum/data/casino_prize + var/equipment_path = null + var/equipment_amt = 1 + var/cost = 0 + var/category = null + var/restriction = null + +/datum/data/casino_prize/New(name, path, amt, cost, restriction) + src.name = name + src.equipment_path = path + src.equipment_amt = amt + src.cost = cost + src.category = category + src.restriction = restriction + +/obj/machinery/casino_prize_dispenser + name = "Casino Prize Exchanger" + desc = "Exchange your chips to obtain wonderful prizes! Hoepfully you'll get to keep some of them for a while." + icon = 'icons/obj/casino.dmi' + icon_state ="casino_prize_dispenser" + var/icon_vend ="casino_prize_dispenser-vend" + anchored = 1 + density = 1 + opacity = 0 + var/list/item_list + + clicksound = "button" + var/vending_sound = "machines/vending/vending_drop.ogg" + + // Power + use_power = USE_POWER_IDLE + idle_power_usage = 10 + var/vend_power_usage = 150 //actuators and stuff + + // Vending-related + var/datum/data/casino_prize/currently_vending = null // What we're requesting payment for right now + var/list/log = list() //Log only SS13 staff is allowed to look at, CKEYS are listed here for record keeping of prizes and players for events! + + var/category_weapons = 1 //For listing categories, if false then prizes of this categories cant be obtained nor bought for post-shift enjoyment + var/category_gear = 1 //If 1 prizes will be only logged + var/category_clothing = 1 //If 2 prizes will both be logged and spawned + var/category_misc = 1 + var/category_drinks = 1 + var/category_implants = 1 + var/category_event = 1 //For special events, holidays, etc + +/obj/machinery/casino_prize_dispenser/Initialize() + . = ..() + power_change() + + item_list = list() + item_list["Weapons"] = list( + CASINO_PRIZE("Scepter", /obj/item/weapon/scepter, 1, 500, "weapons"), + CASINO_PRIZE("Chain of Command", /obj/item/weapon/melee/chainofcommand, 1, 250, "weapons"), + CASINO_PRIZE("Size Gun", /obj/item/weapon/gun/energy/sizegun, 1, 100, "weapons"), + CASINO_PRIZE("Advanced Particle Rifle", /obj/item/weapon/gun/energy/particle/advanced, 1, 500, "weapons"), + CASINO_PRIZE("Temperature Gun", /obj/item/weapon/gun/energy/temperature, 1, 250, "weapons"), + CASINO_PRIZE("Alien Pistol", /obj/item/weapon/gun/energy/alien, 1, 1000, "weapons"), + CASINO_PRIZE("Floral Gun", /obj/item/weapon/gun/energy/floragun, 1, 250, "weapons"), + CASINO_PRIZE("Net Gun", /obj/item/weapon/gun/energy/netgun, 1, 500, "weapons"), + ) + item_list["Gear"] = list( + CASINO_PRIZE("Experimental Welder", /obj/item/weapon/weldingtool/experimental, 1, 500, "gear"), + CASINO_PRIZE("Chameleon Tie", /obj/item/clothing/accessory/chameleon, 1, 250, "gear"), + CASINO_PRIZE("Chemsprayer", /obj/item/weapon/reagent_containers/spray/chemsprayer, 1, 250, "gear"), + CASINO_PRIZE("Bluespace Beaker", /obj/item/weapon/reagent_containers/glass/beaker/bluespace, 1, 200, "gear"), + CASINO_PRIZE("Cryo Beaker", /obj/item/weapon/reagent_containers/glass/beaker/noreact, 1, 200, "gear"), + ) + item_list["Clothing"] = list( + CASINO_PRIZE("Shark mask", /obj/item/clothing/mask/shark, 1, 50, "clothing"), + CASINO_PRIZE("Pig mask", /obj/item/clothing/mask/pig, 1, 50, "clothing"), + CASINO_PRIZE("Luchador mask", /obj/item/clothing/mask/luchador, 1, 50, "clothing"), + CASINO_PRIZE("Horse mask", /obj/item/clothing/mask/horsehead, 1, 50, "clothing"), + CASINO_PRIZE("Goblin mask", /obj/item/clothing/mask/goblin, 1, 50, "clothing"), + CASINO_PRIZE("Fake moustache", /obj/item/clothing/mask/fakemoustache, 1, 50, "clothing"), + CASINO_PRIZE("Dolphin mask", /obj/item/clothing/mask/dolphin, 1, 50, "clothing"), + CASINO_PRIZE("Demon mask", /obj/item/clothing/mask/demon, 1, 50, "clothing"), + CASINO_PRIZE("Chameleon mask", /obj/item/clothing/under/chameleon, 1, 250, "clothing"), + CASINO_PRIZE("Ian costume", /obj/item/clothing/suit/storage/hooded/ian_costume, 1, 50, "clothing"), + CASINO_PRIZE("Carp costume", /obj/item/clothing/suit/storage/hooded/carp_costume, 1, 50, "clothing"), + ) + item_list["Miscellaneous"] = list( + CASINO_PRIZE("Toy sword", /obj/item/toy/sword, 1, 50, "misc"), + CASINO_PRIZE("Waterflower", /obj/item/weapon/reagent_containers/spray/waterflower, 1, 50, "misc"), + CASINO_PRIZE("Horse stick", /obj/item/toy/stickhorse, 1, 50, "misc"), + CASINO_PRIZE("Katana", /obj/item/toy/katana, 1, 50, "misc"), + CASINO_PRIZE("Conch", /obj/item/toy/eight_ball/conch, 1, 50, "misc"), + CASINO_PRIZE("Eight ball", /obj/item/toy/eight_ball, 1, 50, "misc"), + CASINO_PRIZE("Foam sword", /obj/item/weapon/material/sword/foam, 1, 50, "misc"), + CASINO_PRIZE("Whistle", /obj/item/toy/bosunwhistle, 1, 50, "misc"), + CASINO_PRIZE("Golden cup", /obj/item/weapon/reagent_containers/food/drinks/golden_cup, 1, 50, "misc"), + CASINO_PRIZE("Quality cigars", /obj/item/weapon/storage/fancy/cigar/havana, 1, 50, "misc"), + CASINO_PRIZE("Casino wallet (kept after event)", /obj/item/weapon/storage/wallet/casino, 1, 50, "misc"), + CASINO_PRIZE("Casino cards", /obj/item/weapon/deck/cards/casino, 1, 50, "misc"), + ) + item_list["Drinks"] = list( + CASINO_PRIZE("Redeemer's brew", /obj/item/weapon/reagent_containers/food/drinks/bottle/redeemersbrew, 1, 50, "drinks"), + CASINO_PRIZE("Poison wine", /obj/item/weapon/reagent_containers/food/drinks/bottle/pwine, 1, 50, "drinks"), + CASINO_PRIZE("Patron", /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, 1, 50, "drinks"), + CASINO_PRIZE("Holy water", /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, 1, 50, "drinks"), + CASINO_PRIZE("Goldschlager", /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, 1, 50, "drinks"), + CASINO_PRIZE("Champagne", /obj/item/weapon/reagent_containers/food/drinks/bottle/champagne, 1, 50, "drinks"), + CASINO_PRIZE("Bottle of Nothing", /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing, 1, 50, "drinks"), + CASINO_PRIZE("Whiskey bliss", /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey, 1, 50, "drinks"), + ) + + item_list["Implants"] = list( + CASINO_PRIZE("Implanter (Remember to get one unless you want to borrow from station!)", /obj/item/weapon/implanter, 1, 100, "implants"), + CASINO_PRIZE("Implant: Tazer", /obj/item/weapon/implantcase/taser, 1, 1000, "implants"), + CASINO_PRIZE("Implant: Medkit", /obj/item/weapon/implantcase/medkit, 1, 500, "implants"), + CASINO_PRIZE("Implant: Shades", /obj/item/weapon/implantcase/shades, 1, 750, "implants"), + CASINO_PRIZE("Implant: Sprinter", /obj/item/weapon/implantcase/sprinter, 1, 1500, "implants"), + CASINO_PRIZE("Implant: Toolkit", /obj/item/weapon/implantcase/toolkit, 1, 500, "implants"), + CASINO_PRIZE("Implant: Language", /obj/item/weapon/implantcase/vrlanguage, 1, 1000, "implants"), + CASINO_PRIZE("Implant: Analyzer", /obj/item/weapon/implantcase/analyzer, 1, 500, "implants"), + CASINO_PRIZE("Implant: Size control", /obj/item/weapon/implant/sizecontrol , 1, 500, "implants"), + ) + + item_list["Event"] = list( + ) + +/obj/machinery/casino_prize_dispenser/power_change() + ..() + if(stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + else + if(!(stat & NOPOWER)) + icon_state = initial(icon_state) + else + spawn(rand(0, 15)) + icon_state = "[initial(icon_state)]-off" + +/obj/machinery/casino_prize_dispenser/attack_hand(mob/user as mob) + if(stat & (BROKEN|NOPOWER)) + return + tgui_interact(user) + +/obj/machinery/casino_prize_dispenser/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(currently_vending) + if(istype(W, /obj/item/weapon/spacecasinocash)) + to_chat(usr, "Please select prize on display with sufficient amount of chips.") + else + SStgui.update_uis(src) + return // don't smack that machine with your 2 chips + + if(istype(W, /obj/item/weapon/spacecasinocash)) + attack_hand(user) + return + ..() + +/obj/machinery/casino_prize_dispenser/proc/pay_with_chips(var/obj/item/weapon/spacecasinocash/cashmoney, mob/user, var/price) + //"cashmoney_:[cashmoney] user:[user] currently_vending:[currently_vending]" + if(price > cashmoney.worth) + to_chat(usr, "\icon[cashmoney] That is not enough chips.") + return 0 + + if(istype(cashmoney, /obj/item/weapon/spacecasinocash)) + visible_message("\The [usr] inserts some chips into \the [src].") + cashmoney.worth -= price + + if(cashmoney.worth <= 0) + usr.drop_from_inventory(cashmoney) + qdel(cashmoney) + else + cashmoney.update_icon() + return 1 + +/obj/machinery/casino_prize_dispenser/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/vending), + ) + +/obj/machinery/casino_prize_dispenser/tgui_data(mob/user) + var/list/data[0] + + data["items"] = list() + for(var/cat in item_list) + var/list/cat_items = list() + for(var/prize_name in item_list[cat]) + var/datum/data/casino_prize/prize = item_list[cat][prize_name] + cat_items[prize_name] = list("name" = prize_name, "price" = prize.cost, "restriction" = prize.restriction) + data["items"][cat] = cat_items + return data + +/obj/machinery/casino_prize_dispenser/tgui_interact(mob/user, datum/tgui/ui = null) + // Open the window + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "CasinoPrizeDispenser", name) + ui.open() + +/obj/machinery/casino_prize_dispenser/tgui_act(action, params) + if(stat & (BROKEN|NOPOWER)) + return + if(usr.stat || usr.restrained()) + return + if(..()) + return TRUE + . = TRUE + switch(action) + if("purchase") + var/paid = FALSE + var/category = params["cat"] + var/restriction_category = params["restriction"] + var/restriction_check = 0 + var/item_given = FALSE + var/name = params["name"] + var/price = params["price"] + var/datum/data/casino_prize/bi = item_list[category][name] + switch(restriction_category) + if("weapons") + restriction_check = category_weapons + if("gear") + restriction_check = category_gear + if("clothing") + restriction_check = category_clothing + if("misc") + restriction_check = category_misc + if("drinks") + restriction_check = category_drinks + if("implants") + restriction_check = category_implants + if("event") + restriction_check = category_event + else + to_chat(usr, "Prize checkout error has occured, purchase cancelled.") + return FALSE + + if(restriction_check < 1) + to_chat(usr, "[name] is restricted, this prize can't be bought.") + return FALSE + if(restriction_check > 1) + item_given = TRUE + + if(price <= 0 && item_given == TRUE) + vend(bi, usr) + return TRUE + + currently_vending = bi + + if(istype(usr.get_active_hand(), /obj/item/weapon/spacecasinocash)) + var/obj/item/weapon/spacecasinocash/cash = usr.get_active_hand() + paid = pay_with_chips(cash, usr, price) + else + to_chat(usr, "Payment failure: Improper payment method, please provide chips.") + return TRUE // we set this because they shouldn't even be able to get this far, and we want the UI to update. + if(paid) + if(item_given == TRUE) + vend(bi, usr) + + speak("Thank you for your purchase, your [bi] has been logged.") + do_logging(currently_vending, usr, bi) + . = TRUE + else + to_chat(usr, "Payment failure: unable to process payment.") + +/obj/machinery/casino_prize_dispenser/proc/vend(datum/data/casino_prize/bi, mob/user) + SStgui.update_uis(src) + + if(ispath(bi.equipment_path, /obj/item/stack)) + new bi.equipment_path(loc, bi.equipment_amt) + playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1) + return TRUE + + for(var/i in 1 to bi.equipment_amt) + new bi.equipment_path(loc) + playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1) + + currently_vending = null + use_power(vend_power_usage) //actuators and stuff + flick("[icon_state]-vend",src) + + +/obj/machinery/casino_prize_dispenser/proc/do_logging(item, mob/user, datum/data/casino_prize/bi) + var/prize_log = "{ckey:[user.ckey]character_name:[user.name]item_path: [bi.equipment_path]}" + log[++log.len] = prize_log + //Currently doesnt have an ingame way to show. Can only be viewed through View-Variables, to ensure theres no chance of players ckeys exposed - Jack + +/obj/machinery/casino_prize_dispenser/proc/speak(var/message) + if(stat & NOPOWER) + return + + if(!message) + return + + for(var/mob/O in hearers(src, null)) + O.show_message("\The [src] beeps, \"[message]\"",2) + return + +/obj/machinery/casino_prize_dispenser/process() //Might not need this, but just to be safe for now + if(stat & (BROKEN|NOPOWER)) + return +======= + +//Original Casino Code created by Shadowfire117#1269 - Ported from CHOMPstation +//Modified by GhostActual#2055 for use with VOREstation + +// Use this define to register a prize! +// * n - The proper name of the purchasable +// * o - The object type path of the purchasable to spawn +// * r - The amount to dispense +// * p - The price of the purchasable in chips +// * l - The restriction of the item +#define CASINO_PRIZE(n, o, r, p, l) n = new /datum/data/casino_prize(n, o, r, p, l) + +/datum/data/casino_prize + var/equipment_path = null + var/equipment_amt = 1 + var/cost = 0 + var/category = null + var/restriction = null + +/datum/data/casino_prize/New(name, path, amt, cost, restriction) + src.name = name + src.equipment_path = path + src.equipment_amt = amt + src.cost = cost + src.category = category + src.restriction = restriction + +/obj/machinery/casino_prize_dispenser + name = "Casino Prize Exchanger" + desc = "Exchange your chips to obtain wonderful prizes! Hoepfully you'll get to keep some of them for a while." + icon = 'icons/obj/casino.dmi' + icon_state ="casino_prize_dispenser" + var/icon_vend ="casino_prize_dispenser-vend" + anchored = 1 + density = 1 + opacity = 0 + var/list/item_list + + clicksound = "button" + var/vending_sound = "machines/vending/vending_drop.ogg" + + // Power + use_power = USE_POWER_IDLE + idle_power_usage = 10 + var/vend_power_usage = 150 //actuators and stuff + + // Vending-related + var/datum/data/casino_prize/currently_vending = null // What we're requesting payment for right now + var/list/log = list() //Log only SS13 staff is allowed to look at, CKEYS are listed here for record keeping of prizes and players for events! + + var/category_weapons = 1 //For listing categories, if false then prizes of this categories cant be obtained nor bought for post-shift enjoyment + var/category_gear = 1 //If 1 prizes will be only logged + var/category_clothing = 1 //If 2 prizes will both be logged and spawned + var/category_misc = 1 + var/category_drinks = 1 + var/category_implants = 1 + var/category_event = 1 //For special events, holidays, etc + +/obj/machinery/casino_prize_dispenser/Initialize() + . = ..() + power_change() + + item_list = list() + item_list["Weapons"] = list( + CASINO_PRIZE("Scepter", /obj/item/weapon/scepter, 1, 500, "weapons"), + CASINO_PRIZE("Chain of Command", /obj/item/weapon/melee/chainofcommand, 1, 250, "weapons"), + CASINO_PRIZE("Size Gun", /obj/item/weapon/gun/energy/sizegun, 1, 100, "weapons"), + CASINO_PRIZE("Advanced Particle Rifle", /obj/item/weapon/gun/energy/particle/advanced, 1, 500, "weapons"), + CASINO_PRIZE("Temperature Gun", /obj/item/weapon/gun/energy/temperature, 1, 250, "weapons"), + CASINO_PRIZE("Alien Pistol", /obj/item/weapon/gun/energy/alien, 1, 1000, "weapons"), + CASINO_PRIZE("Floral Gun", /obj/item/weapon/gun/energy/floragun, 1, 250, "weapons"), + CASINO_PRIZE("Net Gun", /obj/item/weapon/gun/energy/netgun, 1, 500, "weapons"), + ) + item_list["Gear"] = list( + CASINO_PRIZE("Experimental Welder", /obj/item/weapon/weldingtool/experimental, 1, 500, "gear"), + CASINO_PRIZE("Chameleon Tie", /obj/item/clothing/accessory/chameleon, 1, 250, "gear"), + CASINO_PRIZE("Chemsprayer", /obj/item/weapon/reagent_containers/spray/chemsprayer, 1, 250, "gear"), + CASINO_PRIZE("Bluespace Beaker", /obj/item/weapon/reagent_containers/glass/beaker/bluespace, 1, 200, "gear"), + CASINO_PRIZE("Cryo Beaker", /obj/item/weapon/reagent_containers/glass/beaker/noreact, 1, 200, "gear"), + ) + item_list["Clothing"] = list( + CASINO_PRIZE("Shark mask", /obj/item/clothing/mask/shark, 1, 50, "clothing"), + CASINO_PRIZE("Pig mask", /obj/item/clothing/mask/pig, 1, 50, "clothing"), + CASINO_PRIZE("Luchador mask", /obj/item/clothing/mask/luchador, 1, 50, "clothing"), + CASINO_PRIZE("Horse mask", /obj/item/clothing/mask/horsehead, 1, 50, "clothing"), + CASINO_PRIZE("Goblin mask", /obj/item/clothing/mask/goblin, 1, 50, "clothing"), + CASINO_PRIZE("Fake moustache", /obj/item/clothing/mask/fakemoustache, 1, 50, "clothing"), + CASINO_PRIZE("Dolphin mask", /obj/item/clothing/mask/dolphin, 1, 50, "clothing"), + CASINO_PRIZE("Demon mask", /obj/item/clothing/mask/demon, 1, 50, "clothing"), + CASINO_PRIZE("Chameleon mask", /obj/item/clothing/under/chameleon, 1, 250, "clothing"), + CASINO_PRIZE("Ian costume", /obj/item/clothing/suit/storage/hooded/costume/ian, 1, 50, "clothing"), + CASINO_PRIZE("Carp costume", /obj/item/clothing/suit/storage/hooded/costume/carp, 1, 50, "clothing"), + ) + item_list["Miscellaneous"] = list( + CASINO_PRIZE("Toy sword", /obj/item/toy/sword, 1, 50, "misc"), + CASINO_PRIZE("Waterflower", /obj/item/weapon/reagent_containers/spray/waterflower, 1, 50, "misc"), + CASINO_PRIZE("Horse stick", /obj/item/toy/stickhorse, 1, 50, "misc"), + CASINO_PRIZE("Katana", /obj/item/toy/katana, 1, 50, "misc"), + CASINO_PRIZE("Conch", /obj/item/toy/eight_ball/conch, 1, 50, "misc"), + CASINO_PRIZE("Eight ball", /obj/item/toy/eight_ball, 1, 50, "misc"), + CASINO_PRIZE("Foam sword", /obj/item/weapon/material/sword/foam, 1, 50, "misc"), + CASINO_PRIZE("Whistle", /obj/item/toy/bosunwhistle, 1, 50, "misc"), + CASINO_PRIZE("Golden cup", /obj/item/weapon/reagent_containers/food/drinks/golden_cup, 1, 50, "misc"), + CASINO_PRIZE("Quality cigars", /obj/item/weapon/storage/fancy/cigar/havana, 1, 50, "misc"), + CASINO_PRIZE("Casino wallet (kept after event)", /obj/item/weapon/storage/wallet/casino, 1, 50, "misc"), + CASINO_PRIZE("Casino cards", /obj/item/weapon/deck/cards/casino, 1, 50, "misc"), + ) + item_list["Drinks"] = list( + CASINO_PRIZE("Redeemer's brew", /obj/item/weapon/reagent_containers/food/drinks/bottle/redeemersbrew, 1, 50, "drinks"), + CASINO_PRIZE("Poison wine", /obj/item/weapon/reagent_containers/food/drinks/bottle/pwine, 1, 50, "drinks"), + CASINO_PRIZE("Patron", /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, 1, 50, "drinks"), + CASINO_PRIZE("Holy water", /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, 1, 50, "drinks"), + CASINO_PRIZE("Goldschlager", /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, 1, 50, "drinks"), + CASINO_PRIZE("Champagne", /obj/item/weapon/reagent_containers/food/drinks/bottle/champagne, 1, 50, "drinks"), + CASINO_PRIZE("Bottle of Nothing", /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing, 1, 50, "drinks"), + CASINO_PRIZE("Whiskey bliss", /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey, 1, 50, "drinks"), + ) + + item_list["Implants"] = list( + CASINO_PRIZE("Implanter (Remember to get one unless you want to borrow from station!)", /obj/item/weapon/implanter, 1, 100, "implants"), + CASINO_PRIZE("Implant: Tazer", /obj/item/weapon/implantcase/taser, 1, 1000, "implants"), + CASINO_PRIZE("Implant: Medkit", /obj/item/weapon/implantcase/medkit, 1, 500, "implants"), + CASINO_PRIZE("Implant: Shades", /obj/item/weapon/implantcase/shades, 1, 750, "implants"), + CASINO_PRIZE("Implant: Sprinter", /obj/item/weapon/implantcase/sprinter, 1, 1500, "implants"), + CASINO_PRIZE("Implant: Toolkit", /obj/item/weapon/implantcase/toolkit, 1, 500, "implants"), + CASINO_PRIZE("Implant: Language", /obj/item/weapon/implantcase/vrlanguage, 1, 1000, "implants"), + CASINO_PRIZE("Implant: Analyzer", /obj/item/weapon/implantcase/analyzer, 1, 500, "implants"), + CASINO_PRIZE("Implant: Size control", /obj/item/weapon/implant/sizecontrol , 1, 500, "implants"), + ) + + item_list["Event"] = list( + ) + +/obj/machinery/casino_prize_dispenser/power_change() + ..() + if(stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + else + if(!(stat & NOPOWER)) + icon_state = initial(icon_state) + else + spawn(rand(0, 15)) + icon_state = "[initial(icon_state)]-off" + +/obj/machinery/casino_prize_dispenser/attack_hand(mob/user as mob) + if(stat & (BROKEN|NOPOWER)) + return + tgui_interact(user) + +/obj/machinery/casino_prize_dispenser/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(currently_vending) + if(istype(W, /obj/item/weapon/spacecasinocash)) + to_chat(usr, "Please select prize on display with sufficient amount of chips.") + else + SStgui.update_uis(src) + return // don't smack that machine with your 2 chips + + if(istype(W, /obj/item/weapon/spacecasinocash)) + attack_hand(user) + return + ..() + +/obj/machinery/casino_prize_dispenser/proc/pay_with_chips(var/obj/item/weapon/spacecasinocash/cashmoney, mob/user, var/price) + //"cashmoney_:[cashmoney] user:[user] currently_vending:[currently_vending]" + if(price > cashmoney.worth) + to_chat(usr, "\icon[cashmoney] That is not enough chips.") + return 0 + + if(istype(cashmoney, /obj/item/weapon/spacecasinocash)) + visible_message("\The [usr] inserts some chips into \the [src].") + cashmoney.worth -= price + + if(cashmoney.worth <= 0) + usr.drop_from_inventory(cashmoney) + qdel(cashmoney) + else + cashmoney.update_icon() + return 1 + +/obj/machinery/casino_prize_dispenser/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/vending), + ) + +/obj/machinery/casino_prize_dispenser/tgui_data(mob/user) + var/list/data[0] + + data["items"] = list() + for(var/cat in item_list) + var/list/cat_items = list() + for(var/prize_name in item_list[cat]) + var/datum/data/casino_prize/prize = item_list[cat][prize_name] + cat_items[prize_name] = list("name" = prize_name, "price" = prize.cost, "restriction" = prize.restriction) + data["items"][cat] = cat_items + return data + +/obj/machinery/casino_prize_dispenser/tgui_interact(mob/user, datum/tgui/ui = null) + // Open the window + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "CasinoPrizeDispenser", name) + ui.open() + +/obj/machinery/casino_prize_dispenser/tgui_act(action, params) + if(stat & (BROKEN|NOPOWER)) + return + if(usr.stat || usr.restrained()) + return + if(..()) + return TRUE + . = TRUE + switch(action) + if("purchase") + var/paid = FALSE + var/category = params["cat"] + var/restriction_category = params["restriction"] + var/restriction_check = 0 + var/item_given = FALSE + var/name = params["name"] + var/price = params["price"] + var/datum/data/casino_prize/bi = item_list[category][name] + switch(restriction_category) + if("weapons") + restriction_check = category_weapons + if("gear") + restriction_check = category_gear + if("clothing") + restriction_check = category_clothing + if("misc") + restriction_check = category_misc + if("drinks") + restriction_check = category_drinks + if("implants") + restriction_check = category_implants + if("event") + restriction_check = category_event + else + to_chat(usr, "Prize checkout error has occured, purchase cancelled.") + return FALSE + + if(restriction_check < 1) + to_chat(usr, "[name] is restricted, this prize can't be bought.") + return FALSE + if(restriction_check > 1) + item_given = TRUE + + if(price <= 0 && item_given == TRUE) + vend(bi, usr) + return TRUE + + currently_vending = bi + + if(istype(usr.get_active_hand(), /obj/item/weapon/spacecasinocash)) + var/obj/item/weapon/spacecasinocash/cash = usr.get_active_hand() + paid = pay_with_chips(cash, usr, price) + else + to_chat(usr, "Payment failure: Improper payment method, please provide chips.") + return TRUE // we set this because they shouldn't even be able to get this far, and we want the UI to update. + if(paid) + if(item_given == TRUE) + vend(bi, usr) + + speak("Thank you for your purchase, your [bi] has been logged.") + do_logging(currently_vending, usr, bi) + . = TRUE + else + to_chat(usr, "Payment failure: unable to process payment.") + +/obj/machinery/casino_prize_dispenser/proc/vend(datum/data/casino_prize/bi, mob/user) + SStgui.update_uis(src) + + if(ispath(bi.equipment_path, /obj/item/stack)) + new bi.equipment_path(loc, bi.equipment_amt) + playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1) + return TRUE + + for(var/i in 1 to bi.equipment_amt) + new bi.equipment_path(loc) + playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1) + + currently_vending = null + use_power(vend_power_usage) //actuators and stuff + flick("[icon_state]-vend",src) + + +/obj/machinery/casino_prize_dispenser/proc/do_logging(item, mob/user, datum/data/casino_prize/bi) + var/prize_log = "{ckey:[user.ckey]character_name:[user.name]item_path: [bi.equipment_path]}" + log[++log.len] = prize_log + //Currently doesnt have an ingame way to show. Can only be viewed through View-Variables, to ensure theres no chance of players ckeys exposed - Jack + +/obj/machinery/casino_prize_dispenser/proc/speak(var/message) + if(stat & NOPOWER) + return + + if(!message) + return + + for(var/mob/O in hearers(src, null)) + O.show_message("\The [src] beeps, \"[message]\"",2) + return + +/obj/machinery/casino_prize_dispenser/process() //Might not need this, but just to be safe for now + if(stat & (BROKEN|NOPOWER)) + return +>>>>>>> 737c473e4b... [MIRROR] :siffet: (#11584):code/modules/casino/casino_prize_vendor.dm diff --git a/code/modules/awaymissions/loot_vr.dm b/code/modules/awaymissions/loot_vr.dm index a44ebab2a9..8c1205fb6a 100644 --- a/code/modules/awaymissions/loot_vr.dm +++ b/code/modules/awaymissions/loot_vr.dm @@ -282,7 +282,7 @@ for(var/i=0,i>>>>>> 737c473e4b... [MIRROR] :siffet: (#11584) + /obj/item/clothing/suit/storage/toggle/internalaffairs = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 5, + /obj/item/clothing/suit/suspenders = 5, + /obj/item/clothing/suit/storage/toggle/track = 5, + /obj/item/clothing/suit/storage/toggle/track/blue = 5, + /obj/item/clothing/suit/storage/toggle/track/green = 5, + /obj/item/clothing/suit/storage/toggle/track/red = 5, + /obj/item/clothing/suit/storage/toggle/track/white = 5, + /obj/item/clothing/suit/storage/trench = 5, + /obj/item/clothing/suit/storage/trench/grey = 5, + /obj/item/clothing/suit/varsity = 5, + /obj/item/clothing/suit/varsity/red = 5, + /obj/item/clothing/suit/varsity/purple = 5, + /obj/item/clothing/suit/varsity/green = 5, + /obj/item/clothing/suit/varsity/blue = 5, + /obj/item/clothing/suit/varsity/brown = 5, + /obj/item/clothing/suit/storage/hooded/wintercoat = 5, + /obj/item/clothing/suit/storage/hooded/wintercoat/aformal = 5, + /obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 5) + prices = list(/obj/item/clothing/suit/storage/apron = 100, + /obj/item/clothing/suit/storage/flannel/aqua = 100, + /obj/item/clothing/suit/storage/toggle/bomber = 100, + /obj/item/clothing/suit/storage/bomber/alt = 100, + /obj/item/clothing/suit/storage/flannel/brown = 100, + /obj/item/clothing/suit/storage/toggle/cardigan = 100, + /obj/item/clothing/accessory/poncho/roles/cloak/custom = 100, + /obj/item/clothing/suit/storage/duster = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless = 100, + /obj/item/clothing/suit/storage/fluff/gntop = 100, + /obj/item/clothing/suit/greatcoat = 100, + /obj/item/clothing/suit/storage/flannel = 100, + /obj/item/clothing/suit/storage/greyjacket = 100, + /obj/item/clothing/suit/storage/hazardvest = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/black = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/red = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/blue = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/green = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/orange = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/yellow = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/cti = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/mu = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/nt = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/smw = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/nrti = 100, + /obj/item/clothing/suit/storage/fluff/jacket/field = 100, + /obj/item/clothing/suit/storage/fluff/jacket/air_cavalry = 100, + /obj/item/clothing/suit/storage/fluff/jacket/air_force = 100, + /obj/item/clothing/suit/storage/fluff/jacket/navy = 100, + /obj/item/clothing/suit/storage/fluff/jacket/special_forces = 100, + /obj/item/clothing/suit/kamishimo = 100, + /obj/item/clothing/suit/kimono = 100, + /obj/item/clothing/suit/storage/toggle/labcoat = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/blue = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/green = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/orange = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/pink = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/red = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/yellow = 100, + /obj/item/clothing/suit/leathercoat = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket = 100, + /obj/item/clothing/suit/storage/leather_jacket_alt = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless = 100, + /obj/item/clothing/suit/storage/miljacket = 100, + /obj/item/clothing/suit/storage/miljacket/alt = 100, + /obj/item/clothing/suit/storage/miljacket/green = 100, + /obj/item/clothing/suit/storage/apron/overalls = 100, + /obj/item/clothing/suit/storage/toggle/peacoat = 100, + /obj/item/clothing/accessory/poncho = 100, + /obj/item/clothing/accessory/poncho/green = 100, + /obj/item/clothing/accessory/poncho/red = 100, + /obj/item/clothing/accessory/poncho/purple = 100, + /obj/item/clothing/accessory/poncho/blue = 100, + /obj/item/clothing/suit/jacket/puffer = 100, + /obj/item/clothing/suit/jacket/puffer/vest = 100, + /obj/item/clothing/suit/storage/flannel/red = 100, + /obj/item/clothing/suit/unathi/robe = 100, + /obj/item/clothing/suit/storage/toggle/internalaffairs = 100, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 100, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 100, + /obj/item/clothing/suit/suspenders = 100, + /obj/item/clothing/suit/storage/toggle/track = 100, + /obj/item/clothing/suit/storage/toggle/track/blue = 100, + /obj/item/clothing/suit/storage/toggle/track/green = 100, + /obj/item/clothing/suit/storage/toggle/track/red = 100, + /obj/item/clothing/suit/storage/toggle/track/white = 100, + /obj/item/clothing/suit/storage/trench = 100, + /obj/item/clothing/suit/storage/trench/grey = 100, + /obj/item/clothing/suit/varsity = 100, + /obj/item/clothing/suit/varsity/red = 100, + /obj/item/clothing/suit/varsity/purple = 100, + /obj/item/clothing/suit/varsity/green = 100, + /obj/item/clothing/suit/varsity/blue = 100, + /obj/item/clothing/suit/varsity/brown = 100, + /obj/item/clothing/suit/storage/hooded/wintercoat = 100, + /obj/item/clothing/suit/storage/hooded/wintercoat/aformal = 100, + /obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 100) + premium = list(/obj/item/clothing/suit/imperium_monk = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/cosmic = 1) + contraband = list(/obj/item/toy/katana = 1) + +/obj/machinery/vending/loadout/costume + name = "Thespian's Delight" + desc = "Sometimes nerds need costumes!" + product_ads = "Don't let your art be stifled!;Remember, practice makes perfect!;Break a leg!;Don't make me get the cane!;Thespian's Delight entering stage right!;Costumes for your acting needs!" + icon = 'icons/obj/vending.dmi' + icon_state = "theater" + products = list(/obj/item/clothing/suit/storage/hooded/costume/carp = 3, + /obj/item/clothing/suit/storage/hooded/costume/carp = 3, + /obj/item/clothing/suit/chickensuit = 3, + /obj/item/clothing/head/chicken = 3, + /obj/item/clothing/head/helmet/gladiator = 3, + /obj/item/clothing/under/gladiator = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 3, + /obj/item/clothing/under/suit_jacket/green = 3, + /obj/item/clothing/glasses/gglasses = 3, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/shoes/boots/jackboots = 3, + /obj/item/clothing/under/schoolgirl = 3, + /obj/item/clothing/head/kitty = 3, + /obj/item/clothing/glasses/sunglasses/blindfold = 3, + /obj/item/clothing/head/beret = 3, + /obj/item/clothing/under/skirt = 3, + /obj/item/clothing/under/suit_jacket = 3, + /obj/item/clothing/head/that = 3, + /obj/item/clothing/accessory/wcoat = 3, + /obj/item/clothing/under/scratch = 3, + /obj/item/clothing/shoes/white = 3, + /obj/item/clothing/gloves/white = 3, + /obj/item/clothing/under/kilt = 3, + /obj/item/clothing/glasses/monocle = 3, + /obj/item/clothing/under/sl_suit = 3, + /obj/item/clothing/mask/fakemoustache = 3, + /obj/item/weapon/cane = 3, + /obj/item/clothing/head/bowler = 3, + /obj/item/clothing/head/plaguedoctorhat = 3, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 3, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 3, + /obj/item/clothing/under/owl = 3, + /obj/item/clothing/mask/gas/owl_mask = 3, + /obj/item/clothing/under/waiter = 3, + /obj/item/clothing/suit/storage/apron = 3, + /obj/item/clothing/under/pirate = 3, + /obj/item/clothing/head/pirate = 3, + /obj/item/clothing/suit/pirate = 3, + /obj/item/clothing/glasses/eyepatch = 3, + /obj/item/clothing/head/ushanka = 3, + /obj/item/clothing/under/soviet = 3, + /obj/item/clothing/suit/imperium_monk = 1, + /obj/item/clothing/suit/holidaypriest = 3, + /obj/item/clothing/head/witchwig = 3, + /obj/item/clothing/under/sundress = 3, + /obj/item/weapon/staff/broom = 3, + /obj/item/clothing/suit/wizrobe/fake = 3, + /obj/item/clothing/head/wizard/fake = 3, + /obj/item/weapon/staff = 3, + /obj/item/clothing/mask/gas/sexyclown = 3, + /obj/item/clothing/under/sexyclown = 3, + /obj/item/clothing/mask/gas/sexymime = 3, + /obj/item/clothing/under/sexymime = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/robin = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 3, + /obj/item/clothing/head/helmet/combat/crusader_costume = 3, + /obj/item/clothing/head/helmet/combat/bedevere_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume/brown = 3, + /obj/item/clothing/shoes/knight_costume = 3, + /obj/item/clothing/shoes/knight_costume/black = 3) + prices = list(/obj/item/clothing/suit/storage/hooded/costume/carp = 200, + /obj/item/clothing/suit/storage/hooded/costume/carp = 200, + /obj/item/clothing/suit/chickensuit = 200, + /obj/item/clothing/head/chicken = 200, + /obj/item/clothing/head/helmet/gladiator = 300, + /obj/item/clothing/under/gladiator = 500, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 200, + /obj/item/clothing/under/suit_jacket/green = 200, + /obj/item/clothing/glasses/gglasses = 200, + /obj/item/clothing/head/flatcap = 200, + /obj/item/clothing/shoes/boots/jackboots = 200, + /obj/item/clothing/under/schoolgirl = 200, + /obj/item/clothing/head/kitty = 200, + /obj/item/clothing/glasses/sunglasses/blindfold = 200, + /obj/item/clothing/head/beret = 200, + /obj/item/clothing/under/skirt = 200, + /obj/item/clothing/under/suit_jacket = 200, + /obj/item/clothing/head/that = 200, + /obj/item/clothing/accessory/wcoat = 200, + /obj/item/clothing/under/scratch = 200, + /obj/item/clothing/shoes/white = 200, + /obj/item/clothing/gloves/white = 200, + /obj/item/clothing/under/kilt = 200, + /obj/item/clothing/glasses/monocle = 400, + /obj/item/clothing/under/sl_suit = 200, + /obj/item/clothing/mask/fakemoustache = 200, + /obj/item/weapon/cane = 300, + /obj/item/clothing/head/bowler = 200, + /obj/item/clothing/head/plaguedoctorhat = 300, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 300, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 600, + /obj/item/clothing/under/owl = 400, + /obj/item/clothing/mask/gas/owl_mask = 400, + /obj/item/clothing/under/waiter = 100, + /obj/item/clothing/suit/storage/apron = 200, + /obj/item/clothing/under/pirate = 300, + /obj/item/clothing/head/pirate = 400, + /obj/item/clothing/suit/pirate = 600, + /obj/item/clothing/glasses/eyepatch = 200, + /obj/item/clothing/head/ushanka = 200, + /obj/item/clothing/under/soviet = 200, + /obj/item/clothing/suit/imperium_monk = 2000, + /obj/item/clothing/suit/holidaypriest = 200, + /obj/item/clothing/head/witchwig = 200, + /obj/item/clothing/under/sundress = 50, + /obj/item/weapon/staff/broom = 400, + /obj/item/clothing/suit/wizrobe/fake = 200, + /obj/item/clothing/head/wizard/fake = 200, + /obj/item/weapon/staff = 400, + /obj/item/clothing/mask/gas/sexyclown = 600, + /obj/item/clothing/under/sexyclown = 200, + /obj/item/clothing/mask/gas/sexymime = 600, + /obj/item/clothing/under/sexymime = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume/robin = 200, + /obj/item/clothing/suit/armor/combat/crusader_costume = 200, + /obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 200, + /obj/item/clothing/head/helmet/combat/crusader_costume = 200, + /obj/item/clothing/head/helmet/combat/bedevere_costume = 200, + /obj/item/clothing/gloves/combat/knight_costume = 200, + /obj/item/clothing/gloves/combat/knight_costume/brown = 200, + /obj/item/clothing/shoes/knight_costume = 200, + /obj/item/clothing/shoes/knight_costume/black = 200) + premium = list(/obj/item/clothing/suit/imperium_monk = 3, + /obj/item/clothing/suit/barding/agatha = 2, + /obj/item/clothing/suit/barding/alt_agatha = 2, + /obj/item/clothing/suit/barding/mason = 2, + /obj/item/clothing/suit/drake_cloak = 2) + contraband = list(/obj/item/clothing/head/syndicatefake = 1, + /obj/item/clothing/suit/syndicatefake = 1) + /obj/machinery/vending/entertainer name = "Thespian's Delight" desc = "Sometimes nerds need costumes!" @@ -1511,8 +3877,8 @@ /obj/item/clothing/under/color/yellow = 5, /obj/item/clothing/shoes/black = 5, /obj/item/clothing/shoes/white = 5, - /obj/item/clothing/suit/storage/hooded/carp_costume = 3, - /obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/storage/hooded/costume/carp = 3, + /obj/item/clothing/suit/storage/hooded/costume/carp = 3, /obj/item/clothing/suit/chickensuit = 3, /obj/item/clothing/head/chicken = 3, /obj/item/clothing/head/helmet/gladiator = 3, @@ -2259,8 +4625,8 @@ product_ads = "Don't let your art be stifled!;Remember, practice makes perfect!;Break a leg!;Don't make me get the cane!;Thespian's Delight entering stage right!;Costumes for your acting needs!" icon = 'icons/obj/vending.dmi' icon_state = "theater" - products = list(/obj/item/clothing/suit/storage/hooded/carp_costume = 3, - /obj/item/clothing/suit/storage/hooded/carp_costume = 3, + products = list(/obj/item/clothing/suit/storage/hooded/costume/carp = 3, + /obj/item/clothing/suit/storage/hooded/costume/carp = 3, /obj/item/clothing/suit/chickensuit = 3, /obj/item/clothing/head/chicken = 3, /obj/item/clothing/head/helmet/gladiator = 3, diff --git a/icons/inventory/head/item.dmi b/icons/inventory/head/item.dmi index 35a07f74bf..69c053540d 100644 Binary files a/icons/inventory/head/item.dmi and b/icons/inventory/head/item.dmi differ diff --git a/icons/inventory/head/mob.dmi b/icons/inventory/head/mob.dmi index 1e8a6315bd..c75e89c28a 100644 Binary files a/icons/inventory/head/mob.dmi and b/icons/inventory/head/mob.dmi differ diff --git a/icons/inventory/suit/item.dmi b/icons/inventory/suit/item.dmi index 6390e02435..beb1f9c3a7 100644 Binary files a/icons/inventory/suit/item.dmi and b/icons/inventory/suit/item.dmi differ diff --git a/icons/inventory/suit/mob.dmi b/icons/inventory/suit/mob.dmi index 8736d3d420..a313002203 100644 Binary files a/icons/inventory/suit/mob.dmi and b/icons/inventory/suit/mob.dmi differ diff --git a/maps/gateway_archive_vr/zoo.dmm b/maps/gateway_archive_vr/zoo.dmm index 3ed7fe26f8..40a2d0ef1b 100644 --- a/maps/gateway_archive_vr/zoo.dmm +++ b/maps/gateway_archive_vr/zoo.dmm @@ -528,8 +528,8 @@ "kh" = (/obj/machinery/vending/food,/turf/simulated/floor/tiled/white,/area/awaymission/zoo) "ki" = (/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/holofloor/beach/sand{icon_state = "dgrass0"},/area/awaymission/zoo) "kj" = (/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/floor/holofloor/beach/sand{icon_state = "dgrass0"},/area/awaymission/zoo) -"kk" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/hooded/ian_costume,/turf/simulated/floor/holofloor/carpet,/area/awaymission/zoo) -"kl" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/hooded/carp_costume,/turf/simulated/floor/holofloor/carpet,/area/awaymission/zoo) +"kk" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/hooded/costume/ian,/turf/simulated/floor/holofloor/carpet,/area/awaymission/zoo) +"kl" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/hooded/costume/carp,/turf/simulated/floor/holofloor/carpet,/area/awaymission/zoo) "km" = (/obj/structure/table/rack,/obj/effect/landmark/costume,/turf/simulated/floor/holofloor/carpet,/area/awaymission/zoo) "kn" = (/obj/structure/table/rack,/obj/item/clothing/suit/chickensuit,/obj/item/clothing/head/chicken,/turf/simulated/floor/holofloor/carpet,/area/awaymission/zoo) "ko" = (/obj/structure/table/rack,/obj/item/clothing/head/sombrero,/turf/simulated/floor/holofloor/carpet,/area/awaymission/zoo) diff --git a/maps/gateway_vr/zoo.dmm b/maps/gateway_vr/zoo.dmm index 831eae8e7f..19fa7fc4da 100644 --- a/maps/gateway_vr/zoo.dmm +++ b/maps/gateway_vr/zoo.dmm @@ -3856,12 +3856,12 @@ /area/awaymission/zoo) "kk" = ( /obj/structure/table/rack, -/obj/item/clothing/suit/storage/hooded/ian_costume, +/obj/item/clothing/suit/storage/hooded/costume/ian, /turf/simulated/floor/holofloor/carpet, /area/awaymission/zoo) "kl" = ( /obj/structure/table/rack, -/obj/item/clothing/suit/storage/hooded/carp_costume, +/obj/item/clothing/suit/storage/hooded/costume/carp, /turf/simulated/floor/holofloor/carpet, /area/awaymission/zoo) "km" = (