From 954d0dadfab0c964544920cc688a17b824f327d0 Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Fri, 12 Feb 2016 00:32:21 -0500 Subject: [PATCH 1/7] Prize Counter WIP commit --- code/game/machinery/computer/arcade.dm | 2 +- code/game/objects/items/toys.dm | 241 ++++++------ .../objects/items/weapons/gift_wrappaper.dm | 2 +- .../objects/items/weapons/storage/boxes.dm | 13 +- .../objects/items/weapons/storage/wallets.dm | 65 +++- .../stool_bed_chair_nest/wheelchair.dm | 61 ++- code/modules/arcade/arcade_prize.dm | 71 +++- code/modules/arcade/prize_counter.dm | 197 ++++++++++ code/modules/arcade/prize_datums.dm | 346 ++++++++++++++++++ icons/obj/arcade.dmi | Bin 11361 -> 12445 bytes icons/obj/storage.dmi | Bin 78375 -> 77683 bytes icons/obj/wallets.dmi | Bin 0 -> 1957 bytes paradise.dme | 2 + 13 files changed, 865 insertions(+), 135 deletions(-) create mode 100644 code/modules/arcade/prize_counter.dm create mode 100644 code/modules/arcade/prize_datums.dm create mode 100644 icons/obj/wallets.dmi diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index b2af98e1b5a..ff62e54d06a 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -18,7 +18,7 @@ /obj/item/weapon/storage/fancy/crayons = 2, /obj/item/toy/spinningtoy = 2, /obj/item/toy/crossbow/tommygun = 2, - /obj/random/prize = 5, + /obj/random/mech = 5, /obj/item/toy/nuke = 2, /obj/item/toy/cards/deck = 2, /obj/random/carp_plushie = 2, diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 6a3493fc0ea..4f818d7c8b7 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -141,89 +141,87 @@ attack_verb = list("attacked", "struck", "hit") var/bullets = 5 - examine(mob/user) - ..(user) - if (bullets) - user << "\blue It is loaded with [bullets] foam darts!" +/obj/item/toy/crossbow/examine(mob/user) + ..(user) + if (bullets) + user << "\blue It is loaded with [bullets] foam darts!" - attackby(obj/item/I as obj, mob/user as mob, params) - if(istype(I, /obj/item/toy/ammo/crossbow)) - if(bullets <= 4) - user.drop_item() - qdel(I) - bullets++ - user << "\blue You load the foam dart into the crossbow." - else - usr << "\red It's already fully loaded." +/obj/item/toy/crossbow/attackby(obj/item/I as obj, mob/user as mob, params) + if(istype(I, /obj/item/toy/ammo/crossbow)) + if(bullets <= 4) + user.drop_item() + qdel(I) + bullets++ + user << "\blue You load the foam dart into the crossbow." + else + usr << "\red It's already fully loaded." - afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag) - if(!isturf(target.loc) || target == user) return - if(flag) return +/obj/item/toy/crossbow/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag) + if(!isturf(target.loc) || target == user) return + if(flag) return - if (locate (/obj/structure/table, src.loc)) - return - else if (bullets) - var/turf/trg = get_turf(target) - var/obj/effect/foam_dart_dummy/D = new/obj/effect/foam_dart_dummy(get_turf(src)) - bullets-- - D.icon_state = "foamdart" - D.name = "foam dart" - playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1) + if (locate (/obj/structure/table, src.loc)) + return + else if (bullets) + var/turf/trg = get_turf(target) + var/obj/effect/foam_dart_dummy/D = new/obj/effect/foam_dart_dummy(get_turf(src)) + bullets-- + D.icon_state = "foamdart" + D.name = "foam dart" + playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1) - for(var/i=0, i<6, i++) - if (D) - if(D.loc == trg) break - step_towards(D,trg) + for(var/i=0, i<6, i++) + if (D) + if(D.loc == trg) break + step_towards(D,trg) - for(var/mob/living/M in D.loc) - if(!istype(M,/mob/living)) continue - if(M == user) continue - D.visible_message("[M] was hit by the foam dart!") - new /obj/item/toy/ammo/crossbow(M.loc) - qdel(D) - return - - for(var/atom/A in D.loc) - if(A == user) continue - if(A.density) - new /obj/item/toy/ammo/crossbow(A.loc) - qdel(D) - - sleep(1) - - spawn(10) - if(D) - new /obj/item/toy/ammo/crossbow(D.loc) + for(var/mob/living/M in D.loc) + if(!istype(M,/mob/living)) continue + if(M == user) continue + D.visible_message("[M] was hit by the foam dart!") + new /obj/item/toy/ammo/crossbow(M.loc) qdel(D) + return - return - else if (bullets == 0) - user.Weaken(5) - user.visible_message("[] realized they were out of ammo and starting scrounging for some!") + for(var/atom/A in D.loc) + if(A == user) continue + if(A.density) + new /obj/item/toy/ammo/crossbow(A.loc) + qdel(D) + sleep(1) + spawn(10) + if(D) + new /obj/item/toy/ammo/crossbow(D.loc) + qdel(D) - attack(mob/M as mob, mob/user as mob) - src.add_fingerprint(user) + return + else if (bullets == 0) + user.Weaken(5) + user.visible_message("[] realized they were out of ammo and started scrounging for some!") + +/obj/item/toy/crossbow/attack(mob/M as mob, mob/user as mob) + src.add_fingerprint(user) // ******* Check - if (src.bullets > 0 && M.lying) + if (src.bullets > 0 && M.lying) - for(var/mob/O in viewers(M, null)) - if(O.client) - O.show_message(text("[] casually lines up a shot with []'s head and pulls the trigger!", user, M), 1, "You hear the sound of foam against skull.", 2) - O.show_message(text("\red [] was hit in the head by the foam dart!", M), 1) + for(var/mob/O in viewers(M, null)) + if(O.client) + O.show_message(text("[] casually lines up a shot with []'s head and pulls the trigger!", user, M), 1, "You hear the sound of foam against skull.", 2) + O.show_message(text("\red [] was hit in the head by the foam dart!", M), 1) - playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1) - new /obj/item/toy/ammo/crossbow(M.loc) - src.bullets-- - else if (M.lying && src.bullets == 0) - for(var/mob/O in viewers(M, null)) - if (O.client) O.show_message(text("[] casually lines up a shot with []'s head, pulls the trigger, then realizes they are out of ammo and drops to the floor in search of some!", user, M), 1, "You hear someone fall.", 2) - user.Weaken(5) - return + playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1) + new /obj/item/toy/ammo/crossbow(M.loc) + src.bullets-- + else if (M.lying && src.bullets == 0) + for(var/mob/O in viewers(M, null)) + if (O.client) O.show_message(text("[] casually lines up a shot with []'s head, pulls the trigger, then realizes they are out of ammo and drops to the floor in search of some!", user, M), 1, "You hear someone fall.", 2) + user.Weaken(5) + return /obj/item/toy/ammo/crossbow name = "foam dart" @@ -400,15 +398,15 @@ icon_state = "snappop" w_class = 1 - throw_impact(atom/hit_atom) - ..() - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - new /obj/effect/decal/cleanable/ash(src.loc) - src.visible_message("\red The [src.name] explodes!","\red You hear a snap!") - playsound(src, 'sound/effects/snap.ogg', 50, 1) - qdel(src) +/obj/item/toy/snappop/throw_impact(atom/hit_atom) + ..() + var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + s.set_up(3, 1, src) + s.start() + new /obj/effect/decal/cleanable/ash(src.loc) + src.visible_message("\red The [src.name] explodes!","\red You hear a snap!") + playsound(src, 'sound/effects/snap.ogg', 50, 1) + qdel(src) /obj/item/toy/snappop/Crossed(H as mob|obj) if((ishuman(H))) //i guess carp and shit shouldn't set them off @@ -429,13 +427,13 @@ /* * Mech prizes */ -/obj/item/toy/prize +/obj/item/toy/mech icon = 'icons/obj/toy.dmi' icon_state = "ripleytoy" var/cooldown = 0 //all credit to skasi for toy mech fun ideas -/obj/item/toy/prize/attack_self(mob/user as mob) +/obj/item/toy/mech/attack_self(mob/user as mob) if(cooldown < world.time - 8) user << "You play with [src]." playsound(user, 'sound/mecha/mechstep.ogg', 20, 1) @@ -450,46 +448,46 @@ return ..() -/obj/random/prize +/obj/random/mech name = "Random Mech Prize" desc = "This is a random prize" icon = 'icons/obj/toy.dmi' icon_state = "ripleytoy" -/obj/random/prize/item_to_spawn() +/obj/random/mech/item_to_spawn() return pick(subtypesof(/obj/item/toy/prize)) //exclude the base type. -/obj/item/toy/prize/ripley +/obj/item/toy/mech/ripley name = "toy ripley" desc = "Mini-Mecha action figure! Collect them all! 1/11." -/obj/item/toy/prize/fireripley +/obj/item/toy/mech/fireripley name = "toy firefighting ripley" desc = "Mini-Mecha action figure! Collect them all! 2/11." icon_state = "fireripleytoy" -/obj/item/toy/prize/deathripley +/obj/item/toy/mech/deathripley name = "toy deathsquad ripley" desc = "Mini-Mecha action figure! Collect them all! 3/11." icon_state = "deathripleytoy" -/obj/item/toy/prize/gygax +/obj/item/toy/mech/gygax name = "toy gygax" desc = "Mini-Mecha action figure! Collect them all! 4/11." icon_state = "gygaxtoy" -/obj/item/toy/prize/durand +/obj/item/toy/mech/durand name = "toy durand" desc = "Mini-Mecha action figure! Collect them all! 5/11." icon_state = "durandprize" -/obj/item/toy/prize/honk +/obj/item/toy/mech/honk name = "toy H.O.N.K." desc = "Mini-Mecha action figure! Collect them all! 6/11." icon_state = "honkprize" -/obj/item/toy/prize/marauder +/obj/item/toy/mech/marauder name = "toy marauder" desc = "Mini-Mecha action figure! Collect them all! 7/11." icon_state = "marauderprize" @@ -499,17 +497,17 @@ desc = "Mini-Mecha action figure! Collect them all! 8/11." icon_state = "seraphprize" -/obj/item/toy/prize/mauler +/obj/item/toy/mech/mauler name = "toy mauler" desc = "Mini-Mecha action figure! Collect them all! 9/11." icon_state = "maulerprize" -/obj/item/toy/prize/odysseus +/obj/item/toy/mech/odysseus name = "toy odysseus" desc = "Mini-Mecha action figure! Collect them all! 10/11." icon_state = "odysseusprize" -/obj/item/toy/prize/phazon +/obj/item/toy/mech/phazon name = "toy phazon" desc = "Mini-Mecha action figure! Collect them all! 11/11." icon_state = "phazonprize" @@ -923,54 +921,47 @@ obj/item/toy/cards/deck/syndicate/black var/timeleft = (cooldown - world.time) user << "Nothing happens, and '[round(timeleft/10)]' appears on a small display." - -/obj/item/toy/therapy_red - name = "red therapy doll" - desc = "A toy for therapeutic and recreational purposes. This one is red." +/obj/item/toy/therapy + name = "therapy doll" + desc = "A toy for therapeutic and recreational purposes." icon = 'icons/obj/weapons.dmi' icon_state = "therapyred" + item_state = "egg4" // It's the red egg in items_left/righthand + w_class = 1 + item_color = "red" + +/obj/item/toy/therapy/New() + ..() + icon_state = "therapy[item_color]" + UpdateDesc() + +/obj/item/toy/therapy/proc/UpdateDesc() + name = "[item_color] therapy doll" + desc += " This one is [item_color]." + +/obj/item/toy/therapy/red + item_color = "red" item_state = "egg4" // It's the red egg in items_left/righthand - w_class = 1 -/obj/item/toy/therapy_purple - name = "purple therapy doll" - desc = "A toy for therapeutic and recreational purposes. This one is purple." - icon = 'icons/obj/weapons.dmi' - icon_state = "therapypurple" +/obj/item/toy/therapy/purple + item_color = "purple" item_state = "egg1" // It's the magenta egg in items_left/righthand - w_class = 1 -/obj/item/toy/therapy_blue - name = "blue therapy doll" - desc = "A toy for therapeutic and recreational purposes. This one is blue." - icon = 'icons/obj/weapons.dmi' - icon_state = "therapyblue" +/obj/item/toy/therapy/blue + item_color = "blue" item_state = "egg2" // It's the blue egg in items_left/righthand - w_class = 1 -/obj/item/toy/therapy_yellow - name = "yellow therapy doll" - desc = "A toy for therapeutic and recreational purposes. This one is yellow." - icon = 'icons/obj/weapons.dmi' - icon_state = "therapyyellow" +/obj/item/toy/therapy/yellow + item_color = "yellow" item_state = "egg5" // It's the yellow egg in items_left/righthand - w_class = 1 -/obj/item/toy/therapy_orange - name = "orange therapy doll" - desc = "A toy for therapeutic and recreational purposes. This one is orange." - icon = 'icons/obj/weapons.dmi' - icon_state = "therapyorange" +/obj/item/toy/therapy/orange + item_color = "orange" item_state = "egg4" // It's the red one again, lacking an orange item_state and making a new one is pointless - w_class = 1 -/obj/item/toy/therapy_green - name = "green therapy doll" - desc = "A toy for therapeutic and recreational purposes. This one is green." - icon = 'icons/obj/weapons.dmi' - icon_state = "therapygreen" +/obj/item/toy/therapy/green + item_color = "green" item_state = "egg3" // It's the green egg in items_left/righthand - w_class = 1 /obj/item/weapon/toddler icon_state = "toddler" diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index a24733a3e83..8ca714d7666 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -83,7 +83,7 @@ /obj/item/toy/crossbow, /obj/item/weapon/gun/projectile/revolver/capgun, /obj/item/toy/katana, - /obj/random/prize, + /obj/random/mech, /obj/item/toy/spinningtoy, /obj/item/toy/sword, /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus, diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 685ddc04466..a898c7cca91 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -673,4 +673,15 @@ new /obj/item/weapon/lipstick/black(src) new /obj/item/weapon/lipstick/green(src) new /obj/item/weapon/lipstick/blue(src) - new /obj/item/weapon/lipstick/white(src) \ No newline at end of file + new /obj/item/weapon/lipstick/white(src) + +/obj/item/weapon/storage/box/foam_darts + name = "Foam Dart Pack" + desc = "Extra ammo for foam dart launchers. Contains 10 darts." + storage_slots = 10 + max_combined_w_class = 10 + +/obj/item/weapon/storage/box/foam_darts/New() + ..() + for(var/i=1; i <= storage_slots; i++) + new /obj/item/toy/ammo/crossbow(src) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 7e483b3ccbf..e34f9687d7e 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -1,7 +1,8 @@ /obj/item/weapon/storage/wallet - name = "wallet" - desc = "It can hold a few small and personal things." + name = "leather wallet" + desc = "Made from genuine leather, it is of the highest quality." storage_slots = 10 + icon = 'icons/obj/wallets.dmi' icon_state = "wallet" w_class = 2 can_hold = list( @@ -94,4 +95,62 @@ if(item2_type) new item2_type(src) if(item3_type) - new item3_type(src) \ No newline at end of file + new item3_type(src) + +////////////////////////////////////// +// Color Wallets // +////////////////////////////////////// + +/obj/item/weapon/storage/wallet/color + name = "cheap wallet" + desc = "A cheap wallet from the arcade." + storage_slots = 5 //smaller storage than normal wallets + +/obj/item/weapon/storage/wallet/color/New() + ..() + if(!item_color) + var/color_wallet = pick(subtypesof(/obj/item/weapon/storage/wallet/color)) + new color_wallet(src.loc) + qdel(src) + return + UpdateDesc() + +/obj/item/weapon/storage/wallet/color/proc/UpdateDesc() + name = "cheap [item_color] wallet" + desc = "A cheap, [item_color] wallet from the arcade." + icon_state = "[item_color]_wallet" + +/obj/item/weapon/storage/wallet/color/update_icon() + if(front_id) + switch(front_id.icon_state) + if("id") + icon_state = "[item_color]_walletid" + return + if("silver") + icon_state = "[item_color]_walletid_silver" + return + if("gold") + icon_state = "[item_color]_walletid_gold" + return + if("centcom") + icon_state = "[item_color]_walletid_centcom" + return + icon_state = "[item_color]_wallet" + +/obj/item/weapon/storage/wallet/color/blue + item_color = "blue" + +/obj/item/weapon/storage/wallet/color/red + item_color = "red" + +/obj/item/weapon/storage/wallet/color/yellow + item_color = "yellow" + +/obj/item/weapon/storage/wallet/color/green + item_color = "green" + +/obj/item/weapon/storage/wallet/color/pink + item_color = "pink" + +/obj/item/weapon/storage/waller/color/brown + item_color = "brown" diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index c456cb9c9a6..1bacc123e01 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -89,4 +89,63 @@ victim.apply_effect(6, STUTTER, 0) victim.take_organ_damage(10) - occupant.visible_message("[occupant] crashed into \the [A]!") \ No newline at end of file + occupant.visible_message("[occupant] crashed into \the [A]!") + +/obj/structure/stool/bed/chair/wheelchair/bike + name = "bicycle" + desc = "Two wheels of FURY!" + //placeholder until i get a bike sprite + icon = 'icons/vehicles/motorcycle.dmi' + icon_state = "motorcycle_4dir" + +/obj/structure/stool/bed/chair/wheelchair/bike/relaymove(mob/user, direction) + if(propelled) + return 0 + + if(!Process_Spacemove(direction) || !has_gravity(src.loc) || !isturf(loc)) //bikes in space. + return 0 + + if(world.time < move_delay) + return + + var/calculated_move_delay + calculated_move_delay = 0 //bikes are infact sport bikes + + if(buckled_mob) + if(buckled_mob.incapacitated()) + unbuckle_mob() //if the rider is incapacitated, unbuckle them (they can't balance so they fall off) + return 0 + + var/mob/living/thedriver = user + var/mob_delay = thedriver.movement_delay() + if(mob_delay > 0) + calculated_move_delay += mob_delay + + if(ishuman(buckled_mob)) + var/mob/living/carbon/human/driver = user + var/obj/item/organ/external/l_hand = driver.get_organ("l_hand") + var/obj/item/organ/external/r_hand = driver.get_organ("r_hand") + if((!l_hand || (l_hand.status & ORGAN_DESTROYED)) && (!r_hand || (r_hand.status & ORGAN_DESTROYED))) + calculated_move_delay += 0.5 //I can ride my bike with no handlebars... (but it's slower) + + for(var/organ_name in list("l_leg","r_leg","l_foot","r_foot")) + var/obj/item/organ/external/E = driver.get_organ(organ_name) + if(!E || (E.status & ORGAN_DESTROYED)) + return 0 //Bikes need both feet/legs to work. missing even one makes it so you can't ride the bike + else if(E.status & ORGAN_SPLINTED) + calculated_move_delay += 0.5 + else if(E.status & ORGAN_BROKEN) + calculated_move_delay += 1.5 + + move_delay = world.time + move_delay += calculated_move_delay + + if(!buckled_mob.Move(get_step(buckled_mob, direction), direction)) + loc = buckled_mob.loc //we gotta go back + last_move = buckled_mob.last_move + inertia_dir = last_move + buckled_mob.inertia_dir = last_move + . = 0 + + else + . = 1 \ No newline at end of file diff --git a/code/modules/arcade/arcade_prize.dm b/code/modules/arcade/arcade_prize.dm index 960ead4a0b6..30bb457e196 100644 --- a/code/modules/arcade/arcade_prize.dm +++ b/code/modules/arcade/arcade_prize.dm @@ -1,3 +1,7 @@ +/*Contains: +* Prize balls +* Prize tickets +*/ /obj/item/toy/prizeball name = "prize ball" @@ -5,6 +9,7 @@ icon = 'icons/obj/arcade.dmi' icon_state = "prizeball_1" var/opening = 0 + var/possible_contents = list(/obj/random/carp_plushie, /obj/random/plushie, /obj/random/figure, /obj/item/toy/eight_ball, /obj/item/stack/tickets) /obj/item/toy/prizeball/New() ..() @@ -17,8 +22,68 @@ playsound(src.loc, 'sound/items/bubblewrap.ogg', 30, 1, extrarange = -4, falloff = 10) icon_state = "prizeconfetti" src.color = pick(random_color_list) - var/prize_inside = pick(/obj/random/carp_plushie, /obj/random/plushie, /obj/random/figure, /obj/item/toy/eight_ball) //will add ticket bundles later + var/prize_inside = pick(possible_contents) spawn(10) user.unEquip(src) - new prize_inside(user.loc) - qdel(src) \ No newline at end of file + if(istype(/obj/item/stack)) + var/amount = pick(5, 10, 15, 25, 50) + new prize_inside(user.loc, amount) + else + new prize_inside(user.loc) + qdel(src) + +/obj/item/toy/prizeball/mech + name = "mecha figure capsule" + desc = "Contains one collectible mecha figure!" + possible_contents = list(/obj/random/mech) + +/obj/item/toy/prizeball/carp_plushie + name = "carp plushie capsule" + desc = "Contains one space carp plushie!" + possible_contents = list(/obj/random/carp_plushie) + +/obj/item/toy/prizeball/plushie + name = "animal plushie capsule" + desc = "Contains one cuddly animal plushie!" + possible_contents = list(/obj/random/plushie) + +/obj/item/toy/prizeball/figure + name = "action figure capsule" + desc = "Contains one action figure!" + possible_contents = list(/obj/random/figure) + +/obj/item/toy/prizeball/therapy + name = "therapy doll capsule" + desc = "Contains one squishy therapy doll." + possible_contents = subtypesof(/obj/item/toy/therapy) + +/obj/item/stack/tickets + name = "prize ticket" + desc = "Prize tickets from the arcade. Exchange them for fabulous prizes!" + singular_name = "prize ticket" + icon = 'icons/obj/arcade.dmi' + icon_state = "tickets_1" + force = 1 + throw_force = 1 + throw_speed = 1 + throw_range = 1 + w_class = 1.0 + max_amount = 9999 //Dang that's a lot of tickets + +/obj/item/stack/tickets/New(var/loc, var/amount=null) + ..() + update_icon() + +/obj/item/stack/tickets/attack_self(mob/user as mob) + return + +/obj/item/stack/tickets/update_icon() + var/amount = get_amount() + if((amount >= 75)) + icon_state = "tickets_4" + else if(amount >=25) + icon_state = "tickets_3" + else if(amount >= 4) + icon_state = "tickets_2" + else + icon_state = "tickets_1" \ No newline at end of file diff --git a/code/modules/arcade/prize_counter.dm b/code/modules/arcade/prize_counter.dm new file mode 100644 index 00000000000..a8697956dc2 --- /dev/null +++ b/code/modules/arcade/prize_counter.dm @@ -0,0 +1,197 @@ + +/obj/machinery/prize_counter + name = "Prize Counter" + desc = "A machine which exchanges tickets for a variety of fabulous prizes!" + icon = 'icons/obj/arcade.dmi' + icon_state = "prize_counter-on" + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 40 + var/tickets = 0 + var/prize_tier = 1 //Increased by matter bin rating, unlocks more prize options per tier + +/obj/machinery/prize_counter/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/prize_counter(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/prize_counter/RefreshParts() + 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 += {" + + + [itemID] + + +

