diff --git a/code/game/machinery/casino_ch.dm b/code/game/machinery/casino_ch.dm
index 34adb38328..65d744abcf 100644
--- a/code/game/machinery/casino_ch.dm
+++ b/code/game/machinery/casino_ch.dm
@@ -900,7 +900,7 @@
/////////////CASINO PRIZE DISPENSER////////////////////////
-
+/*
/obj/machinery/casino_prize_dispenser //WIP sprites and variables and prize lists
name = "Casino Prize Exchanger"
desc = "Exchange your chips to obtain wonderful prizes! Hoepfully you'll get to keep some of them for a while."
@@ -920,13 +920,27 @@
var/status_message = "" // Status screen messages like "insufficient funds", displayed in NanoUI
var/status_error = 0 // Set to 1 if status_message is an error
- var/list/weapons = list() // For each, use the following pattern:
- var/list/gear = list() // list(/type/path = amount,/type/path2 = amount2)
- var/list/clothing = list() // No specified amount = only one in stock
- var/list/misc = list()
- var/list/drinks = list()
+ var/list/list_weapons = list()
+ var/list/list_gear = list()
+ var/list/list_clothing = list()
+ var/list/list_misc = list()
+ var/list/list_drinks = list()
var/list/prices = list() // Prices for each item, list(/type/path = price), items not in the list don't have a price.
+ 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
+ var/category_clothing = 1
+ var/category_misc = 1
+ var/category_drinks = 1
+
+ var/list/product_categories = list(
+ list_weapons,
+ category_gear,
+ category_clothing,
+ category_misc,
+ category_drinks
+ )
+
// List of vending_product items available.
var/list/product_records = list()
@@ -941,7 +955,7 @@
var/list/log = list()
var/req_log_access = access_cargo //default access for checking logs is cargo
var/has_logs = 0 //defaults to 0, set to anything else for vendor to have logs
-
+*/
/*
var/list/all_products = list(
@@ -952,16 +966,12 @@
list("Booze", CAT_DRINKS))
*/
+/*
/obj/machinery/casino_prize_dispenser/Initialize()
build_inventory()
/obj/machinery/casino_prize_dispenser/proc/build_inventory() //WIP
- var/list/all_products = list(
- list(weapons, CAT_WEAPONS),
- list(gear, CAT_GEAR),
- list(clothing, CAT_CLOTHING),
- list(misc, CAT_MISC),
- list(drinks, CAT_DRINKS))
+
for(var/current_list in all_products)
var/category = current_list[2]
@@ -971,7 +981,8 @@
product.price = (entry in prices) ? prices[entry] : 0
product.category = category
-
+*/
+/*
/obj/machinery/casino_prize_dispenser/Destroy()
for(var/datum/stored_item/vending_product/R in product_records)
qdel(R)
@@ -1056,6 +1067,7 @@
"color" = I.display_color)))
data["products"] = listed_products
+ data["categories"] = all_products
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
if(!ui)
@@ -1116,4 +1128,49 @@
/obj/machinery/casino_prize_dispenser/proc/do_logging(datum/stored_item/vending_product/R, mob/user, var/vending = 0) //WIP?
var/prize_log = "[user.ckey] playing as [user.name] bought a INSERT PORODUCT HERE."
log[++log.len] = prize_log
- //Currently doesnt have in game way to show, to ensure theres no chance of players ckeys exposed - Jack
\ No newline at end of file
+ //Currently doesnt have in game way to show, to ensure theres no chance of players ckeys exposed - Jack
+*/
+/*
+
+
+{{if data.mode == 0}}
+
Items available
+
+ {{for data.products}}
+
+
+ {{if value.price > 0}}
+ {{:helper.link('Buy (' + value.price + ')', 'cart', { "vend" : value.key }}}
+ {{else}}
+ {{:helper.link('Vend', 'circle-arrow-s', { "vend" : value.key }}}
+ {{/if}}
+
+
+ {{if value.color}}{{:value.name}}
+ {{else}}{{:value.name}}
+
+
+ {{empty}}
+ No items available!
+ {{/for}}
+
+{{/if}}
+{{else data.mode == 1}}
+Item selected
+
+
+
Item selected:
{{:data.product}}
+
Charge:
{{:data.price}}
+
+
+ {{if data.message_err}} {{/if}} {{:data.message}}
+
+
+ {{:helper.link('Cancel', 'arrowreturn-1-w', {'cancelpurchase' : 1})}}
+
+
+{{/if}}
+*/
\ No newline at end of file
diff --git a/code/game/objects/effects/effect_system_ch.dm b/code/game/objects/effects/effect_system_ch.dm
new file mode 100644
index 0000000000..08e80a19d5
--- /dev/null
+++ b/code/game/objects/effects/effect_system_ch.dm
@@ -0,0 +1,64 @@
+
+/////////////////////////////////////////////
+// Confetti and Glitter
+// Uses same system as smoke so can have directional travel
+/////////////////////////////////////////////
+
+/obj/effect/effect/confetti
+ name = "confetti"
+ icon = 'icons/effects/effects_ch.dmi'
+ icon_state = "confetti"
+ opacity = 1
+ anchored = 0.0
+ mouse_opacity = 0
+ var/amount = 6.0
+ var/time_to_live = 100
+
+/obj/effect/effect/confetti/New()
+ ..()
+ if(time_to_live)
+ spawn (time_to_live)
+ if(!QDELETED(src))
+ qdel(src)
+
+/datum/effect/effect/system/confetti_spread
+ var/total_confetti = 0 // To stop it being spammed and lagging!
+ var/direction
+ var/confetti_type = /obj/effect/effect/confetti
+
+/datum/effect/effect/system/confetti_spread/set_up(n = 5, c = 0, loca, direct)
+ if(n > 10)
+ n = 10
+ number = n
+ cardinals = c
+ if(istype(loca, /turf/))
+ location = loca
+ else
+ location = get_turf(loca)
+ if(direct)
+ direction = direct
+
+/datum/effect/effect/system/confetti_spread/start(var/I)
+ var/i = 0
+ for(i=0, i 20)
+ return
+ spawn(0)
+ if(holder)
+ src.location = get_turf(holder)
+ var/obj/effect/effect/confetti/confetti = new confetti_type(src.location)
+ src.total_confetti++
+ if(I)
+ confetti.color = I //Allows us to do differently colored confetti
+ var/direction = src.direction
+ if(!direction)
+ if(src.cardinals)
+ direction = pick(cardinal)
+ else
+ direction = pick(alldirs)
+ for(i=0, i
{{if data.mode == 0}}
-Items available
+Prize categories
- {{for data.products}}
-
-
- {{if value.price > 0}}
- {{:helper.link('Buy (' + value.price + ')', 'cart', { "vend" : value.key }}}
- {{else}}
- {{:helper.link('Vend', 'circle-arrow-s', { "vend" : value.key }}}
- {{/if}}
-
-
- {{if value.color}}{{:value.name}}
- {{else}}{{:value.name}}
-
+ {{for data.categories}}
{{empty}}
No items available!
{{/for}}
-{{/if}}
-{{else data.mode == 1}}
-Item selected
-
-
-
Item selected:
{{:data.product}}
-
Charge:
{{:data.price}}
-
-
- {{if data.message_err}} {{/if}} {{:data.message}}
-
-
- {{:helper.link('Cancel', 'arrowreturn-1-w', {'cancelpurchase' : 1})}}
-
-{{/if}}
\ No newline at end of file
+{{/if}}
diff --git a/vorestation.dme b/vorestation.dme
index 8bf6899fe9..11dbedfaa2 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -986,6 +986,7 @@
#include "code\game\objects\weapons.dm"
#include "code\game\objects\effects\bump_teleporter.dm"
#include "code\game\objects\effects\effect_system.dm"
+#include "code\game\objects\effects\effect_system_ch.dm"
#include "code\game\objects\effects\explosion_particles.dm"
#include "code\game\objects\effects\gibs.dm"
#include "code\game\objects\effects\glowshroom.dm"
@@ -1215,6 +1216,7 @@
#include "code\game\objects\items\weapons\grenades\anti_photon_grenade.dm"
#include "code\game\objects\items\weapons\grenades\chem_grenade.dm"
#include "code\game\objects\items\weapons\grenades\concussion.dm"
+#include "code\game\objects\items\weapons\grenades\confetti_grenade.dm"
#include "code\game\objects\items\weapons\grenades\emgrenade.dm"
#include "code\game\objects\items\weapons\grenades\explosive.dm"
#include "code\game\objects\items\weapons\grenades\flashbang.dm"
@@ -2103,6 +2105,7 @@
#include "code\modules\games\cah_white_cards.dm"
#include "code\modules\games\cardemon.dm"
#include "code\modules\games\cards.dm"
+#include "code\modules\games\cards_ch.dm"
#include "code\modules\games\dice.dm"
#include "code\modules\games\spaceball_cards.dm"
#include "code\modules\games\tarot.dm"