mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Arcade Prize Counter
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
var/prize_inside = pick(possible_contents)
|
||||
spawn(10)
|
||||
user.unEquip(src)
|
||||
if(istype(/obj/item/stack))
|
||||
if(istype(prize_inside, /obj/item/stack))
|
||||
var/amount = pick(5, 10, 15, 25, 50)
|
||||
new prize_inside(user.loc, amount)
|
||||
else
|
||||
@@ -55,7 +55,7 @@
|
||||
/obj/item/toy/prizeball/therapy
|
||||
name = "therapy doll capsule"
|
||||
desc = "Contains one squishy therapy doll."
|
||||
possible_contents = subtypesof(/obj/item/toy/therapy)
|
||||
possible_contents = list(/obj/random/therapy)
|
||||
|
||||
/obj/item/stack/tickets
|
||||
name = "prize ticket"
|
||||
@@ -64,7 +64,7 @@
|
||||
icon = 'icons/obj/arcade.dmi'
|
||||
icon_state = "tickets_1"
|
||||
force = 1
|
||||
throw_force = 1
|
||||
throwforce = 1
|
||||
throw_speed = 1
|
||||
throw_range = 1
|
||||
w_class = 1.0
|
||||
|
||||
@@ -25,38 +25,16 @@
|
||||
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
|
||||
prize_tier = B.rating
|
||||
|
||||
/obj/machinery/prize_counter/proc/UpdateListings()
|
||||
var/dat = ""
|
||||
for(var/datum/prize_item/item in global_prizes.prizes)
|
||||
var/cost_class="affordable"
|
||||
if(item.cost>tickets)
|
||||
cost_class="toomuch"
|
||||
var/itemID = global_prizes.prizes.Find(item)
|
||||
dat += {"
|
||||
<tr>
|
||||
<th>
|
||||
[itemID]
|
||||
</th>
|
||||
<td>
|
||||
<p><b>[item.name]</b></p>
|
||||
<p>[item.desc]</p>
|
||||
</td>
|
||||
"}
|
||||
if(prize_tier >= item.tier_unlocked)
|
||||
dat += {"
|
||||
<td class="cost [cost_class]">
|
||||
<a href="byond://?src=\ref[src];buy=[itemID]">[item.cost] Tickets</a>
|
||||
</td>
|
||||
</tr>
|
||||
"}
|
||||
else
|
||||
dat += {"
|
||||
<td>
|
||||
LOCKED.
|
||||
</td>
|
||||
</tr>
|
||||
"}
|
||||
return dat
|
||||
/obj/machinery/prize_counter/update_icon()
|
||||
if(stat & BROKEN)
|
||||
icon_state = "prize_counter-broken"
|
||||
else if(panel_open)
|
||||
icon_state = "prize_counter-open"
|
||||
else if(stat & NOPOWER)
|
||||
icon_state = "prize_counter-off"
|
||||
else
|
||||
icon_state = "prize_counter-on"
|
||||
return
|
||||
|
||||
/obj/machinery/prize_counter/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
|
||||
if(istype(O, /obj/item/stack/tickets))
|
||||
@@ -74,16 +52,18 @@
|
||||
if(istype(O, /obj/item/weapon/wrench))
|
||||
default_unfasten_wrench(user, O)
|
||||
if(component_parts && istype(O, /obj/item/weapon/crowbar))
|
||||
if(tickets) //save the tickets!
|
||||
print_tickets()
|
||||
default_deconstruction_crowbar(O)
|
||||
|
||||
/obj/machinery/prize_counter/attack_hand(mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
add_fingerprint(user)
|
||||
interact(user)
|
||||
|
||||
/obj/machinery/prize_counter/interact(mob/user as mob)
|
||||
user.set_machine(src)
|
||||
add_fingerprint(user)
|
||||
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
@@ -152,7 +132,37 @@ td.cost.toomuch {
|
||||
</thead>
|
||||
<tbody>
|
||||
"}
|
||||
dat += UpdateListings()
|
||||
|
||||
for(var/datum/prize_item/item in global_prizes.prizes)
|
||||
var/cost_class="affordable"
|
||||
if(item.cost>tickets)
|
||||
cost_class="toomuch"
|
||||
var/itemID = global_prizes.prizes.Find(item)
|
||||
dat += {"
|
||||
<tr>
|
||||
<th>
|
||||
[itemID]
|
||||
</th>
|
||||
<td>
|
||||
<p><b>[item.name]</b></p>
|
||||
<p>[item.desc]</p>
|
||||
</td>
|
||||
"}
|
||||
if(prize_tier >= item.tier_unlocked)
|
||||
dat += {"
|
||||
<td class="cost [cost_class]">
|
||||
<a href="byond://?src=\ref[src];buy=[itemID]">[item.cost] Tickets</a>
|
||||
</td>
|
||||
</tr>
|
||||
"}
|
||||
else
|
||||
dat += {"
|
||||
<td>
|
||||
LOCKED.
|
||||
</td>
|
||||
</tr>
|
||||
"}
|
||||
|
||||
dat += {"
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -169,7 +179,7 @@ td.cost.toomuch {
|
||||
src.add_fingerprint(usr)
|
||||
|
||||
if(href_list["eject"])
|
||||
print_tickets
|
||||
print_tickets()
|
||||
|
||||
if (href_list["buy"])
|
||||
var/itemID = text2num(href_list["buy"])
|
||||
@@ -183,7 +193,7 @@ td.cost.toomuch {
|
||||
else
|
||||
usr << "<span class='notice'>You've successfully purchased the item.</span>"
|
||||
|
||||
src.updateUsrDialog()
|
||||
interact(usr)
|
||||
return
|
||||
|
||||
/obj/machinery/prize_counter/proc/print_tickets()
|
||||
@@ -194,4 +204,5 @@ td.cost.toomuch {
|
||||
tickets -= 9999
|
||||
print_tickets()
|
||||
else
|
||||
new /obj/item/stack/tickets(src.loc, tickets)
|
||||
new /obj/item/stack/tickets(src.loc, tickets)
|
||||
tickets = 0
|
||||
@@ -15,7 +15,7 @@ var/global/datum/prizes/global_prizes = new
|
||||
if(!item)
|
||||
return 0
|
||||
if(prize_counter.tickets >= item.cost)
|
||||
item.deliver(prize_counter)
|
||||
new item.typepath(prize_counter.loc)
|
||||
prize_counter.visible_message("<span class='notice'>Enjoy your prize!</span>")
|
||||
return 1
|
||||
else
|
||||
@@ -23,7 +23,7 @@ var/global/datum/prizes/global_prizes = new
|
||||
return 0
|
||||
|
||||
//////////////////////////////////////
|
||||
// /datum/prize_item //
|
||||
// prize_item datum //
|
||||
//////////////////////////////////////
|
||||
|
||||
/datum/prize_item
|
||||
@@ -33,9 +33,6 @@ var/global/datum/prizes/global_prizes = new
|
||||
var/cost = 0
|
||||
var/tier_unlocked = 0 //minimum tier needed to unlock the ability to select this prize
|
||||
|
||||
/datum/prize_item/proc/deliver(var/obj/machinery/prize_counter/P_C)
|
||||
var/thing = new typepath(P_C.loc)
|
||||
|
||||
//////////////////////////////////////
|
||||
// Tier 1 Prizes //
|
||||
//////////////////////////////////////
|
||||
@@ -54,7 +51,7 @@ var/global/datum/prizes/global_prizes = new
|
||||
cost = 35
|
||||
tier_unlocked = 1
|
||||
|
||||
/datum/prize_item/snap-pops
|
||||
/datum/prize_item/snappops
|
||||
name = "Snap-Pops"
|
||||
desc = "A box of exploding snap-pop fireworks."
|
||||
typepath = /obj/item/weapon/storage/box/snappops
|
||||
@@ -85,7 +82,7 @@ var/global/datum/prizes/global_prizes = new
|
||||
/datum/prize_item/cards
|
||||
name = "Deck of cards"
|
||||
desc = "Anyone fancy a game of 52-card Pickup?"
|
||||
typepath = obj/item/toy/cards/deck
|
||||
typepath = /obj/item/toy/cards/deck
|
||||
cost = 25
|
||||
tier_unlocked = 1
|
||||
|
||||
@@ -134,10 +131,10 @@ var/global/datum/prizes/global_prizes = new
|
||||
desc = "A sticker that can make any ID look like a golden ID."
|
||||
typepath = /obj/item/weapon/id_decal/gold
|
||||
|
||||
/datum/prize_item/id_sticker/centcomm
|
||||
/datum/prize_item/id_sticker/centcom
|
||||
name = "Centcomm ID Sticker"
|
||||
desc = "A sticker that can make any ID look like a Central Command ID."
|
||||
typepath = /obj/item/weapon/id_decal/centcomm
|
||||
typepath = /obj/item/weapon/id_decal/centcom
|
||||
|
||||
/datum/prize_item/id_sticker/emag
|
||||
name = "Suspicious ID Sticker"
|
||||
|
||||
@@ -490,4 +490,13 @@
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS=1000, "sacid"=20)
|
||||
build_path = /obj/item/weapon/circuitboard/clawgame
|
||||
category = list ("Misc. Machinery")
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/prize_counter
|
||||
name = "Machine Design (Prize Counter)"
|
||||
desc = "The circuit board for an arcade Prize Counter."
|
||||
req_tech = list("programming" = 2, "materials" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS=1000, "sacid"=20)
|
||||
build_path = /obj/item/weapon/circuitboard/prize_counter
|
||||
category = list("Misc. Machinery")
|
||||
Reference in New Issue
Block a user