[item.name]

+

[item.desc]

+ + "} + if(prize_tier >= item.tier_unlocked) + dat += {" + + [item.cost] Tickets + + + "} + else + dat += {" + + LOCKED. + + + "} + return dat + +/obj/machinery/prize_counter/attackby(var/obj/item/O as obj, var/mob/user as mob, params) + if(istype(O, /obj/item/stack/tickets)) + var/obj/item/stack/tickets/T = O + tickets += T.amount + qdel(T) + return + if(istype(O, /obj/item/weapon/screwdriver) && anchored) + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + panel_open = !panel_open + user << "You [panel_open ? "open" : "close"] the maintenance panel." + update_icon() + return + if(panel_open) + if(istype(O, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, O) + if(component_parts && istype(O, /obj/item/weapon/crowbar)) + default_deconstruction_crowbar(O) + +/obj/machinery/prize_counter/attack_hand(mob/user as mob) + if(..()) + return + interact(user) + +/obj/machinery/prize_counter/interact(mob/user as mob) + user.set_machine(src) + add_fingerprint(user) + + if(stat & (BROKEN|NOPOWER)) + return + + var/dat = {" + + + Arcade Ticket Exchange + + + +

Tickets: [tickets] | Eject Tickets

+

Arcade Ticket Exchange

+

+ Exchange that pile of tickets for a pile of cool prizes! +

+

Available Prizes:

+ + + + + + + + "} + dat += UpdateListings() + dat += {" + +
#Name/DescriptionPrice
+ +"} + user << browse(dat, "window=prize_counter") + onclose(user, "prize_counter") + return + +/obj/machinery/prize_counter/Topic(href, href_list) + if(..()) + return 1 + + src.add_fingerprint(usr) + + if(href_list["eject"]) + print_tickets + + if (href_list["buy"]) + var/itemID = text2num(href_list["buy"]) + var/datum/prize_item/item = global_prizes.prizes[itemID] + var/sure = alert(usr,"Are you sure you wish to purchase [item.name] for [item.cost] tickets?","You sure?","Yes","No") in list("Yes","No") + if(sure=="No") + updateUsrDialog() + return + if(!global_prizes.PlaceOrder(src, itemID)) + usr << "Unable to complete the exchange." + else + usr << "You've successfully purchased the item." + + src.updateUsrDialog() + return + +/obj/machinery/prize_counter/proc/print_tickets() + if(!tickets) + return + if(tickets >= 9999) + new /obj/item/stack/tickets(src.loc, 9999) //max stack size + tickets -= 9999 + print_tickets() + else + new /obj/item/stack/tickets(src.loc, tickets) \ No newline at end of file diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm new file mode 100644 index 00000000000..0b039e45537 --- /dev/null +++ b/code/modules/arcade/prize_datums.dm @@ -0,0 +1,346 @@ + +var/global/datum/prizes/global_prizes = new + +/datum/prizes + var/list/datum/prize_item/prizes = list() + +/datum/prizes/New() + for(var/itempath in subtypesof(/datum/prize_item)) + prizes += new itempath() + +/datum/prizes/proc/PlaceOrder(var/obj/machinery/prize_counter/prize_counter, var/itemID) + if(!prize_counter) + return 0 + var/datum/prize_item/item = global_prizes.prizes[itemID] + if(!item) + return 0 + if(prize_counter.tickets >= item.cost) + item.deliver(prize_counter) + prize_counter.visible_message("Enjoy your prize!") + return 1 + else + prize_counter.visible_message("Not enough tickets!") + return 0 + +////////////////////////////////////// +// /datum/prize_item // +////////////////////////////////////// + +/datum/prize_item + var/name = "Prize" + var/desc = "This shouldn't show up..." + var/typepath = /obj/item/toy/prizeball + 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 // +////////////////////////////////////// + +/datum/prize_item/balloon + name = "Water Balloon" + desc = "A thin balloon for throwing liquid at people." + typepath = /obj/item/toy/balloon + cost = 10 + tier_unlocked = 1 + +/datum/prize_item/crayons + name = "Box of Crayons" + desc = "A six-pack of crayons, just like back in kindergarten." + typepath = /obj/item/weapon/storage/fancy/crayons + cost = 35 + tier_unlocked = 1 + +/datum/prize_item/snap-pops + name = "Snap-Pops" + desc = "A box of exploding snap-pop fireworks." + typepath = /obj/item/weapon/storage/box/snappops + cost = 20 + tier_unlocked = 1 + +/datum/prize_item/spinningtoy + name = "Spinning Toy" + desc = "Looks like an authentic Singularity!" + typepath = /obj/item/toy/spinningtoy + cost = 15 + tier_unlocked = 1 + +/datum/prize_item/blinktoy + name = "Blink toy" + desc = "Blink. Blink. Blink." + typepath = /obj/item/toy/blink + cost = 15 + tier_unlocked = 1 + +/datum/prize_item/dice + name = "Dice set" + desc = "A set of assorted dice." + typepath = /obj/item/weapon/storage/box/dice + cost = 20 + tier_unlocked = 1 + +/datum/prize_item/cards + name = "Deck of cards" + desc = "Anyone fancy a game of 52-card Pickup?" + typepath = obj/item/toy/cards/deck + cost = 25 + tier_unlocked = 1 + +/datum/prize_item/wallet + name = "Colored Wallet" + desc = "Brightly colored and big enough for standard issue ID cards." + typepath = /obj/item/weapon/storage/wallet/color + cost = 50 + tier_unlocked = 1 + +/datum/prize_item/pet_rock + name = "pet rock" + desc = "A pet of your very own!" + typepath = /obj/item/toy/pet_rock + cost = 80 + tier_unlocked = 1 + +/datum/prize_item/foam_darts + name = "Pack of Foam Darts" + desc = "A refill pack of 10 foam darts." + typepath = /obj/item/weapon/storage/box/foam_darts + cost = 20 + tier_unlocked = 1 + +/datum/prize_item/minigibber + name = "Minigibber Toy" + desc = "A model of the station gibber. Probably shouldn't stick your fingers in it." + typepath = /obj/item/toy/minigibber + cost = 60 + tier_unlocked = 1 + +/datum/prize_item/id_sticker + name = "Prisoner ID Sticker" + desc = "A sticker that can make any ID look like a prisoner ID." + typepath = /obj/item/weapon/id_decal/prisoner + cost = 50 + tier_unlocked = 1 + +/datum/prize_item/id_sticker/silver + name = "Silver ID Sticker" + desc = "A sticker that can make any ID look like a silver ID." + typepath = /obj/item/weapon/id_decal/silver + +/datum/prize_item/id_sticker/gold + name = "Gold ID Sticker" + 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 + 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 + +/datum/prize_item/id_sticker/emag + name = "Suspicious ID Sticker" + desc = "A sticker that can make any ID look like something suspicious..." + typepath = /obj/item/weapon/id_decal/emag + +////////////////////////////////////// +// Tier 2 Prizes // +////////////////////////////////////// + +/datum/prize_item/carp_plushie + name = "Random Carp Plushie" + desc = "A colorful fish-shaped plush toy." + typepath = /obj/item/toy/prizeball/carp_plushie + cost = 75 + tier_unlocked = 2 + +/datum/prize_item/therapy_doll + name = "Random Therapy Doll" + desc = "A therapeutic doll for relieving stress without being charged with assault." + typepath = /obj/item/toy/prizeball/therapy + cost = 60 + tier_unlocked = 2 + +/datum/prize_item/plushie + name = "Random Animal Plushie" + desc = "A colorful animal-shaped plush toy." + typepath = /obj/item/toy/prizeball/plushie + cost = 75 + tier_unlocked = 2 + +/datum/prize_item/mech_toy + name = "Random Mecha" + desc = "A random mecha figure, collect all 11!" + typepath = /obj/item/toy/prizeball/mech + cost = 75 + tier_unlocked = 2 + +/datum/prize_item/action_figure + name = "Random Action Figure" + desc = "A random action figure, collect them all!" + typepath = /obj/item/toy/prizeball/figure + cost = 75 + tier_unlocked = 2 + +/datum/prize_item/eight_ball + name = "Magic Eight Ball" + desc = "A mystical ball that can divine the future!" + typepath = /obj/item/toy/eight_ball + cost = 40 + tier_unlocked = 2 + +/datum/prize_item/tacticool + name = "Tacticool Turtleneck" + desc = "A cool-looking turtleneck." + typepath = /obj/item/clothing/under/syndicate/tacticool + cost = 90 + tier_unlocked = 2 + +/datum/prize_item/crossbow + name = "Foam Dart Crossbow" + desc = "A toy crossbow that fires foam darts." + typepath = /obj/item/toy/crossbow + cost = 100 + tier_unlocked = 2 + +/datum/prize_item/toy_xeno + name = "Xeno Action Figure" + desc = "A lifelike replica of the horrific xeno scourge." + typepath = /obj/item/toy/toy_xeno + cost = 80 + tier_unlocked = 2 + +/datum/prize_item/fakespell + name = "Fake Spellbook" + desc = "Perform magic! Astound your friends! Get mistaken for an enemy of the corporation!" + typepath = /obj/item/weapon/spellbook/oneuse/fake_gib + cost = 100 + tier_unlocked = 2 + +/datum/prize_item/capgun + name = "Capgun Revolver" + desc = "Do you feel lucky... punk?" + typepath = /obj/item/weapon/gun/projectile/revolver/capgun + cost = 75 + tier_unlocked = 2 + +////////////////////////////////////// +// Tier 3 Prizes // +////////////////////////////////////// + +/datum/prize_item/magic_conch + name = "Magic Conch Shell" + desc = "All hail the magic conch!" + typepath = /obj/item/toy/eight_ball/conch + cost = 100 + tier_unlocked = 3 + +/datum/prize_item/flash + name = "Toy Flash" + desc = "AUGH! MY EYES!" + typepath = /obj/item/toy/flash + cost = 50 + tier_unlocked = 3 + +/datum/prize_item/foamblade + name = "Foam Armblade" + desc = "Perfect for reenacting space horror holo-vids." + typepath = /obj/item/toy/foamblade + cost = 100 + tier_unlocked = 3 + +/datum/prize_item/minimeteor + name = "Mini-Meteor" + desc = "Meteors have been detected on a collision course with your fun times!" + typepath = /obj/item/toy/minimeteor + cost = 50 + tier_unlocked = 3 + +/datum/prize_item/redbutton + name = "Shiny Red Button" + desc = "PRESS IT!" + typepath = /obj/item/toy/redbutton + cost = 100 + tier_unlocked = 3 + +/datum/prize_item/owl + name = "Owl Action Figure" + desc = "Remember: heroes don't grief!" + typepath = /obj/item/toy/owl + cost = 125 + tier_unlocked = 3 + +/datum/prize_item/griffin + name = "Griffin Action Figure" + desc = "If you can't be the best, you can always be the WORST." + typepath = /obj/item/toy/griffin + cost = 125 + tier_unlocked = 3 + +/datum/prize_item/AI + name = "Toy AI Unit" + desc = "Law 1: Maximize fun for crew." + typepath = /obj/item/toy/AI + cost = 75 + tier_unlocked = 3 + +/datum/prize_item/tommygun + name = "Tommygun" + desc = "A replica tommygun that fires foam darts." + typepath = /obj/item/toy/crossbow/tommygun + cost = 175 + tier_unlocked = 3 + +/datum/prize_item/esword + name = "Toy Energy Sword" + desc = "A plastic replica of an energy blade." + typepath = /obj/item/toy/sword + cost = 150 + tier_unlocked = 3 + +/datum/prize_item/blobhat + name = "Blob Hat" + desc = "There's... something... on your head..." + typepath = /obj/item/clothing/head/blob + cost = 125 + tier_unlocked = 3 + +/datum/prize_item/nuke + name = "Nuclear Fun Device" + desc = "Annihilate boredom with an explosion of excitement!" + typepath = /obj/item/toy/nuke + cost = 100 + tier_unlocked = 3 + +////////////////////////////////////// +// Tier 4 Prizes // +////////////////////////////////////// + +/datum/prize_item/chainsaw + name = "Toy Chainsaw" + desc = "A full-scale model chainsaw, based on that massacre in Space Texas." + typepath = /obj/item/weapon/twohanded/toy/chainsaw + cost = 200 + tier_unlocked = 4 + +/datum/prize_item/spacesuit + name = "Fake Spacesuit" + desc = "A replica spacesuit. Not actually spaceworthy." + typepath = /obj/item/weapon/storage/box/fakesyndiesuit + cost = 180 + tier_unlocked = 4 + +/datum/prize_item/fakespace + name = "Space Carpet" + desc = "A stack of carpeted floor tiles that resemble space." + typepath = /obj/item/stack/tile/fakespace/loaded + cost = 150 + tier_unlocked = 4 + +/datum/prize_item/bike + name = "Awesome Bike!" + desc = "WOAH." + typepath = /obj/structure/stool/bed/chair/wheelchair/bike + cost = 10000 //max stack + 1 tickets + tier_unlocked = 4 diff --git a/icons/obj/arcade.dmi b/icons/obj/arcade.dmi index 50f8e800273838e90934cc2133beb8601e5c7973..5fdaeb7c68229207901f707248d45e891ed83456 100644 GIT binary patch literal 12445 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 XViFgkH4OaQ0Z3C#PqpHK&FlXMuTxk* literal 11361 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 diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 111bc8d2061b0289f90afbda82e56b4d7212c603..dc7e9b300544083774b4ee0ad391f159447fd179 100644 GIT binary patch delta 18493 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 diff --git a/icons/obj/wallets.dmi b/icons/obj/wallets.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0a96bc16f5c86896236b4e801fcd89db5a223f48 GIT binary patch literal 1957 zcmaJ?X;c$g8m$m9-5_8_#05;8=`#cr#W4a3X#&XFLO=rz0#Q8dDk2bMH3_2F7-eas zH3&q329-r^1QH~IA~b?5-4PWC5FGF_q(@FWqOfZ zbhNf=K@gE(D3juo&|csAq)ni zOF)7q4LW>Sw1YqD5WIwatM`NF zJ>r+zr(}d>vf2912+l77UVD98&K$BRP}--R#AcMT)>zYGbPz1Zmc~Iof+C7S0wiNke<|Gp1rcYIYVyg$9ss zdo@0P55!^ecgFR-ndyRkSyYwl;a@$CZL^BHaCcJW?W1S+8}-b8H>Tg_5~EmgiE*?~ zr5gQSX=hZFI!Udn7edN~KVqV$vwu(4);^ohHu4A|wIbcaYvE(ywDaQPVq8J5`EK(E zHM`9xsq&ebQzbkzVf$KITexuAAhtx37jdyXA)yiad1Pcp!^E~(R-?Ur2uSZ}+i`aY zaUo?AtBx%XHO&l|5nJvd2?Rx>e0jdFrHyy{OQ3TWXu6{m5t}nt>=ELRxVzJ6Skt zyxh*W=%oc8YKlA8-9|PNYZfnwC~;zM!@-J2?_X@W~f#AS% z^8;&Xm%{BhsuO|O7AgI8^UgC0Vp}!94H<&$SRY2wmSkX5gcu@TpFwU0*|G%TARr55 zAY)|^loCv~`V{r?uz=%*(2V9c8>>jW4L0tpU!bUZ?O+g%;DgqVC@1^vsDdcG%Rfd0)uK(93 zt68Klz0Sdj*!F5{fM(m)pFiFosytGy2))^*Mk~Md7TG0kdpV&7mFO1+k(l0l{ zH-h`=_9A%9MuF^@Bu2H4Ld)gsxPsXI3~UfA>y0-;u>7^c$21xkV0xfKU7C?NUPR`Sib(&Vw}x z%GShsw#0x%X!-4mb)P9LVxcprB1hIbbaLYObmQaz?bxvj9`fc(>Yn1+DJA;3!HI@c zY{FO+?C+p@`^uc(h$ZSnE8SqLf^V{#=~b=ktnOJAQwmEGKNZDEFyX%IJ!O*NlExMEm~ zihVj-b~$!@3N}=k0y}#3HR3Al=-<&+JFC_?Il?ntik66V>k?59RqV;X)4iH$i9xOc z*|o#k?g1RyiOvSHtA*n3kE%;m(Qw2UtUoIec-ECsH!znC)py7y+(3=ubNg0W6JD_gpvqh{O<4;%18@$` Date: Sun, 14 Feb 2016 01:58:36 -0500 Subject: [PATCH 2/7] Arcade Prize Counter --- code/game/machinery/computer/arcade.dm | 65 ++------- code/game/machinery/constructable_frame.dm | 15 +- code/game/objects/items/toys.dm | 133 +++++++++--------- .../stool_bed_chair_nest/wheelchair.dm | 9 +- code/modules/arcade/arcade_prize.dm | 6 +- code/modules/arcade/prize_counter.dm | 85 ++++++----- code/modules/arcade/prize_datums.dm | 15 +- .../research/designs/machine_designs.dm | 11 +- icons/obj/arcade.dmi | Bin 12445 -> 15583 bytes icons/vehicles/motorcycle.dmi | Bin 4017 -> 4885 bytes 10 files changed, 171 insertions(+), 168 deletions(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index ff62e54d06a..445c0b743ab 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -6,41 +6,7 @@ icon_keyboard = null icon_screen = "invaders" light_color = "#00FF00" - - var/list/prizes = list( /obj/item/weapon/storage/box/snappops = 2, - /obj/item/toy/AI = 2, - /obj/item/clothing/under/syndicate/tacticool = 2, - /obj/item/toy/blink = 2, - /obj/item/weapon/storage/box/fakesyndiesuit = 2, - /obj/item/toy/sword = 2, - /obj/item/weapon/gun/projectile/revolver/capgun = 2, - /obj/item/toy/crossbow = 2, - /obj/item/weapon/storage/fancy/crayons = 2, - /obj/item/toy/spinningtoy = 2, - /obj/item/toy/crossbow/tommygun = 2, - /obj/random/mech = 5, - /obj/item/toy/nuke = 2, - /obj/item/toy/cards/deck = 2, - /obj/random/carp_plushie = 2, - /obj/item/toy/minimeteor = 2, - /obj/item/toy/redbutton = 2, - /obj/item/toy/owl = 2, - /obj/item/toy/griffin = 2, - /obj/item/clothing/head/blob = 2, - /obj/item/weapon/id_decal/gold = 2, - /obj/item/weapon/id_decal/silver = 2, - /obj/item/weapon/id_decal/prisoner = 2, - /obj/item/weapon/id_decal/centcom = 2, - /obj/item/weapon/id_decal/emag = 2, - /obj/item/weapon/spellbook/oneuse/fake_gib = 2, - /obj/item/toy/foamblade = 2, - /obj/item/toy/flash = 2, - /obj/item/toy/minigibber = 2, - /obj/item/toy/toy_xeno = 2, - /obj/random/figure = 16, - /obj/random/plushie = 7, - /obj/item/stack/tile/fakespace/loaded = 2, - ) + var/prize = /obj/item/stack/tickets /obj/machinery/computer/arcade/power_change() ..() @@ -56,28 +22,22 @@ qdel(src) -/obj/machinery/computer/arcade/proc/prizevend() +/obj/machinery/computer/arcade/proc/prizevend(var/score) if(!contents.len) - var/prizeselect = pickweight(prizes) - new prizeselect(src.loc) - - if(istype(prizeselect, /obj/item/weapon/gun/projectile/revolver/capgun)) //Ammo comes with the gun - new /obj/item/ammo_box/caps(src.loc) - - else if(istype(prizeselect, /obj/item/clothing/suit/syndicatefake)) //Helmet is part of the suit - new /obj/item/clothing/head/syndicatefake(src.loc) - + var/prize_amount + if(score) + prize_amount = score + else + prize_amount = rand(1, 10) + new prize(src.loc, prize_amount) else var/atom/movable/prize = pick(contents) prize.loc = src.loc /obj/machinery/computer/arcade/emp_act(severity) ..(severity) - if(stat & (NOPOWER|BROKEN)) return - - var/empprize = null var/num_of_prizes = 0 switch(severity) if(1) @@ -85,8 +45,7 @@ if(2) num_of_prizes = rand(0,2) for(var/i = num_of_prizes; i > 0; i--) - empprize = pickweight(prizes) - new empprize(src.loc) + prizevend() explosion(src.loc, -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes) @@ -231,7 +190,8 @@ emagged = 0 else feedback_inc("arcade_win_normal") - prizevend() + var/score = src.player_hp + player_mp + 5 + prizevend(score) else if (emagged && (turtle >= 4)) var/boomamt = rand(5,10) @@ -988,7 +948,8 @@ message_admins("[key_name_admin(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") log_game("[key_name(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") else - prizevend() + var/score = alive + round(food/2) + round(fuel/5) + engine + hull + electronics - lings_aboard + prizevend(score) emagged = 0 name = "The Orion Trail" desc = "Learn how our ancestors got to Orion, and have fun in the process!" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index f4c6cc90c57..c62c8131f25 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -844,7 +844,18 @@ obj/item/weapon/circuitboard/rdserver board_type = "machine" origin_tech = "programming=2" req_components = list( - /obj/item/weapon/stock_parts.matter_bin = 1, + /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 5, - /obj/item/stack/sheet/glass = 1) \ No newline at end of file + /obj/item/stack/sheet/glass = 1) + +/obj/item/weapon/circuitboard/prize_counter + name = "circuit board (Prize Counter)" + build_path = /obj/machinery/prize_counter + board_type = "machine" + origin_tech = "programming=2;materials=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/cable_coil = 1) \ No newline at end of file diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 4f818d7c8b7..e6626477d8f 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -200,7 +200,9 @@ return else if (bullets == 0) user.Weaken(5) - user.visible_message("[] realized they were out of ammo and started scrounging for some!") + user.visible_message("[] realized they were out of ammo and starting scrounging for some!") + + /obj/item/toy/crossbow/attack(mob/M as mob, mob/user as mob) src.add_fingerprint(user) @@ -277,27 +279,27 @@ flags = NOSHIELD attack_verb = list("attacked", "struck", "hit") - attack_self(mob/user as mob) - src.active = !( src.active ) - if (src.active) - user << "\blue You extend the plastic blade with a quick flick of your wrist." - playsound(user, 'sound/weapons/saberon.ogg', 50, 1) - src.icon_state = "swordblue" - src.item_state = "swordblue" - src.w_class = 4 - else - user << "\blue You push the plastic blade back down into the handle." - playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) - src.icon_state = "sword0" - src.item_state = "sword0" - src.w_class = 2 +/obj/item/toy/sword/attack_self(mob/user as mob) + src.active = !( src.active ) + if (src.active) + user << "\blue You extend the plastic blade with a quick flick of your wrist." + playsound(user, 'sound/weapons/saberon.ogg', 50, 1) + src.icon_state = "swordblue" + src.item_state = "swordblue" + src.w_class = 4 + else + user << "\blue You push the plastic blade back down into the handle." + playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) + src.icon_state = "sword0" + src.item_state = "sword0" + src.w_class = 2 - if(istype(user,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - H.update_inv_l_hand() - H.update_inv_r_hand() - src.add_fingerprint(user) - return + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + src.add_fingerprint(user) + return // Copied from /obj/item/weapon/melee/energy/sword/attackby /obj/item/toy/sword/attackby(obj/item/weapon/W, mob/living/user, params) @@ -372,21 +374,15 @@ w_class = 1 - throw_impact(atom/hit_atom) - ..() - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - new /obj/effect/decal/cleanable/ash(src.loc) - src.visible_message("\red The [src.name] explodes!","\red You hear a bang!") - - - playsound(src, 'sound/effects/snap.ogg', 50, 1) - qdel(src) - - - - +/obj/item/toy/snappop/virus/throw_impact(atom/hit_atom) + ..() + var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + s.set_up(3, 1, src) + s.start() + new /obj/effect/decal/cleanable/ash(src.loc) + src.visible_message("\red The [src.name] explodes!","\red You hear a bang!") + playsound(src, 'sound/effects/snap.ogg', 50, 1) + qdel(src) /* * Snap pops @@ -427,13 +423,13 @@ /* * Mech prizes */ -/obj/item/toy/mech +/obj/item/toy/prize icon = 'icons/obj/toy.dmi' icon_state = "ripleytoy" var/cooldown = 0 //all credit to skasi for toy mech fun ideas -/obj/item/toy/mech/attack_self(mob/user as mob) +/obj/item/toy/prize/attack_self(mob/user as mob) if(cooldown < world.time - 8) user << "You play with [src]." playsound(user, 'sound/mecha/mechstep.ogg', 20, 1) @@ -457,37 +453,37 @@ /obj/random/mech/item_to_spawn() return pick(subtypesof(/obj/item/toy/prize)) //exclude the base type. -/obj/item/toy/mech/ripley +/obj/item/toy/prize/ripley name = "toy ripley" desc = "Mini-Mecha action figure! Collect them all! 1/11." -/obj/item/toy/mech/fireripley +/obj/item/toy/prize/fireripley name = "toy firefighting ripley" desc = "Mini-Mecha action figure! Collect them all! 2/11." icon_state = "fireripleytoy" -/obj/item/toy/mech/deathripley +/obj/item/toy/prize/deathripley name = "toy deathsquad ripley" desc = "Mini-Mecha action figure! Collect them all! 3/11." icon_state = "deathripleytoy" -/obj/item/toy/mech/gygax +/obj/item/toy/prize/gygax name = "toy gygax" desc = "Mini-Mecha action figure! Collect them all! 4/11." icon_state = "gygaxtoy" -/obj/item/toy/mech/durand +/obj/item/toy/prize/durand name = "toy durand" desc = "Mini-Mecha action figure! Collect them all! 5/11." icon_state = "durandprize" -/obj/item/toy/mech/honk +/obj/item/toy/prize/honk name = "toy H.O.N.K." desc = "Mini-Mecha action figure! Collect them all! 6/11." icon_state = "honkprize" -/obj/item/toy/mech/marauder +/obj/item/toy/prize/marauder name = "toy marauder" desc = "Mini-Mecha action figure! Collect them all! 7/11." icon_state = "marauderprize" @@ -497,17 +493,17 @@ desc = "Mini-Mecha action figure! Collect them all! 8/11." icon_state = "seraphprize" -/obj/item/toy/mech/mauler +/obj/item/toy/prize/mauler name = "toy mauler" desc = "Mini-Mecha action figure! Collect them all! 9/11." icon_state = "maulerprize" -/obj/item/toy/mech/odysseus +/obj/item/toy/prize/odysseus name = "toy odysseus" desc = "Mini-Mecha action figure! Collect them all! 10/11." icon_state = "odysseusprize" -/obj/item/toy/mech/phazon +/obj/item/toy/prize/phazon name = "toy phazon" desc = "Mini-Mecha action figure! Collect them all! 11/11." icon_state = "phazonprize" @@ -924,44 +920,55 @@ obj/item/toy/cards/deck/syndicate/black /obj/item/toy/therapy name = "therapy doll" desc = "A toy for therapeutic and recreational purposes." - icon = 'icons/obj/weapons.dmi' icon_state = "therapyred" - item_state = "egg4" // It's the red egg in items_left/righthand + item_state = "egg4" w_class = 1 - item_color = "red" + var/cooldown = 0 /obj/item/toy/therapy/New() - ..() - icon_state = "therapy[item_color]" - UpdateDesc() + if(item_color) + name = "[item_color] therapy doll" + desc += " This one is [item_color]." + icon_state = "therapy[item_color]" -/obj/item/toy/therapy/proc/UpdateDesc() - name = "[item_color] therapy doll" - desc += " This one is [item_color]." +/obj/item/toy/therapy/attack_self(mob/user) + if(cooldown < world.time - 8) + user << "You relieve some stress with /the [src]." + playsound(user, 'sound/items/squeaktoy.ogg', 20, 1) + cooldown = world.time + +/obj/random/therapy + name = "Random Therapy Doll" + desc = "This is a random therapy doll." + icon = 'icons/obj/toy.dmi' + icon_state = "therapyred" + +/obj/random/prize/item_to_spawn() + return pick(subtypesof(/obj/item/toy/therapy)) //exclude the base type. /obj/item/toy/therapy/red - item_color = "red" item_state = "egg4" // It's the red egg in items_left/righthand + item_color = "red" /obj/item/toy/therapy/purple - item_color = "purple" item_state = "egg1" // It's the magenta egg in items_left/righthand + item_color = "purple" /obj/item/toy/therapy/blue - item_color = "blue" item_state = "egg2" // It's the blue egg in items_left/righthand + item_color = "blue" /obj/item/toy/therapy/yellow - item_color = "yellow" item_state = "egg5" // It's the yellow egg in items_left/righthand + item_color = "yellow" /obj/item/toy/therapy/orange - item_color = "orange" item_state = "egg4" // It's the red one again, lacking an orange item_state and making a new one is pointless + item_color = "orange" /obj/item/toy/therapy/green - item_color = "green" item_state = "egg3" // It's the green egg in items_left/righthand + item_color = "green" /obj/item/weapon/toddler icon_state = "toddler" diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 1bacc123e01..93e510b0641 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -148,4 +148,11 @@ . = 0 else - . = 1 \ No newline at end of file + . = 1 + +/obj/structure/stool/bed/chair/wheelchair/handle_rotation() + overlays = null + var/image/O = image(icon = 'icons/vehicles/motorcycle.dmi', icon_state = "motorcycle_overlay_4d", layer = FLY_LAYER, dir = src.dir) + overlays += O + if(buckled_mob) + buckled_mob.dir = dir \ No newline at end of file diff --git a/code/modules/arcade/arcade_prize.dm b/code/modules/arcade/arcade_prize.dm index 30bb457e196..b106a8ae7f4 100644 --- a/code/modules/arcade/arcade_prize.dm +++ b/code/modules/arcade/arcade_prize.dm @@ -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 diff --git a/code/modules/arcade/prize_counter.dm b/code/modules/arcade/prize_counter.dm index a8697956dc2..4190e50e6d3 100644 --- a/code/modules/arcade/prize_counter.dm +++ b/code/modules/arcade/prize_counter.dm @@ -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 += {" - - - [itemID] - - -

[item.name]

-

[item.desc]

- - "} - if(prize_tier >= item.tier_unlocked) - dat += {" - -
[item.cost] Tickets - - - "} - else - dat += {" - - LOCKED. - - - "} - 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 { "} - 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 += {" + + + [itemID] + + +

[item.name]

+

[item.desc]

+ + "} + if(prize_tier >= item.tier_unlocked) + dat += {" + + [item.cost] Tickets + + + "} + else + dat += {" + + LOCKED. + + + "} + dat += {" @@ -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 << "You've successfully purchased the item." - 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) \ No newline at end of file + new /obj/item/stack/tickets(src.loc, tickets) + tickets = 0 \ No newline at end of file diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm index 0b039e45537..8d1bd5da023 100644 --- a/code/modules/arcade/prize_datums.dm +++ b/code/modules/arcade/prize_datums.dm @@ -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("Enjoy your prize!") 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" diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index fb97c2b693c..648193a316b 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -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") \ No newline at end of file + 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") \ No newline at end of file diff --git a/icons/obj/arcade.dmi b/icons/obj/arcade.dmi index 5fdaeb7c68229207901f707248d45e891ed83456..9861aea35c96d6330152e89a6f97fbca3b5889fa 100644 GIT binary patch literal 15583 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 XViFgkH4OaQ0Z3C#PqpHK&FlXMuTxk* diff --git a/icons/vehicles/motorcycle.dmi b/icons/vehicles/motorcycle.dmi index 8b5a004fa5deb72eb652683a06f6cae9ecb12c56..2f3c2d5517f8fcb755d44401a30d145c7b9843ac 100644 GIT binary patch literal 4885 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 ZcnKj2KFUi)0{?RXnyR`gl}PKz{{e-YM6mz> literal 4017 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 Date: Mon, 15 Feb 2016 02:32:29 -0500 Subject: [PATCH 3/7] Src, Spans, and Chainsaws Cleans up some src and src.loc in the toys, arcade, and prize counter files Replaces some text macros with proper spans Removes the attack proc from the toy chainsaw, preventing them from making sounds on hit. - Still makes the revving sound when you wield them --- code/game/machinery/computer/arcade.dm | 138 ++++++++++---------- code/game/objects/items/toys.dm | 168 ++++++++++++------------- code/modules/arcade/prize_counter.dm | 6 +- 3 files changed, 150 insertions(+), 162 deletions(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 445c0b743ab..7277bc6a366 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -29,10 +29,10 @@ prize_amount = score else prize_amount = rand(1, 10) - new prize(src.loc, prize_amount) + new prize(get_turf(src), prize_amount) else var/atom/movable/prize = pick(contents) - prize.loc = src.loc + prize.loc = get_turf(src) /obj/machinery/computer/arcade/emp_act(severity) ..(severity) @@ -46,7 +46,7 @@ num_of_prizes = rand(0,2) for(var/i = num_of_prizes; i > 0; i--) prizevend() - explosion(src.loc, -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes) + explosion(get_turf(src), -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes) /obj/machinery/computer/arcade/battle @@ -75,20 +75,20 @@ name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Cuban ", "the Evil ", "the Dread King ", "the Space ", "Lord ", "the Great ", "Duke ", "General ") name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid", "slime", "Griefer", "ERPer", "Lizard Man", "Unicorn", "Bloopers") - src.enemy_name = replacetext((name_part1 + name_part2), "the ", "") - src.name = (name_action + name_part1 + name_part2) + enemy_name = replacetext((name_part1 + name_part2), "the ", "") + name = (name_action + name_part1 + name_part2) /obj/machinery/computer/arcade/battle/attack_hand(mob/user as mob) if(..()) return user.set_machine(src) var/dat = "Close" - dat += "

[src.enemy_name]

" + dat += "

[enemy_name]

" - dat += "

[src.temp]

" - dat += "
Health: [src.player_hp] | Magic: [src.player_mp] | Enemy Health: [src.enemy_hp]
" + dat += "

[temp]

" + dat += "
Health: [player_hp] | Magic: [player_mp] | Enemy Health: [enemy_hp]
" - if (src.gameover) + if (gameover) dat += "
New Game" else dat += "
Attack | " @@ -101,7 +101,7 @@ //onclose(user, "arcade") var/datum/browser/popup = new(user, "arcade", "Space Villian 2000") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() return @@ -109,48 +109,48 @@ if(..()) return - if (!src.blocked && !src.gameover) + if (!blocked && !gameover) if (href_list["attack"]) - src.blocked = 1 + blocked = 1 var/attackamt = rand(2,6) - src.temp = "You attack for [attackamt] damage!" + temp = "You attack for [attackamt] damage!" playsound(src.loc, 'sound/arcade/Hit.ogg', 20, 1, extrarange = -6, falloff = 10) - src.updateUsrDialog() + updateUsrDialog() if(turtle > 0) turtle-- sleep(10) - src.enemy_hp -= attackamt - src.arcade_action() + enemy_hp -= attackamt + arcade_action() else if (href_list["heal"]) - src.blocked = 1 + blocked = 1 var/pointamt = rand(1,3) var/healamt = rand(6,8) - src.temp = "You use [pointamt] magic to heal for [healamt] damage!" + temp = "You use [pointamt] magic to heal for [healamt] damage!" playsound(src.loc, 'sound/arcade/Heal.ogg', 20, 1, extrarange = -6, falloff = 10) - src.updateUsrDialog() + updateUsrDialog() turtle++ sleep(10) - src.player_mp -= pointamt - src.player_hp += healamt - src.blocked = 1 - src.updateUsrDialog() - src.arcade_action() + player_mp -= pointamt + player_hp += healamt + blocked = 1 + updateUsrDialog() + arcade_action() else if (href_list["charge"]) - src.blocked = 1 + blocked = 1 var/chargeamt = rand(4,7) - src.temp = "You regain [chargeamt] points" + temp = "You regain [chargeamt] points" playsound(src.loc, 'sound/arcade/Mana.ogg', 20, 1, extrarange = -6, falloff = 10) - src.player_mp += chargeamt + player_mp += chargeamt if(turtle > 0) turtle-- - src.updateUsrDialog() + updateUsrDialog() sleep(10) - src.arcade_action() + arcade_action() if (href_list["close"]) usr.unset_machine() @@ -166,50 +166,50 @@ turtle = 0 if(emagged) - src.New() + New() emagged = 0 - src.add_fingerprint(usr) - src.updateUsrDialog() + add_fingerprint(usr) + updateUsrDialog() return /obj/machinery/computer/arcade/battle/proc/arcade_action() - if ((src.enemy_mp <= 0) || (src.enemy_hp <= 0)) + if ((enemy_mp <= 0) || (enemy_hp <= 0)) if(!gameover) - src.gameover = 1 - src.temp = "[src.enemy_name] has fallen! Rejoice!" + gameover = 1 + temp = "[enemy_name] has fallen! Rejoice!" playsound(src.loc, 'sound/arcade/Win.ogg', 20, 1, extrarange = -6, falloff = 10) if(emagged) feedback_inc("arcade_win_emagged") - new /obj/effect/spawner/newbomb/timer/syndicate(src.loc) - new /obj/item/clothing/head/collectable/petehat(src.loc) + new /obj/effect/spawner/newbomb/timer/syndicate(get_turf(src)) + new /obj/item/clothing/head/collectable/petehat(get_turf(src)) message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.") log_game("[key_name(usr)] has outbombed Cuban Pete and been awarded a bomb.") - src.New() + New() emagged = 0 else feedback_inc("arcade_win_normal") - var/score = src.player_hp + player_mp + 5 + var/score = player_hp + player_mp + 5 prizevend(score) else if (emagged && (turtle >= 4)) var/boomamt = rand(5,10) - src.temp = "[src.enemy_name] throws a bomb, exploding you for [boomamt] damage!" + temp = "[enemy_name] throws a bomb, exploding you for [boomamt] damage!" playsound(src.loc, 'sound/arcade/Boom.ogg', 20, 1, extrarange = -6, falloff = 10) - src.player_hp -= boomamt + player_hp -= boomamt - else if ((src.enemy_mp <= 5) && (prob(70))) + else if ((enemy_mp <= 5) && (prob(70))) var/stealamt = rand(2,3) - src.temp = "[src.enemy_name] steals [stealamt] of your power!" + temp = "[enemy_name] steals [stealamt] of your power!" playsound(src.loc, 'sound/arcade/Steal.ogg', 20, 1, extrarange = -6, falloff = 10) - src.player_mp -= stealamt - src.updateUsrDialog() + player_mp -= stealamt + updateUsrDialog() - if (src.player_mp <= 0) - src.gameover = 1 + if (player_mp <= 0) + gameover = 1 sleep(10) - src.temp = "You have been drained! GAME OVER" + temp = "You have been drained! GAME OVER" playsound(src.loc, 'sound/arcade/Lose.ogg', 20, 1, extrarange = -6, falloff = 10) if(emagged) feedback_inc("arcade_loss_mana_emagged") @@ -217,21 +217,21 @@ else feedback_inc("arcade_loss_mana_normal") - else if ((src.enemy_hp <= 10) && (src.enemy_mp > 4)) - src.temp = "[src.enemy_name] heals for 4 health!" + else if ((enemy_hp <= 10) && (enemy_mp > 4)) + temp = "[enemy_name] heals for 4 health!" playsound(src.loc, 'sound/arcade/Heal.ogg', 20, 1, extrarange = -6, falloff = 10) - src.enemy_hp += 4 - src.enemy_mp -= 4 + enemy_hp += 4 + enemy_mp -= 4 else var/attackamt = rand(3,6) - src.temp = "[src.enemy_name] attacks for [attackamt] damage!" + temp = "[enemy_name] attacks for [attackamt] damage!" playsound(src.loc, 'sound/arcade/Hit.ogg', 20, 1, extrarange = -6, falloff = 10) - src.player_hp -= attackamt + player_hp -= attackamt - if ((src.player_mp <= 0) || (src.player_hp <= 0)) - src.gameover = 1 - src.temp = "You have been crushed! GAME OVER" + if ((player_mp <= 0) || (player_hp <= 0)) + gameover = 1 + temp = "You have been crushed! GAME OVER" playsound(src.loc, 'sound/arcade/Lose.ogg', 20, 1, extrarange = -6, falloff = 10) if(emagged) feedback_inc("arcade_loss_hp_emagged") @@ -239,7 +239,7 @@ else feedback_inc("arcade_loss_hp_normal") - src.blocked = 0 + blocked = 0 return @@ -258,7 +258,7 @@ enemy_name = "Cuban Pete" name = "Outbomb Cuban Pete" - src.updateUsrDialog() + updateUsrDialog() // *** THE ORION TRAIL ** // @@ -410,7 +410,7 @@ dat += "

Close

" var/datum/browser/popup = new(user, "arcade", "The Orion Trail",400,700) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() return @@ -497,7 +497,7 @@ playsound(src.loc, 'sound/effects/bang.ogg', 20, 1) if(ORION_TRAIL_MALFUNCTION) playsound(src.loc, 'sound/effects/EMPulse.ogg', 20, 1) - src.visible_message("[src] malfunctions, randomizing in-game stats!") + visible_message("[src] malfunctions, randomizing in-game stats!") var/oldfood = food var/oldfuel = fuel food = rand(10,80) / rand(1,2) @@ -505,9 +505,9 @@ if(electronics) sleep(10) if(oldfuel > fuel && oldfood > food) - src.audible_message("[src] lets out a somehow reassuring chime.") + audible_message("[src] lets out a somehow reassuring chime.") else if(oldfuel < fuel || oldfood < food) - src.audible_message("[src] lets out a somehow ominous chime.") + audible_message("[src] lets out a somehow ominous chime.") food = oldfood fuel = oldfuel playsound(src.loc, 'sound/machines/chime.ogg', 20, 1) @@ -669,8 +669,8 @@ last_spaceport_action = "Traded Food for Fuel" event() - src.add_fingerprint(usr) - src.updateUsrDialog() + add_fingerprint(usr) + updateUsrDialog() busy = 0 return @@ -944,7 +944,7 @@ turns = 1 atom_say("Congratulations, you made it to Orion!") if(emagged) - new /obj/item/weapon/orion_ship(src.loc) + new /obj/item/weapon/orion_ship(get_turf(src)) message_admins("[key_name_admin(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") log_game("[key_name(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") else @@ -1008,17 +1008,17 @@ user << "You flip the switch on the underside of [src]." active = 1 - src.visible_message("[src] softly beeps and whirs to life!") + visible_message("[src] softly beeps and whirs to life!") playsound(src.loc, 'sound/machines/defib_SaftyOn.ogg', 25, 1) atom_say("This is ship ID #[rand(1,1000)] to Orion Port Authority. We're coming in for landing, over.") sleep(20) - src.visible_message("[src] begins to vibrate...") + visible_message("[src] begins to vibrate...") atom_say("Uh, Port? Having some issues with our reactor, could you check it out? Over.") sleep(30) atom_say("Oh, God! Code Eight! CODE EIGHT! IT'S GONNA BL-") playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 25, 1) sleep(3.6) - src.visible_message("[src] explodes!") + visible_message("[src] explodes!") explosion(src.loc, 1,2,4, flame_range = 3) qdel(src) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index e6626477d8f..45d15625e06 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -51,9 +51,9 @@ if(!proximity) return if (istype(A, /obj/structure/reagent_dispensers/watertank) && get_dist(src,A) <= 1) A.reagents.trans_to(src, 10) - user << "\blue You fill the balloon with the contents of [A]." - src.desc = "A translucent balloon with some form of liquid sloshing around in it." - src.update_icon() + user << "You fill the balloon with the contents of [A]." + desc = "A translucent balloon with some form of liquid sloshing around in it." + update_icon() return /obj/item/toy/balloon/attackby(obj/O as obj, mob/user as mob, params) @@ -67,19 +67,19 @@ O.reagents.reaction(user) qdel(src) else - src.desc = "A translucent balloon with some form of liquid sloshing around in it." - user << "\blue You fill the balloon with the contents of [O]." + desc = "A translucent balloon with some form of liquid sloshing around in it." + user << "You fill the balloon with the contents of [O]." O.reagents.trans_to(src, 10) - src.update_icon() + update_icon() return /obj/item/toy/balloon/throw_impact(atom/hit_atom) - if(src.reagents.total_volume >= 1) - src.visible_message("\red The [src] bursts!","You hear a pop and a splash.") - src.reagents.reaction(get_turf(hit_atom)) + if(reagents.total_volume >= 1) + visible_message("The [src] bursts!","You hear a pop and a splash.") + reagents.reaction(get_turf(hit_atom)) for(var/atom/A in get_turf(hit_atom)) - src.reagents.reaction(A) - src.icon_state = "burst" + reagents.reaction(A) + icon_state = "burst" spawn(5) if(src) qdel(src) @@ -144,7 +144,7 @@ /obj/item/toy/crossbow/examine(mob/user) ..(user) if (bullets) - user << "\blue It is loaded with [bullets] foam darts!" + user << "It is loaded with [bullets] foam darts!" /obj/item/toy/crossbow/attackby(obj/item/I as obj, mob/user as mob, params) if(istype(I, /obj/item/toy/ammo/crossbow)) @@ -152,9 +152,9 @@ user.drop_item() qdel(I) bullets++ - user << "\blue You load the foam dart into the crossbow." + user << "You load the foam dart into the crossbow." else - usr << "\red It's already fully loaded." + usr << "It's already fully loaded." /obj/item/toy/crossbow/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag) @@ -205,23 +205,18 @@ /obj/item/toy/crossbow/attack(mob/M as mob, mob/user as mob) - src.add_fingerprint(user) + add_fingerprint(user) // ******* Check - if (src.bullets > 0 && M.lying) - - for(var/mob/O in viewers(M, null)) - if(O.client) - O.show_message(text("[] casually lines up a shot with []'s head and pulls the trigger!", user, M), 1, "You hear the sound of foam against skull.", 2) - O.show_message(text("\red [] was hit in the head by the foam dart!", M), 1) - + if (bullets > 0 && M.lying) + visible_message("[user] casually lines up a shot with [M]'s head and pulls the trigger!", "You hear the sound of foam against skull.") + M.visible_message("[M] was hit in the head by the foam dart!") playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1) new /obj/item/toy/ammo/crossbow(M.loc) - src.bullets-- - else if (M.lying && src.bullets == 0) - for(var/mob/O in viewers(M, null)) - if (O.client) O.show_message(text("[] casually lines up a shot with []'s head, pulls the trigger, then realizes they are out of ammo and drops to the floor in search of some!", user, M), 1, "You hear someone fall.", 2) + bullets-- + else if (M.lying && bullets == 0) + visible_message("[user] casually lines up a shot with [M]'s head, pulls the trigger, then realizes they are out of ammo and drops to the floor in search of some!", "You hear someone fall.") user.Weaken(5) return @@ -280,25 +275,25 @@ attack_verb = list("attacked", "struck", "hit") /obj/item/toy/sword/attack_self(mob/user as mob) - src.active = !( src.active ) - if (src.active) - user << "\blue You extend the plastic blade with a quick flick of your wrist." + active = !(active) + if (active) + user << "You extend the plastic blade with a quick flick of your wrist." playsound(user, 'sound/weapons/saberon.ogg', 50, 1) - src.icon_state = "swordblue" - src.item_state = "swordblue" - src.w_class = 4 + icon_state = "swordblue" + item_state = "swordblue" + w_class = 4 else - user << "\blue You push the plastic blade back down into the handle." + user << "You push the plastic blade back down into the handle." playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) - src.icon_state = "sword0" - src.item_state = "sword0" - src.w_class = 2 + icon_state = "sword0" + item_state = "sword0" + w_class = 2 if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user H.update_inv_l_hand() H.update_inv_r_hand() - src.add_fingerprint(user) + add_fingerprint(user) return // Copied from /obj/item/weapon/melee/energy/sword/attackby @@ -380,7 +375,7 @@ s.set_up(3, 1, src) s.start() new /obj/effect/decal/cleanable/ash(src.loc) - src.visible_message("\red The [src.name] explodes!","\red You hear a bang!") + visible_message("The [name] explodes!","You hear a bang!") playsound(src, 'sound/effects/snap.ogg', 50, 1) qdel(src) @@ -400,7 +395,7 @@ s.set_up(3, 1, src) s.start() new /obj/effect/decal/cleanable/ash(src.loc) - src.visible_message("\red The [src.name] explodes!","\red You hear a snap!") + visible_message("The [src.name] explodes!","You hear a snap!") playsound(src, 'sound/effects/snap.ogg', 50, 1) qdel(src) @@ -408,13 +403,13 @@ if((ishuman(H))) //i guess carp and shit shouldn't set them off var/mob/living/carbon/M = H if(M.m_intent == "run") - M << "\red You step on the snap pop!" + M << "You step on the snap pop!" var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread s.set_up(2, 0, src) s.start() new /obj/effect/decal/cleanable/ash(src.loc) - src.visible_message("\red The [src.name] explodes!","\red You hear a snap!") + visible_message("The [name] explodes!","You hear a snap!") playsound(src, 'sound/effects/snap.ogg', 50, 1) qdel(src) @@ -585,7 +580,7 @@ obj/item/toy/cards/deck/New() obj/item/toy/cards/deck/attack_hand(mob/user as mob) var/choice = null if(cards.len == 0) - src.icon_state = "deck_[deckstyle]_empty" + icon_state = "deck_[deckstyle]_empty" user << "There are no more cards to draw." return var/obj/item/toy/cards/singlecard/H = new/obj/item/toy/cards/singlecard(user.loc) @@ -594,16 +589,16 @@ obj/item/toy/cards/deck/attack_hand(mob/user as mob) H.parentdeck = src var/O = src H.apply_card_vars(H,O) - src.cards -= choice + cards -= choice H.pickup(user) user.put_in_active_hand(H) - src.visible_message("[user] draws a card from the deck.", "You draw a card from the deck.") + visible_message("[user] draws a card from the deck.", "You draw a card from the deck.") if(cards.len > 26) - src.icon_state = "deck_[deckstyle]_full" + icon_state = "deck_[deckstyle]_full" else if(cards.len > 10) - src.icon_state = "deck_[deckstyle]_half" + icon_state = "deck_[deckstyle]_half" else if(cards.len > 1) - src.icon_state = "deck_[deckstyle]_low" + icon_state = "deck_[deckstyle]_low" obj/item/toy/cards/deck/attack_self(mob/user as mob) if(cooldown < world.time - 50) @@ -619,17 +614,17 @@ obj/item/toy/cards/deck/attackby(obj/item/toy/cards/singlecard/C, mob/living/use if(!user.unEquip(C)) user << "The card is stuck to your hand, you can't add it to the deck!" return - src.cards += C.cardname + cards += C.cardname user.visible_message("[user] adds a card to the bottom of the deck.","You add the card to the bottom of the deck.") qdel(C) else user << "You can't mix cards from other decks." if(cards.len > 26) - src.icon_state = "deck_[deckstyle]_full" + icon_state = "deck_[deckstyle]_full" else if(cards.len > 10) - src.icon_state = "deck_[deckstyle]_half" + icon_state = "deck_[deckstyle]_half" else if(cards.len > 1) - src.icon_state = "deck_[deckstyle]_low" + icon_state = "deck_[deckstyle]_low" obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user, params) @@ -639,17 +634,17 @@ obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user, if(!user.unEquip(C)) user << "The hand of cards is stuck to your hand, you can't add it to the deck!" return - src.cards += C.currenthand + cards += C.currenthand user.visible_message("[user] puts their hand of cards in the deck.", "You put the hand of cards in the deck.") qdel(C) else user << "You can't mix cards from other decks." if(cards.len > 26) - src.icon_state = "deck_[deckstyle]_full" + icon_state = "deck_[deckstyle]_full" else if(cards.len > 10) - src.icon_state = "deck_[deckstyle]_half" + icon_state = "deck_[deckstyle]_half" else if(cards.len > 1) - src.icon_state = "deck_[deckstyle]_low" + icon_state = "deck_[deckstyle]_low" obj/item/toy/cards/deck/MouseDrop(atom/over_object) var/mob/M = usr @@ -712,7 +707,7 @@ obj/item/toy/cards/cardhand/Topic(href, href_list) if (cardUser.get_item_by_slot(slot_l_hand) == src || cardUser.get_item_by_slot(slot_r_hand) == src) var/choice = href_list["pick"] var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc) - src.currenthand -= choice + currenthand -= choice C.parentdeck = src.parentdeck C.cardname = choice C.apply_card_vars(C,O) @@ -721,13 +716,13 @@ obj/item/toy/cards/cardhand/Topic(href, href_list) cardUser.visible_message("[cardUser] draws a card from \his hand.", "You take the [C.cardname] from your hand.") interact(cardUser) - if(src.currenthand.len < 3) - src.icon_state = "[deckstyle]_hand2" + if(currenthand.len < 3) + icon_state = "[deckstyle]_hand2" else if(src.currenthand.len < 4) - src.icon_state = "[deckstyle]_hand3" + icon_state = "[deckstyle]_hand3" else if(src.currenthand.len < 5) - src.icon_state = "[deckstyle]_hand4" - if(src.currenthand.len == 1) + icon_state = "[deckstyle]_hand4" + if(currenthand.len == 1) var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(src.loc) N.parentdeck = src.parentdeck N.cardname = src.currenthand[1] @@ -742,17 +737,17 @@ obj/item/toy/cards/cardhand/Topic(href, href_list) obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living/user, params) if(istype(C)) - if(C.parentdeck == src.parentdeck) - src.currenthand += C.cardname + if(C.parentdeck == parentdeck) + currenthand += C.cardname user.unEquip(C) user.visible_message("[user] adds a card to their hand.", "You add the [C.cardname] to your hand.") interact(user) if(currenthand.len > 4) - src.icon_state = "[deckstyle]_hand5" + icon_state = "[deckstyle]_hand5" else if(currenthand.len > 3) - src.icon_state = "[deckstyle]_hand4" + icon_state = "[deckstyle]_hand4" else if(currenthand.len > 2) - src.icon_state = "[deckstyle]_hand3" + icon_state = "[deckstyle]_hand3" qdel(C) else user << "You can't mix cards from other decks." @@ -797,33 +792,33 @@ obj/item/toy/cards/singlecard/verb/Flip() if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained()) return if(!flipped) - src.flipped = 1 + flipped = 1 if (cardname) - src.icon_state = "sc_[cardname]_[deckstyle]" - src.name = src.cardname + icon_state = "sc_[cardname]_[deckstyle]" + name = cardname else - src.icon_state = "sc_Ace of Spades_[deckstyle]" - src.name = "What Card" - src.pixel_x = 5 + icon_state = "sc_Ace of Spades_[deckstyle]" + name = "What Card" + pixel_x = 5 else if(flipped) - src.flipped = 0 - src.icon_state = "singlecard_down_[deckstyle]" - src.name = "card" - src.pixel_x = -5 + flipped = 0 + icon_state = "singlecard_down_[deckstyle]" + name = "card" + pixel_x = -5 obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/toy/cards/singlecard/)) var/obj/item/toy/cards/singlecard/C = I - if(C.parentdeck == src.parentdeck) + if(C.parentdeck == parentdeck) var/obj/item/toy/cards/cardhand/H = new/obj/item/toy/cards/cardhand(user.loc) H.currenthand += C.cardname - H.currenthand += src.cardname + H.currenthand += cardname H.parentdeck = C.parentdeck H.apply_card_vars(H,C) user.unEquip(C) H.pickup(user) user.put_in_active_hand(H) - user << "You combine the [C.cardname] and the [src.cardname] into a hand." + user << "You combine the [C.cardname] and the [cardname] into a hand." qdel(C) qdel(src) else @@ -933,7 +928,7 @@ obj/item/toy/cards/deck/syndicate/black /obj/item/toy/therapy/attack_self(mob/user) if(cooldown < world.time - 8) - user << "You relieve some stress with /the [src]." + user << "You relieve some stress with \the [src]." playsound(user, 'sound/items/squeaktoy.ogg', 20, 1) cooldown = world.time @@ -1262,7 +1257,7 @@ obj/item/toy/cards/deck/syndicate/black var/message = generate_ion_law() user << "You press the button on [src]." playsound(user, 'sound/machines/click.ogg', 20, 1) - src.loc.visible_message("\icon[src] [message]") + visible_message("\icon[src] [message]") cooldown = 1 spawn(30) cooldown = 0 return @@ -1281,7 +1276,7 @@ obj/item/toy/cards/deck/syndicate/black var/message = pick("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!") user << "You pull the string on the [src]." playsound(user, 'sound/misc/hoot.ogg', 25, 1) - src.loc.visible_message("\icon[src] [message]") + visible_message("\icon[src] [message]") cooldown = 1 spawn(30) cooldown = 0 return @@ -1300,7 +1295,7 @@ obj/item/toy/cards/deck/syndicate/black var/message = pick("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!") user << "You pull the string on the [src]." playsound(user, 'sound/misc/caw.ogg', 25, 1) - src.loc.visible_message("\icon[src] [message]") + visible_message("\icon[src] [message]") cooldown = 1 spawn(30) cooldown = 0 return @@ -1532,13 +1527,6 @@ obj/item/toy/cards/deck/syndicate/black else icon_state = "chainsaw0" -/obj/item/weapon/twohanded/toy/chainsaw/attack(mob/target as mob, mob/living/user as mob) - if(wielded) - playsound(loc, 'sound/weapons/chainsaw.ogg', 100, 1, -1) - else - playsound(loc, "swing_hit", 50, 1, -1) - ..() - /* * Action Figures */ diff --git a/code/modules/arcade/prize_counter.dm b/code/modules/arcade/prize_counter.dm index 4190e50e6d3..5f1c8024553 100644 --- a/code/modules/arcade/prize_counter.dm +++ b/code/modules/arcade/prize_counter.dm @@ -176,7 +176,7 @@ td.cost.toomuch { if(..()) return 1 - src.add_fingerprint(usr) + add_fingerprint(usr) if(href_list["eject"]) print_tickets() @@ -200,9 +200,9 @@ td.cost.toomuch { if(!tickets) return if(tickets >= 9999) - new /obj/item/stack/tickets(src.loc, 9999) //max stack size + new /obj/item/stack/tickets(get_turf(src), 9999) //max stack size tickets -= 9999 print_tickets() else - new /obj/item/stack/tickets(src.loc, tickets) + new /obj/item/stack/tickets(get_turf(src), tickets) tickets = 0 \ No newline at end of file From aaeccfdff5754b23078feb22d55f5ecab0a3135d Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Mon, 15 Feb 2016 02:36:18 -0500 Subject: [PATCH 4/7] Removes the force from tickets Tickets no longer deal damage when used as a weapon or thrown. --- code/modules/arcade/arcade_prize.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/arcade/arcade_prize.dm b/code/modules/arcade/arcade_prize.dm index b106a8ae7f4..f57a64de03c 100644 --- a/code/modules/arcade/arcade_prize.dm +++ b/code/modules/arcade/arcade_prize.dm @@ -63,8 +63,8 @@ singular_name = "prize ticket" icon = 'icons/obj/arcade.dmi' icon_state = "tickets_1" - force = 1 - throwforce = 1 + force = 0 + throwforce = 0 throw_speed = 1 throw_range = 1 w_class = 1.0 From 441a7345d6efae7b70360b966c4fbc7fc3a05486 Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Tue, 16 Feb 2016 03:39:55 -0500 Subject: [PATCH 5/7] Temporary Prize Counter mapping Temporarily adds a prize counter to the bar on Cyberiad and Fitness Room (dorms) on Metastation - The metastation one might stay, but the Cyberiad one will very likely get moved in the near future. Adds a fully upgraded prize counter to the ninja's holding pen on Cyberiad's z2 (map-merged) --- _maps/map_files/MetaStation/MetaStation.v41A.II.dmm | 6 +++--- _maps/map_files/cyberiad/cyberiad.dmm | 3 ++- _maps/map_files/cyberiad/z2.dmm | 6 +++--- code/modules/arcade/prize_counter.dm | 10 ++++++++++ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index c5efb941401..632b62957c3 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -423,7 +423,7 @@ "aig" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "shower"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aih" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aii" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"aij" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aij" = (/obj/machinery/prize_counter,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aik" = (/obj/structure/closet/masks,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "ail" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aim" = (/obj/structure/closet/boxinggloves,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) @@ -926,7 +926,7 @@ "arP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/fore) "arQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/fore) "arR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fore) -"arS" = (/obj/machinery/door/airlock/maintenance{icon = 'icons/obj/doors/doorint.dmi'; name = "Brig Emergency Storage"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/security/brig) +"arS" = (/obj/machinery/door/airlock/maintenance{icon = 'icons/obj/doors/Doorint.dmi'; name = "Brig Emergency Storage"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/security/brig) "arT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "arU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitered"},/area/security/brig) "arV" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{icon_state = "whitered"},/area/security/brig) @@ -3754,7 +3754,7 @@ "buj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera{c_tag = "Central Primary Hallway - Starboard - Art Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "buk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central) "bul" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/spawner/window{useFull = 1; tag = "fullWin"},/turf/simulated/floor/plating,/area/civilian/barber) -"bum" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/doorint.dmi'; name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/starboard) +"bum" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Doorint.dmi'; name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/starboard) "bun" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/civilian/barber) "buo" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/civilian/barber) "bup" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/simulated/floor/wood,/area/crew_quarters/bar) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 5a07eb647ca..499f575076b 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -3551,6 +3551,7 @@ "bqo" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 1"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) "bqp" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) "bqq" = (/obj/machinery/atm{pixel_y = 32},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) +"bqr" = (/obj/machinery/prize_counter,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bqs" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) "bqt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bqu" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "green"},/area/hallway/primary/starboard/west) @@ -8833,7 +8834,7 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikblsbltbltblubltbltbltblvbltbltbmPaabaInaLAaJtbilbgNbimbinbiobipbiqbirbisbitbgNbiubivbiwbixbcobiybecbecbgRbgTbizbiAbgRbecbecbiBbiCbcobejbekbctbctbiDbctbcvbiEbiFbiGbcvbiHbhfbiIbhfbiJbesbeubiKaXOaXPaXPbiLbiMbiNbcEbiObfRbiPbhobhobiQbiRbiSakybiSbiUbiVbiWbiXbiYbiZbjabcEbjbbiMbjcbjdbjebeGaYiaYibjfbmwbjgbmwbmwbmwbjhbjibmwbhDbjjbglbmwbeLbeMbeMbjkbjlbjmbjnbjobjpbhLbjqaVbbjrbhNbeXbeYbeYbeXbhPbjsaVbbjtbjuaRDbjvaRDaRDbjwbbQbjxbjyaTvbjzbjAaWSbjBbdvbjCbjDbjEbjFbjFbjGbjHbjIbdvbjJbjKbatbjLbatbavbatbatddAbaAbaAbaAbaAbgKbqUddBbmKbutbwmbtmbmKbutbwmbtmbmKddCbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikblsbohbptbojbpwbpwbqWbpwbpwbpwbqWblubjNaInaKzaKBbfqbgNbimbjObjPbimbjQbjRbjSbjTbgNbjUaFmbjWbcsbcobjXbjYbjZbkabkbbkcbkdbkebkebkebkfbkgbcobejbivbkhbkibkjbkkbcvbcvbcvbcvbcvbklbkmbknbkobkpbesbeubiKaXJaXJaXJbkqbkrbksbktbkubkvbhobkwbkxbkybkzbkAbkBbkCbkDbkEbkFbkGbkubkHbkIbkJbkKbkMbkLbkObkObkPaYibkQaMebmwbkRbkSbglbmwbkTbkUbmwbkVbkWbglbmwbnMbeMbeMbeMbeNbeMbkXbeMbjpbhLbkYaVbbkZbhNbeXbeYbeYbeXbhPblaaVbblbblcbldbleblfblgblhblibljbljbljbljbljbljblkbllblmbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbatbatbavbatbatddDbgKblrblrblrbaAbwmbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbwmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbqYbqXbqXbqXbqXbqXbqXbqXbqXbqXbqXbqZbraaGdbraaJrbfqbgNblwbimblxblxblxblybimblzbgNblAblBbjWblCblCblCblCblDblCblEbecblFblGblHblHblIblJbcoblKblLblMblNblOblPblQblRblSblRblTblTblTblTblTblUberbeublVblWblXblYblZbmabmbbmcbmdbkBbmebmfbmgbmgbmgbmgbmhbmgbmibmjbmkbmlbmebmmbmnbcEbmobmpbmqbkNbmsbmtaYiaYibjfbmwbnCbmwbmwbmwaRebmwbmwbmvbmvbmwbmwbmxbeMbeMbmybmzbeMbeMbeMbmAbmBbmCaVbbgxbhNbeXbeXbeXbeXbhPbmDaVbbmEbmFbmFbmGbmFbmHbbPbbPbbPbbPbmIbbPbbPbbPbmJblobfgbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbfjbfjbfkbfjbatddEbaAbmLbmMbmNbaAbBQbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbBQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbrbbrebrdbrfbrfbrgbrfbrfbrfbrgbluaInaInaKzbrVbcjbmQbimbmRblxblxblxblybmRbimbgNbmSbmTbjWblCbmUbmVbmWbmXblCbmYbmZbnabcobnbbncbndbnebcobejbnfbngbngbnhbngbngbngbngbnibnjbnjbnjbnkbnjbnlbnmbnnbnobnpbnqbnqbnqbnqbnqbnqbnrbnsbnrbmgbmgbntbnubnvbnwbnxbnybntbnzbmgbnAbnBbnAbnAbnAbnAbnAbnAbnAbmtaYiaYiaMebnEbnDbmwbnGbmwbnFbmwbnIbnHbnJbmwbpjaUTbnKbnLaUTaUTczObnNddybnNaUTaUTaVbbnObnPbnQbnQbnQbnQbnPbnRaVbbnSbmFbmFbmGbnTaRDbnUbnVbnWbnXbnYbnZboabobbocaQbbodaRSboebfgbfgboeaRSbofaQbbogbgHbatbgIbgIbgJbgIbatddDbgKblrblrblrbaAbGVbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbGVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbrbbrebrdbrfbrfbrgbrfbrfbrfbrgbluaInaInaKzbrVbcjbmQbimbmRblxblxblxblybmRbimbgNbmSbmTbjWblCbmUbmVbmWbmXblCbmYbmZbnabcobnbbncbndbnebcobejbnfbngbngbnhbngbngbngbngbnibnjbnjbnjbnkbnjbnlbnmbnnbnobnpbnqbnqbnqbnqbnqbnqbnrbnsbnrbmgbmgbntbnubnvbnwbnxbnybntbnzbmgbnAbnBbnAbnAbnAbnAbnAbnAbnAbmtaYiaYiaMebnEbnDbqrbnGbmwbnFbmwbnIbnHbnJbmwbpjaUTbnKbnLaUTaUTczObnNddybnNaUTaUTaVbbnObnPbnQbnQbnQbnQbnPbnRaVbbnSbmFbmFbmGbnTaRDbnUbnVbnWbnXbnYbnZboabobbocaQbbodaRSboebfgbfgboeaRSbofaQbbogbgHbatbgIbgIbgJbgIbatddDbgKblrblrblrbaAbGVbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbGVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbltbltblubltbltbltblvbltbltbtnaabaInboibdFbokbgNbjObjObjObimbolbombonboobgNbopboqbjWblCborblCbosbotblCboubovbowbcobnbbncbndbiCbcobejbnfbngboxboybozboAboBbngboCboDboEboFbnmbnmbnmbnmboGboHboIbnqboJboKboLboMboNboOboPboQbmgboRbnvboSboTboUboTboSbnvboVbmgboWboXboYboZbpabpbbpcbpdbnAbpebpfbpfbpgaMeaMeaMeaMebphbjfbphbpiaMeaURaMeaMeaUTaUTaUTaUTbplbpkbpkbpkbpkbpmbpJaVbbakbpnbakbpobpobakbpnbakaVbbnSbmFbmFbppbnTaRDaRDaRDaRDaRDbjvaRDaRDaRDaRDaQbbpqaQcaQcaQcaQcaQcaQcaQbaQbbprbpsbatbatbatbavbatbatddAbaAbaAbaAbaAbgKbqUddFbmKbmKbmKbmKbmKbmKbmKbmKbmKddGbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaLyaCuaKzaKzaKzaDEaDEaDEaDEaDEaDEbtobpubgNbgNbgNbgNbgNbgNbpvbgNbgNbgNbejbejbpxblCbpybpzbosbpAblCdlEbpCbpBbcobnbbncbndbecbcobejbnfbngbpDbpEbpFboAbpFbngboCbpGbpHbpIbmubpKbpLbnmbpMbpNboIbpObpPbpQbpRbpSbpSbpRbpTbpUbmgbpVbnvbnvbpWbpXboTboSbnvbpYbmkbpZbqabqbbqcbqdbqebqbbqfbnAbqgbqhbqibqjbqkbqlbqmbqnbqnbqnbqnbqnbqnbqobqpbqqbqnbqnbqsbqnbqnbqnbqnbqnbqnbqnbqndcZbqubqvbqvbqvbqvbqvbqvbqwbqlbqxbqybqyaHkbqAbqBbqAbqCbqAbqDbqEbqFbqAbqGbqHbqIbqJbqKbqKbqKbqKbqKbqKbqKbqLbqMbqNbqNbqNbqNbqObqNbqPbKnddHbPfddIbiibPfdlbbmKbmKbmKbmKddKbmKddKbmKbmKbmKddGbdBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbtpbtqbtqbtqbtqbwpbwpbtqbtqbxZbikaabaInaLAaJtbzPbzObzRbzQbzQbzQbzQbzSbzUbzTbcsbdVbBFbrhblCblCblCbribotblCbcobcobcobcobnbbrjbrkbrlbcobrmbrnbngbrobrpboAbpFbrqbngboCbrrbpHbpIbpIbrsbrtbnmbrubpNboIbpObrvbrwbrxbrybrzbrAbpTbrBbmgbrCbpWbnvbrDbrEbrDbnvbpWbrFbnzbrGbqbbqbbqcbrHbqebqbbrIbnAbrJbqibqibqjbqkbqlbqnbqnbqnbqnbqnbqnbqnbrKbqnbqnbqnbqnbqnbqnbrLbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrNbrObrPbqKbqKbrQbmFbmFbmFbmFbmFbmGbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbrRbmFbrSbrTbatbatbatbatbatbatbatddLbaAbgKbaAbaAbaAbqUddMddOddNbdBddPbdBddPbdBddQddMddObqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 562e99420c0..7e1c55bc1f4 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -189,8 +189,10 @@ "dG" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid1 (EAST)"; icon_state = "asteroid1"; dir = 4},/area/holodeck/source_desert) "dH" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/sleeping_carp_scroll,/obj/item/weapon/twohanded/bostaff,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) "dI" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/sleeping_carp_scroll,/obj/item/weapon/twohanded/bostaff,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"dJ" = (/obj/structure/rack,/obj/item/toy/sword,/obj/item/weapon/gun/projectile/revolver/capgun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "dK" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "panelscorched"},/area/prison/solitary) "dL" = (/obj/structure/stool/bed,/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) +"dM" = (/obj/machinery/prize_counter/maxed,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "dN" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid3 (EAST)"; icon_state = "asteroid3"; dir = 4},/area/holodeck/source_desert) "dO" = (/turf/simulated/floor/holofloor{tag = "icon-carpet1-0 (EAST)"; icon_state = "carpet1-0"; dir = 4},/area/holodeck/source_theatre) "dP" = (/obj/structure/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet5-1 (EAST)"; icon_state = "carpet5-1"; dir = 4},/area/holodeck/source_theatre) @@ -254,8 +256,6 @@ "fB" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding) "fC" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding) "fD" = (/obj/structure/rack,/obj/item/device/camera,/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) -"fE" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) -"fF" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/revolver/capgun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "fG" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "fH" = (/turf/unsimulated/beach/sand,/area/ninja/holding) "fI" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/ninja/holding) @@ -1232,7 +1232,7 @@ ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapap ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckbockckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeDeqeqeqbsereEeFeGerbseHeHeIeJeJbseveKeveLevbseMeNeNeNeObsePeQeQeQeRbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapavapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqeqeqeXeqbsereYeYeYerbseHeZeZeZeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfffffffffffgfgfhfififjfgfgfgfgfgfgfgfgfgfkfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeqbserererererbseHeIeIeIeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD -ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNftfufvfwfffgfxfyfzfAfAfBfCfDfEfFfGfHfIfHfHfJfKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeqeqfMeqbserfNfOfPerbsfQfRfRfRfSbsevfTevevevbsfUfVfVfVfWbsePeQeQeQeRbD +ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNftfufvfwfffgfxfyfzfAfAfBfCfDdJdMfGfHfIfHfHfJfKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeqeqfMeqbserfNfOfPerbsfQfRfRfRfSbsevfTevevevbsfUfVfVfVfWbsePeQeQeQeRbD ckckckckckckckclckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfffffffufufufffggbfyfyfyfyfygcgdgdgdgefHfHfHgffHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqgkeqeqeqbserglgmgnerbsgogpgpgpgqbsevevevgrevbsgsgtgtgtgubsgveQeQeQgwbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNgygzgAfufufufffggBfygCgDgEgFgGgdgdgdgdfHfHgHfHgIfIfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeDbserglgmgnerbsgJeIgKeIgLbsevevevevevbsgMeNeNeNgNbsgveQeQeQgwbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckcmckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNgOgPgQfufufufffggRgdgegegegegegdgdgdgdfHfHfHgSfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbsgTeqeqeqeqbserglgmgnerbsgJgUgUgUgLbsgVgVgVgVgVbsgMeNeNeNgNbsgveQeQeQgwbD diff --git a/code/modules/arcade/prize_counter.dm b/code/modules/arcade/prize_counter.dm index 5f1c8024553..02b0c4c6f9e 100644 --- a/code/modules/arcade/prize_counter.dm +++ b/code/modules/arcade/prize_counter.dm @@ -21,6 +21,16 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() +/obj/machinery/prize_counter/maxed/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/prize_counter(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + RefreshParts() + /obj/machinery/prize_counter/RefreshParts() for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) prize_tier = B.rating From 03ecddfc4370f65b15f0c7cdae8832f3f1e5e77d Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Tue, 16 Feb 2016 03:50:42 -0500 Subject: [PATCH 6/7] Revert "Temporary Prize Counter mapping" This reverts commit 441a7345d6efae7b70360b966c4fbc7fc3a05486. --- _maps/map_files/MetaStation/MetaStation.v41A.II.dmm | 6 +++--- _maps/map_files/cyberiad/cyberiad.dmm | 3 +-- _maps/map_files/cyberiad/z2.dmm | 6 +++--- code/modules/arcade/prize_counter.dm | 10 ---------- 4 files changed, 7 insertions(+), 18 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index 632b62957c3..c5efb941401 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -423,7 +423,7 @@ "aig" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "shower"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aih" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aii" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"aij" = (/obj/machinery/prize_counter,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aij" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aik" = (/obj/structure/closet/masks,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "ail" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aim" = (/obj/structure/closet/boxinggloves,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) @@ -926,7 +926,7 @@ "arP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/fore) "arQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/fore) "arR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fore) -"arS" = (/obj/machinery/door/airlock/maintenance{icon = 'icons/obj/doors/Doorint.dmi'; name = "Brig Emergency Storage"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/security/brig) +"arS" = (/obj/machinery/door/airlock/maintenance{icon = 'icons/obj/doors/doorint.dmi'; name = "Brig Emergency Storage"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/security/brig) "arT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "arU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitered"},/area/security/brig) "arV" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{icon_state = "whitered"},/area/security/brig) @@ -3754,7 +3754,7 @@ "buj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera{c_tag = "Central Primary Hallway - Starboard - Art Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "buk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central) "bul" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/spawner/window{useFull = 1; tag = "fullWin"},/turf/simulated/floor/plating,/area/civilian/barber) -"bum" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Doorint.dmi'; name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/starboard) +"bum" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/doorint.dmi'; name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/starboard) "bun" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/civilian/barber) "buo" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/civilian/barber) "bup" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/simulated/floor/wood,/area/crew_quarters/bar) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 499f575076b..5a07eb647ca 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -3551,7 +3551,6 @@ "bqo" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 1"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) "bqp" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) "bqq" = (/obj/machinery/atm{pixel_y = 32},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) -"bqr" = (/obj/machinery/prize_counter,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bqs" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/west) "bqt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bqu" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "green"},/area/hallway/primary/starboard/west) @@ -8834,7 +8833,7 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikblsbltbltblubltbltbltblvbltbltbmPaabaInaLAaJtbilbgNbimbinbiobipbiqbirbisbitbgNbiubivbiwbixbcobiybecbecbgRbgTbizbiAbgRbecbecbiBbiCbcobejbekbctbctbiDbctbcvbiEbiFbiGbcvbiHbhfbiIbhfbiJbesbeubiKaXOaXPaXPbiLbiMbiNbcEbiObfRbiPbhobhobiQbiRbiSakybiSbiUbiVbiWbiXbiYbiZbjabcEbjbbiMbjcbjdbjebeGaYiaYibjfbmwbjgbmwbmwbmwbjhbjibmwbhDbjjbglbmwbeLbeMbeMbjkbjlbjmbjnbjobjpbhLbjqaVbbjrbhNbeXbeYbeYbeXbhPbjsaVbbjtbjuaRDbjvaRDaRDbjwbbQbjxbjyaTvbjzbjAaWSbjBbdvbjCbjDbjEbjFbjFbjGbjHbjIbdvbjJbjKbatbjLbatbavbatbatddAbaAbaAbaAbaAbgKbqUddBbmKbutbwmbtmbmKbutbwmbtmbmKddCbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikblsbohbptbojbpwbpwbqWbpwbpwbpwbqWblubjNaInaKzaKBbfqbgNbimbjObjPbimbjQbjRbjSbjTbgNbjUaFmbjWbcsbcobjXbjYbjZbkabkbbkcbkdbkebkebkebkfbkgbcobejbivbkhbkibkjbkkbcvbcvbcvbcvbcvbklbkmbknbkobkpbesbeubiKaXJaXJaXJbkqbkrbksbktbkubkvbhobkwbkxbkybkzbkAbkBbkCbkDbkEbkFbkGbkubkHbkIbkJbkKbkMbkLbkObkObkPaYibkQaMebmwbkRbkSbglbmwbkTbkUbmwbkVbkWbglbmwbnMbeMbeMbeMbeNbeMbkXbeMbjpbhLbkYaVbbkZbhNbeXbeYbeYbeXbhPblaaVbblbblcbldbleblfblgblhblibljbljbljbljbljbljblkbllblmbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbatbatbavbatbatddDbgKblrblrblrbaAbwmbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbwmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbqYbqXbqXbqXbqXbqXbqXbqXbqXbqXbqXbqZbraaGdbraaJrbfqbgNblwbimblxblxblxblybimblzbgNblAblBbjWblCblCblCblCblDblCblEbecblFblGblHblHblIblJbcoblKblLblMblNblOblPblQblRblSblRblTblTblTblTblTblUberbeublVblWblXblYblZbmabmbbmcbmdbkBbmebmfbmgbmgbmgbmgbmhbmgbmibmjbmkbmlbmebmmbmnbcEbmobmpbmqbkNbmsbmtaYiaYibjfbmwbnCbmwbmwbmwaRebmwbmwbmvbmvbmwbmwbmxbeMbeMbmybmzbeMbeMbeMbmAbmBbmCaVbbgxbhNbeXbeXbeXbeXbhPbmDaVbbmEbmFbmFbmGbmFbmHbbPbbPbbPbbPbmIbbPbbPbbPbmJblobfgbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbfjbfjbfkbfjbatddEbaAbmLbmMbmNbaAbBQbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbBQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbrbbrebrdbrfbrfbrgbrfbrfbrfbrgbluaInaInaKzbrVbcjbmQbimbmRblxblxblxblybmRbimbgNbmSbmTbjWblCbmUbmVbmWbmXblCbmYbmZbnabcobnbbncbndbnebcobejbnfbngbngbnhbngbngbngbngbnibnjbnjbnjbnkbnjbnlbnmbnnbnobnpbnqbnqbnqbnqbnqbnqbnrbnsbnrbmgbmgbntbnubnvbnwbnxbnybntbnzbmgbnAbnBbnAbnAbnAbnAbnAbnAbnAbmtaYiaYiaMebnEbnDbqrbnGbmwbnFbmwbnIbnHbnJbmwbpjaUTbnKbnLaUTaUTczObnNddybnNaUTaUTaVbbnObnPbnQbnQbnQbnQbnPbnRaVbbnSbmFbmFbmGbnTaRDbnUbnVbnWbnXbnYbnZboabobbocaQbbodaRSboebfgbfgboeaRSbofaQbbogbgHbatbgIbgIbgJbgIbatddDbgKblrblrblrbaAbGVbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbGVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbrbbrebrdbrfbrfbrgbrfbrfbrfbrgbluaInaInaKzbrVbcjbmQbimbmRblxblxblxblybmRbimbgNbmSbmTbjWblCbmUbmVbmWbmXblCbmYbmZbnabcobnbbncbndbnebcobejbnfbngbngbnhbngbngbngbngbnibnjbnjbnjbnkbnjbnlbnmbnnbnobnpbnqbnqbnqbnqbnqbnqbnrbnsbnrbmgbmgbntbnubnvbnwbnxbnybntbnzbmgbnAbnBbnAbnAbnAbnAbnAbnAbnAbmtaYiaYiaMebnEbnDbmwbnGbmwbnFbmwbnIbnHbnJbmwbpjaUTbnKbnLaUTaUTczObnNddybnNaUTaUTaVbbnObnPbnQbnQbnQbnQbnPbnRaVbbnSbmFbmFbmGbnTaRDbnUbnVbnWbnXbnYbnZboabobbocaQbbodaRSboebfgbfgboeaRSbofaQbbogbgHbatbgIbgIbgJbgIbatddDbgKblrblrblrbaAbGVbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbGVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbltbltblubltbltbltblvbltbltbtnaabaInboibdFbokbgNbjObjObjObimbolbombonboobgNbopboqbjWblCborblCbosbotblCboubovbowbcobnbbncbndbiCbcobejbnfbngboxboybozboAboBbngboCboDboEboFbnmbnmbnmbnmboGboHboIbnqboJboKboLboMboNboOboPboQbmgboRbnvboSboTboUboTboSbnvboVbmgboWboXboYboZbpabpbbpcbpdbnAbpebpfbpfbpgaMeaMeaMeaMebphbjfbphbpiaMeaURaMeaMeaUTaUTaUTaUTbplbpkbpkbpkbpkbpmbpJaVbbakbpnbakbpobpobakbpnbakaVbbnSbmFbmFbppbnTaRDaRDaRDaRDaRDbjvaRDaRDaRDaRDaQbbpqaQcaQcaQcaQcaQcaQcaQbaQbbprbpsbatbatbatbavbatbatddAbaAbaAbaAbaAbgKbqUddFbmKbmKbmKbmKbmKbmKbmKbmKbmKddGbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaLyaCuaKzaKzaKzaDEaDEaDEaDEaDEaDEbtobpubgNbgNbgNbgNbgNbgNbpvbgNbgNbgNbejbejbpxblCbpybpzbosbpAblCdlEbpCbpBbcobnbbncbndbecbcobejbnfbngbpDbpEbpFboAbpFbngboCbpGbpHbpIbmubpKbpLbnmbpMbpNboIbpObpPbpQbpRbpSbpSbpRbpTbpUbmgbpVbnvbnvbpWbpXboTboSbnvbpYbmkbpZbqabqbbqcbqdbqebqbbqfbnAbqgbqhbqibqjbqkbqlbqmbqnbqnbqnbqnbqnbqnbqobqpbqqbqnbqnbqsbqnbqnbqnbqnbqnbqnbqnbqndcZbqubqvbqvbqvbqvbqvbqvbqwbqlbqxbqybqyaHkbqAbqBbqAbqCbqAbqDbqEbqFbqAbqGbqHbqIbqJbqKbqKbqKbqKbqKbqKbqKbqLbqMbqNbqNbqNbqNbqObqNbqPbKnddHbPfddIbiibPfdlbbmKbmKbmKbmKddKbmKddKbmKbmKbmKddGbdBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbtpbtqbtqbtqbtqbwpbwpbtqbtqbxZbikaabaInaLAaJtbzPbzObzRbzQbzQbzQbzQbzSbzUbzTbcsbdVbBFbrhblCblCblCbribotblCbcobcobcobcobnbbrjbrkbrlbcobrmbrnbngbrobrpboAbpFbrqbngboCbrrbpHbpIbpIbrsbrtbnmbrubpNboIbpObrvbrwbrxbrybrzbrAbpTbrBbmgbrCbpWbnvbrDbrEbrDbnvbpWbrFbnzbrGbqbbqbbqcbrHbqebqbbrIbnAbrJbqibqibqjbqkbqlbqnbqnbqnbqnbqnbqnbqnbrKbqnbqnbqnbqnbqnbqnbrLbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrNbrObrPbqKbqKbrQbmFbmFbmFbmFbmFbmGbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbrRbmFbrSbrTbatbatbatbatbatbatbatddLbaAbgKbaAbaAbaAbqUddMddOddNbdBddPbdBddPbdBddQddMddObqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 7e1c55bc1f4..562e99420c0 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -189,10 +189,8 @@ "dG" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid1 (EAST)"; icon_state = "asteroid1"; dir = 4},/area/holodeck/source_desert) "dH" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/sleeping_carp_scroll,/obj/item/weapon/twohanded/bostaff,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) "dI" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/sleeping_carp_scroll,/obj/item/weapon/twohanded/bostaff,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) -"dJ" = (/obj/structure/rack,/obj/item/toy/sword,/obj/item/weapon/gun/projectile/revolver/capgun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "dK" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "panelscorched"},/area/prison/solitary) "dL" = (/obj/structure/stool/bed,/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) -"dM" = (/obj/machinery/prize_counter/maxed,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "dN" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid3 (EAST)"; icon_state = "asteroid3"; dir = 4},/area/holodeck/source_desert) "dO" = (/turf/simulated/floor/holofloor{tag = "icon-carpet1-0 (EAST)"; icon_state = "carpet1-0"; dir = 4},/area/holodeck/source_theatre) "dP" = (/obj/structure/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet5-1 (EAST)"; icon_state = "carpet5-1"; dir = 4},/area/holodeck/source_theatre) @@ -256,6 +254,8 @@ "fB" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding) "fC" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding) "fD" = (/obj/structure/rack,/obj/item/device/camera,/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) +"fE" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) +"fF" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/revolver/capgun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "fG" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "fH" = (/turf/unsimulated/beach/sand,/area/ninja/holding) "fI" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/ninja/holding) @@ -1232,7 +1232,7 @@ ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapap ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckbockckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeDeqeqeqbsereEeFeGerbseHeHeIeJeJbseveKeveLevbseMeNeNeNeObsePeQeQeQeRbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapavapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqeqeqeXeqbsereYeYeYerbseHeZeZeZeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfffffffffffgfgfhfififjfgfgfgfgfgfgfgfgfgfkfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeqbserererererbseHeIeIeIeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD -ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNftfufvfwfffgfxfyfzfAfAfBfCfDdJdMfGfHfIfHfHfJfKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeqeqfMeqbserfNfOfPerbsfQfRfRfRfSbsevfTevevevbsfUfVfVfVfWbsePeQeQeQeRbD +ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNftfufvfwfffgfxfyfzfAfAfBfCfDfEfFfGfHfIfHfHfJfKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeqeqfMeqbserfNfOfPerbsfQfRfRfRfSbsevfTevevevbsfUfVfVfVfWbsePeQeQeQeRbD ckckckckckckckclckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfffffffufufufffggbfyfyfyfyfygcgdgdgdgefHfHfHgffHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqgkeqeqeqbserglgmgnerbsgogpgpgpgqbsevevevgrevbsgsgtgtgtgubsgveQeQeQgwbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNgygzgAfufufufffggBfygCgDgEgFgGgdgdgdgdfHfHgHfHgIfIfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeDbserglgmgnerbsgJeIgKeIgLbsevevevevevbsgMeNeNeNgNbsgveQeQeQgwbD ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckcmckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNgOgPgQfufufufffggRgdgegegegegegdgdgdgdfHfHfHgSfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbsgTeqeqeqeqbserglgmgnerbsgJgUgUgUgLbsgVgVgVgVgVbsgMeNeNeNgNbsgveQeQeQgwbD diff --git a/code/modules/arcade/prize_counter.dm b/code/modules/arcade/prize_counter.dm index 02b0c4c6f9e..5f1c8024553 100644 --- a/code/modules/arcade/prize_counter.dm +++ b/code/modules/arcade/prize_counter.dm @@ -21,16 +21,6 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() -/obj/machinery/prize_counter/maxed/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/prize_counter(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin/bluespace(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() - /obj/machinery/prize_counter/RefreshParts() for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) prize_tier = B.rating From 951fb006269b438194876519b1d84da1d137c989 Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Tue, 16 Feb 2016 22:43:45 -0500 Subject: [PATCH 7/7] unEquip, typeless list, and upgraded subtype --- code/modules/arcade/prize_counter.dm | 17 +++++++++++++++-- code/modules/arcade/prize_datums.dm | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/code/modules/arcade/prize_counter.dm b/code/modules/arcade/prize_counter.dm index 5f1c8024553..51c3a43a700 100644 --- a/code/modules/arcade/prize_counter.dm +++ b/code/modules/arcade/prize_counter.dm @@ -21,6 +21,16 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() +/obj/machinery/prize_counter/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/prize_counter(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + RefreshParts() + /obj/machinery/prize_counter/RefreshParts() for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) prize_tier = B.rating @@ -39,8 +49,11 @@ /obj/machinery/prize_counter/attackby(var/obj/item/O as obj, var/mob/user as mob, params) if(istype(O, /obj/item/stack/tickets)) var/obj/item/stack/tickets/T = O - tickets += T.amount - qdel(T) + if(user.unEquip(T)) //Because if you can't drop it for some reason, you shouldn't be increasing the tickets var + tickets += T.amount + qdel(T) + else + user << "\The [T] seems stuck to your hand!" return if(istype(O, /obj/item/weapon/screwdriver) && anchored) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm index 8d1bd5da023..879efe1c3ce 100644 --- a/code/modules/arcade/prize_datums.dm +++ b/code/modules/arcade/prize_datums.dm @@ -2,7 +2,7 @@ var/global/datum/prizes/global_prizes = new /datum/prizes - var/list/datum/prize_item/prizes = list() + var/list/prizes = list() /datum/prizes/New() for(var/itempath in subtypesof(/datum/prize_item))