mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-28 07:39:13 +01:00
Merge branch 'master' into shep-dev-aurora-cooking-port
This commit is contained in:
@@ -476,7 +476,7 @@ var/list/civilian_cartridges = list(
|
||||
else
|
||||
JaniData["user_loc"] = list("x" = 0, "y" = 0)
|
||||
var/MopData[0]
|
||||
for(var/obj/item/weapon/mop/M in all_mops)
|
||||
for(var/obj/item/weapon/mop/M in GLOB.all_mops)
|
||||
var/turf/ml = get_turf(M)
|
||||
if(ml)
|
||||
if(ml.z != cl.z)
|
||||
@@ -489,7 +489,7 @@ var/list/civilian_cartridges = list(
|
||||
|
||||
|
||||
var/BucketData[0]
|
||||
for(var/obj/structure/mopbucket/B in all_mopbuckets)
|
||||
for(var/obj/structure/mopbucket/B in GLOB.all_mopbuckets)
|
||||
var/turf/bl = get_turf(B)
|
||||
if(bl)
|
||||
if(bl.z != cl.z)
|
||||
@@ -513,7 +513,7 @@ var/list/civilian_cartridges = list(
|
||||
if(!CbotData.len)
|
||||
CbotData[++CbotData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
|
||||
var/CartData[0]
|
||||
for(var/obj/structure/janitorialcart/B in all_janitorial_carts)
|
||||
for(var/obj/structure/janitorialcart/B in GLOB.all_janitorial_carts)
|
||||
var/turf/bl = get_turf(B)
|
||||
if(bl)
|
||||
if(bl.z != cl.z)
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
// Fetch janitorial locator
|
||||
var/janidata[0]
|
||||
var/list/cleaningList = list()
|
||||
cleaningList += all_mops + all_mopbuckets + all_janitorial_carts
|
||||
cleaningList += GLOB.all_mops + GLOB.all_mopbuckets + GLOB.all_janitorial_carts
|
||||
|
||||
// User's location
|
||||
var/turf/userloc = get_turf(src)
|
||||
|
||||
@@ -66,21 +66,21 @@
|
||||
|
||||
/obj/item/device/perfect_tele/proc/rebuild_radial_images()
|
||||
radial_images.Cut()
|
||||
|
||||
|
||||
var/index = 1
|
||||
for(var/bcn in beacons) //Grumble
|
||||
var/image/I = image(icon = 'icons/mob/radial_vr.dmi', icon_state = "tl_[index]")
|
||||
|
||||
|
||||
var/obj/item/device/perfect_tele_beacon/beacon = beacons[bcn]
|
||||
if(destination == beacon)
|
||||
I.overlays += radial_seton
|
||||
else
|
||||
I.overlays += radial_set
|
||||
|
||||
|
||||
radial_images[bcn] = I
|
||||
|
||||
|
||||
index++
|
||||
|
||||
|
||||
if(beacons_left)
|
||||
var/image/I = image(icon = 'icons/mob/radial_vr.dmi', icon_state = "tl_[index]")
|
||||
I.overlays += radial_plus
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
/obj/item/device/perfect_tele/attack_self(mob/user)
|
||||
if(loc_network)
|
||||
for(var/obj/item/device/perfect_tele_beacon/stationary/nb in premade_tele_beacons)
|
||||
for(var/obj/item/device/perfect_tele_beacon/stationary/nb in GLOB.premade_tele_beacons)
|
||||
if(nb.tele_network == loc_network)
|
||||
beacons[nb.tele_name] = nb
|
||||
loc_network = null //Consumed
|
||||
@@ -124,12 +124,12 @@
|
||||
and tele-vore. Make sure you carefully examine someone's OOC prefs before teleporting them if you are \
|
||||
going to use this device for ERP purposes. This device records all warnings given and teleport events for \
|
||||
admin review in case of pref-breaking, so just don't do it.","OOC WARNING")
|
||||
|
||||
|
||||
var/choice = show_radial_menu(user, src, radial_images, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
|
||||
|
||||
if(!choice)
|
||||
return
|
||||
|
||||
|
||||
else if(choice == "New Beacon")
|
||||
if(beacons_left <= 0)
|
||||
to_chat(user, "<span class='warning'>The translocator can't support any more beacons!</span>")
|
||||
@@ -492,7 +492,7 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
|
||||
battery_lock = 1
|
||||
unacidable = 1
|
||||
failure_chance = 0 //Percent
|
||||
|
||||
|
||||
var/phase_power = 75
|
||||
var/recharging = 0
|
||||
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
// Contains the supply vouchers for taskmanager.dm
|
||||
/obj/item/surplus_voucher
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "pizza_voucher"
|
||||
throwforce = 0
|
||||
throw_speed = 5
|
||||
throw_range = 4
|
||||
force = 0
|
||||
|
||||
/obj/item/surplus_voucher/com
|
||||
name = "Reward Surplus Voucher"
|
||||
desc = "A surplus voucher! This one is meant to reward valued employees! Activate it for your surplus delivery!"
|
||||
/obj/item/surplus_voucher/com/attack_self(mob/user as mob)
|
||||
spawn_item(get_turf(src))
|
||||
|
||||
/obj/item/surplus_voucher/com/proc/spawn_item(var/turf/T)
|
||||
var/path = pick(prob(6);/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/drinks/bottle/wine,
|
||||
prob(3);/obj/item/weapon/spacecash/c50,
|
||||
prob(3);/obj/item/weapon/spacecash/c100,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/cheeseburger,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/fries,
|
||||
prob(2);/obj/item/pizzabox/meat,
|
||||
prob(2);/obj/item/pizzabox/vegetable,
|
||||
prob(1);/obj/item/pizzabox/pineapple,
|
||||
prob(2);/obj/item/pizzabox/margherita,
|
||||
prob(2);/obj/item/pizzabox/mushroom,
|
||||
prob(3);/obj/item/toy/bouquet,
|
||||
prob(5);/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,
|
||||
prob(3);/obj/item/weapon/storage/box/snappops,
|
||||
prob(2);/obj/item/clothing/under/syndicate/tacticool,
|
||||
prob(3);/obj/item/clothing/head/cowboy_hat/small,
|
||||
prob(3);/obj/item/toy/sword,
|
||||
prob(3);/obj/item/toy/cultsword,
|
||||
prob(1);/obj/structure/plushie/ian)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 25, 1)
|
||||
new path(T)
|
||||
del(src)
|
||||
|
||||
/obj/item/surplus_voucher/eng
|
||||
name = "Engineering Surplus Voucher"
|
||||
desc = "A surplus voucher! This one is meant to resupply engineering with tools! Activate it for your surplus delivery!"
|
||||
/obj/item/surplus_voucher/eng/attack_self(mob/user as mob)
|
||||
spawn_item(get_turf(src))
|
||||
|
||||
/obj/item/surplus_voucher/eng/proc/spawn_item(var/turf/T)
|
||||
var/path = pick(prob(2);/datum/design/item/powercell/high,
|
||||
prob(2);/obj/item/weapon/storage/briefcase/inflatable,
|
||||
prob(2);/obj/item/clamp,
|
||||
prob(3);/obj/item/weapon/extinguisher,
|
||||
prob(3);/obj/item/weapon/weldingtool/largetank,
|
||||
prob(2);/obj/item/weapon/tool/wirecutters,
|
||||
prob(3);/obj/item/weapon/tool/wrench,
|
||||
prob(3);/obj/item/weapon/tool/screwdriver,
|
||||
prob(3);/obj/item/device/analyzer,
|
||||
prob(3);/obj/item/device/t_scanner,
|
||||
prob(2);/obj/item/weapon/grenade/chem_grenade/metalfoam,
|
||||
prob(1);/obj/item/toy/figure/engineer)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 25, 1)
|
||||
new path(T)
|
||||
del(src)
|
||||
|
||||
|
||||
|
||||
/obj/item/surplus_voucher/med
|
||||
name = "Medical Surplus Voucher"
|
||||
desc = "A surplus voucher! This one is meant to resupply medical with chemicals and kits! Activate it for your surplus delivery!"
|
||||
/obj/item/surplus_voucher/med/attack_self(mob/user as mob)
|
||||
spawn_item(get_turf(src))
|
||||
|
||||
/obj/item/surplus_voucher/med/proc/spawn_item(var/turf/T)
|
||||
var/path = pick(prob(6);/obj/item/weapon/storage/firstaid/regular,
|
||||
prob(6);/obj/item/weapon/storage/firstaid/fire,
|
||||
prob(6);/obj/item/weapon/storage/firstaid/toxin,
|
||||
prob(6);/obj/item/weapon/storage/firstaid/o2,
|
||||
prob(6);/obj/item/weapon/storage/firstaid/adv,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/antitox,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/bicaridine,
|
||||
prob(2);/obj/item/weapon/storage/pill_bottle/dexalin_plus,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/dylovene,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/inaprovaline,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/kelotane,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/dermaline,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/spaceacillin,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/tramadol,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/carbon,
|
||||
prob(3);/obj/item/weapon/storage/pill_bottle/iron,
|
||||
prob(4);/obj/item/weapon/storage/pill_bottle/assorted,
|
||||
prob(4);/obj/item/weapon/backup_implanter,
|
||||
prob(2);/obj/item/toy/plushie/borgplushie/medihound)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 25, 1)
|
||||
new path(T)
|
||||
del(src)
|
||||
|
||||
/obj/item/surplus_voucher/sci
|
||||
name = "Science Surplus Voucher"
|
||||
desc = "A surplus voucher! This one is meant to supply science with a variety of miscellaneous items! Activate it for your surplus delivery!"
|
||||
/obj/item/surplus_voucher/sci/attack_self(mob/user as mob)
|
||||
spawn_item(get_turf(src))
|
||||
|
||||
/obj/item/surplus_voucher/sci/proc/spawn_item(var/turf/T)
|
||||
var/path = pick(prob(1);/obj/item/device/kit/paint/ripley,
|
||||
prob(1);/obj/item/device/kit/paint/ripley/death,
|
||||
prob(1);/obj/item/device/kit/paint/ripley/flames_red,
|
||||
prob(1);/obj/item/device/kit/paint/ripley/flames_blue,
|
||||
prob(1);/obj/item/device/kit/paint/durand,
|
||||
prob(1);/obj/item/device/kit/paint/gygax/darkgygax,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/monkeycube,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sarucube,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sparracube,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube,
|
||||
prob(2);/obj/item/weapon/storage/part_replacer,
|
||||
prob(2);/obj/item/device/integrated_circuit_printer,
|
||||
prob(1);/obj/item/weapon/disk/integrated_circuit/upgrade/advanced,
|
||||
prob(3);/obj/item/stack/nanopaste,
|
||||
prob(3);/obj/item/weapon/melee/baton/slime,
|
||||
prob(3);/obj/item/weapon/gun/energy/taser/xeno,
|
||||
prob(3);/obj/item/weapon/storage/box/monkeycubes,
|
||||
prob(1);/obj/item/toy/figure/borg)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 25, 1)
|
||||
new path(T)
|
||||
del(src)
|
||||
|
||||
/obj/item/surplus_voucher/sec
|
||||
name = "Security Surplus Voucher"
|
||||
desc = "A surplus voucher! This one is meant to resupply security with gear... and donuts! Activate it for your surplus delivery!"
|
||||
/obj/item/surplus_voucher/sec/attack_self(mob/user as mob)
|
||||
spawn_item(get_turf(src))
|
||||
|
||||
/obj/item/surplus_voucher/sec/proc/spawn_item(var/turf/T)
|
||||
var/path = pick(prob(2);/obj/item/weapon/storage/box/flashbangs,
|
||||
prob(4);/obj/item/weapon/storage/box/flare,
|
||||
prob(5);/obj/item/weapon/storage/box/donut,
|
||||
prob(4);/obj/item/weapon/storage/box/handcuffs,
|
||||
prob(3);/obj/item/weapon/reagent_containers/spray/pepper,
|
||||
prob(3);/obj/item/weapon/melee/baton/loaded,
|
||||
prob(2);/obj/item/weapon/storage/box/beanbags,
|
||||
prob(2);/obj/item/weapon/storage/box/stunshells,
|
||||
prob(2);/obj/item/ammo_magazine/m45/rubber,
|
||||
prob(2);/obj/item/ammo_magazine/m9mmt/rubber,
|
||||
prob(2);/obj/item/weapon/cell/device/weapon,
|
||||
prob(1);/obj/item/toy/plushie/borgplushie)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 25, 1)
|
||||
new path(T)
|
||||
del(src)
|
||||
|
||||
/obj/item/surplus_voucher/ser
|
||||
name = "Service Surplus Voucher"
|
||||
desc = "A surplus voucher! This one is meant to generally resupply service employees! Activate it for your surplus delivery!"
|
||||
/obj/item/surplus_voucher/ser/attack_self(mob/user as mob)
|
||||
spawn_item(get_turf(src))
|
||||
|
||||
/obj/item/surplus_voucher/ser/proc/spawn_item(var/turf/T)
|
||||
var/path = pick(prob(4);/obj/item/weapon/reagent_containers/food/drinks/milk,
|
||||
prob(4);/obj/item/weapon/reagent_containers/food/condiment/flour,
|
||||
prob(4);/obj/item/weapon/reagent_containers/food/drinks/soymilk,
|
||||
prob(4);/obj/item/weapon/storage/fancy/egg_box,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/meat,
|
||||
prob(3);/obj/item/weapon/reagent_containers/spray/cleaner,
|
||||
prob(2);/obj/item/weapon/grenade/chem_grenade/cleaner,
|
||||
prob(1);/obj/item/weapon/storage/box/monkeycubes,
|
||||
prob(3);/obj/item/weapon/reagent_containers/spray/plantbgone,
|
||||
prob(2);/obj/item/seeds/sunflowerseed,
|
||||
prob(2);/obj/item/seeds/cornseed,
|
||||
prob(2);/obj/item/seeds/berryseed,
|
||||
prob(2);/obj/item/seeds/wheatseed,
|
||||
prob(2);/obj/item/seeds/orangeseed,
|
||||
prob(1);/obj/item/toy/figure/bartender)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 25, 1)
|
||||
new path(T)
|
||||
del(src)
|
||||
@@ -0,0 +1,115 @@
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino
|
||||
|
||||
desc = "It is set to detonate in 5 seconds. It will release a goose that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Goose)"
|
||||
icon = 'icons/obj/grenade_ch.dmi'
|
||||
icon_state = "casino"
|
||||
item_state = "casino"
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 2)
|
||||
spawner_type = /mob/living/simple_mob/animal/space/goose/domesticated
|
||||
|
||||
|
||||
// Detonate now just handles the two loops that query for people in lockers and people who can see it.
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/detonate()
|
||||
|
||||
if(spawner_type && deliveryamt)
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
for(var/i=1, i<=deliveryamt, i++)
|
||||
var/atom/movable/x = new spawner_type(T)
|
||||
if(prob(50))
|
||||
for(var/j = 1, j <= rand(1, 3), j++)
|
||||
step(x, pick(NORTH,SOUTH,EAST,WEST))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/goat
|
||||
desc = "It is set to detonate in 5 seconds. It will release a goat that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Goat)"
|
||||
spawner_type = /mob/living/simple_mob/animal/goat
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/armadillo
|
||||
desc = "It is set to detonate in 5 seconds. It will release a armadillo that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Armadillo)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/armadillo
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/cat
|
||||
desc = "It is set to detonate in 5 seconds. It will release a cat that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Cat)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/cat
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/chicken
|
||||
desc = "It is set to detonate in 5 seconds. It will release a chicken that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Chicken)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/chicken
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/cow
|
||||
desc = "It is set to detonate in 5 seconds. It will release a cow that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Cow)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/cow
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/corgi
|
||||
desc = "It is set to detonate in 5 seconds. It will release a corgi that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Corgi)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/dog/corgi
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/fox
|
||||
desc = "It is set to detonate in 5 seconds. It will release a fox that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Fox)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/fox
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/lizard
|
||||
desc = "It is set to detonate in 5 seconds. It will release a lizard that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Lizard)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/lizard
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/penguin
|
||||
desc = "It is set to detonate in 5 seconds. It will release a penguin that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Penguin)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/penguin
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/snake
|
||||
desc = "It is set to detonate in 5 seconds. It will release a snake that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Snake)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/snake
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/yithian
|
||||
desc = "It is set to detonate in 5 seconds. It will release a yithian that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Yithian)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/yithian
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/tindalos
|
||||
desc = "It is set to detonate in 5 seconds. It will release a tindalos that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Tindalos)"
|
||||
spawner_type = /mob/living/simple_mob/animal/passive/tindalos
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/fennec
|
||||
desc = "It is set to detonate in 5 seconds. It will release a fennec that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Fennec)"
|
||||
spawner_type = /mob/living/simple_mob/vore/fennec
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/redpanda
|
||||
desc = "It is set to detonate in 5 seconds. It will release a red panda that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Red panda)"
|
||||
spawner_type = /mob/living/simple_mob/vore/redpanda
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/horse
|
||||
desc = "It is set to detonate in 5 seconds. It will release a horse that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Horse)"
|
||||
spawner_type = /mob/living/simple_mob/vore/horse
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/otie
|
||||
desc = "It is set to detonate in 5 seconds. It will release a otie that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Otie)"
|
||||
spawner_type = /mob/living/simple_mob/otie/friendly
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/otie/chubby
|
||||
desc = "It is set to detonate in 5 seconds. It will release a chonker otie that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Well feed Otie)"
|
||||
spawner_type = /mob/living/simple_mob/otie/friendly/chubby
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/zorgoia
|
||||
desc = "It is set to detonate in 5 seconds. It will release a zorgoia that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Zorgoia)"
|
||||
spawner_type = /mob/living/simple_mob/otie/zorgoia/friendly
|
||||
@@ -11,8 +11,16 @@
|
||||
desc = "An ID card for an employee of the golden goose casino with extra access to prize booth."
|
||||
access = list(160, 200)
|
||||
|
||||
/obj/item/weapon/card/id/casino
|
||||
name = "casino employee id"
|
||||
desc = "An ID card for an employee of the golden goose casino."
|
||||
icon_state = "ch_casino"
|
||||
item_state = "gold_id"
|
||||
|
||||
access = list(160, 200, 201)
|
||||
|
||||
/obj/item/weapon/card/id/casino/manager
|
||||
name = "casino manager id"
|
||||
desc = "An ID card for the manager of the golden goose casino."
|
||||
icon_state = "ch_casino_manager"
|
||||
access = list(160, 200, 300)
|
||||
access = list(160, 200, 201, 300)
|
||||
@@ -0,0 +1,189 @@
|
||||
/obj/item/weapon/taskmanager
|
||||
name = "Task Manager"
|
||||
desc = "A high-tech tool used to pull surplus items from offsite storage. Select a department to begin! Has a five minute cooldown between successful uses"
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "taskmanager"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_vr.dmi',
|
||||
)
|
||||
force = 0
|
||||
throwforce = 7
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
preserve_item = FALSE
|
||||
var/scancount = 0
|
||||
var/scanreq = 3
|
||||
var/mode = 0
|
||||
var/formatx1 = 0
|
||||
var/formatx2 = 0
|
||||
var/formatx3 = 0
|
||||
var/format = ""
|
||||
var/ready = 1
|
||||
var/list/scannables = list()
|
||||
var/list/scanned = list()
|
||||
var/static/image/radial_image_bridge = image(icon = 'icons/mob/radial_ch.dmi', icon_state = "bridge")
|
||||
var/static/image/radial_image_engineering = image(icon= 'icons/mob/radial_ch.dmi', icon_state = "eng")
|
||||
var/static/image/radial_image_medical = image(icon = 'icons/mob/radial_ch.dmi', icon_state = "medbay")
|
||||
var/static/image/radial_image_science = image(icon = 'icons/mob/radial_ch.dmi', icon_state = "sci")
|
||||
var/static/image/radial_image_service = image(icon = 'icons/mob/radial_ch.dmi', icon_state = "bar")
|
||||
var/static/image/radial_image_security = image(icon = 'icons/mob/radial_ch.dmi', icon_state = "armory")
|
||||
|
||||
/obj/item/weapon/taskmanager/proc/check_menu(mob/living/user)
|
||||
if(!istype(user))
|
||||
return FALSE
|
||||
if(user.incapacitated() || !user.Adjacent(src))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/item/weapon/taskmanager/attack_self(mob/user)
|
||||
var/list/choices = list(
|
||||
"Bridge" = radial_image_bridge,
|
||||
"Engineering" = radial_image_engineering,
|
||||
"Medical" = radial_image_medical,
|
||||
"Science" = radial_image_science,
|
||||
"Service" = radial_image_service,
|
||||
"Security" = radial_image_security
|
||||
)
|
||||
|
||||
var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
if(!check_menu(user))
|
||||
return
|
||||
switch(choice)
|
||||
if("Bridge")
|
||||
mode = 1
|
||||
scancount = 0
|
||||
scanned = list()
|
||||
scannables = list(/mob/living/simple_mob/animal/passive/dog/corgi/Ian,/obj/machinery/photocopier,/obj/machinery/papershredder,/obj/item/weapon/pen/multi,
|
||||
/obj/structure/filingcabinet/chestdrawer,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/red,/obj/machinery/computer/communications,
|
||||
/obj/machinery/photocopier/faxmachine,/obj/item/weapon/hand_labeler,/obj/item/device/megaphone,/obj/item/device/taperecorder,/obj/item/weapon/melee/chainofcommand,
|
||||
/obj/item/weapon/hand_tele,/obj/item/weapon/stamp/captain,/obj/item/weapon/stamp/denied)
|
||||
if("Engineering")
|
||||
mode = 2
|
||||
scancount = 0
|
||||
scanned = list()
|
||||
scannables = list(/obj/item/weapon/book/manual/supermatter_engine,/obj/machinery/computer/security/engineering,/obj/item/weapon/rcd,/obj/item/weapon/stamp/ce,
|
||||
/obj/item/weapon/folder/yellow_ce,/obj/item/clothing/glasses/meson,/obj/item/weapon/tape_roll,/obj/machinery/computer/power_monitor,/obj/machinery/computer/rcon,
|
||||
/obj/machinery/computer/atmos_alert,/obj/machinery/pipedispenser,/obj/machinery/pipedispenser/disposal,/obj/item/clothing/head/welding,/obj/item/clothing/glasses/welding,
|
||||
/obj/machinery/vending/tool,/obj/machinery/vending/engivend,/obj/structure/reagent_dispensers/fueltank,/obj/structure/reagent_dispensers/watertank)
|
||||
if("Medical")
|
||||
mode = 3
|
||||
scancount = 0
|
||||
scanned = list()
|
||||
scannables = list(/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/device/sleevemate,/obj/item/device/defib_kit/loaded,/obj/item/organ/internal/lungs/erikLungs,
|
||||
/obj/machinery/reagentgrinder,/obj/machinery/chem_master,/obj/machinery/chemical_dispenser/full,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker,
|
||||
/obj/item/device/mass_spectrometer/adv,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/toxin,
|
||||
/obj/item/weapon/storage/firstaid/fire,/obj/machinery/vending/medical,/obj/item/roller,/obj/machinery/vending/blood,/obj/machinery/atmospherics/unary/cryo_cell,
|
||||
/obj/machinery/clonepod/transhuman/full,/obj/machinery/body_scanconsole,/obj/machinery/sleep_console)
|
||||
if("Science")
|
||||
mode = 4
|
||||
scancount = 0
|
||||
scanned = list()
|
||||
scannables = list(/obj/machinery/pros_fabricator,/obj/machinery/mecha_part_fabricator,/obj/machinery/autolathe,/obj/machinery/computer/rdconsole/robotics,
|
||||
/obj/machinery/r_n_d/circuit_imprinter,/obj/machinery/r_n_d/destructive_analyzer,/obj/machinery/computer/rdconsole/core,/obj/machinery/r_n_d/protolathe,
|
||||
/mob/living/simple_mob/slime/xenobio/rainbow/kendrick,/obj/machinery/computer/rdservercontrol,/obj/machinery/r_n_d/server/core,/obj/machinery/r_n_d/server/robotics,
|
||||
/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/gun/energy/taser/xeno,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/device/slime_scanner,
|
||||
/obj/machinery/processor)
|
||||
if("Service")
|
||||
mode = 5
|
||||
scancount = 0
|
||||
scanned = list()
|
||||
scannables = list(/obj/machinery/holosign/bar,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/fork,
|
||||
/mob/living/carbon/human/monkey/punpun,/obj/machinery/chemical_dispenser/bar_alc/full,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/machinery/smartfridge/drinks,
|
||||
/obj/machinery/vending/boozeomat,/obj/machinery/media/jukebox,/obj/machinery/chem_master/condimaster,/obj/machinery/microwave,
|
||||
/obj/machinery/vending/dinnerware,/obj/structure/closet/secure_closet/freezer/meat,/obj/structure/closet/secure_closet/freezer/fridge,
|
||||
/obj/machinery/cooker/fryer,/obj/machinery/cooker/grill,/obj/machinery/cooker/oven,/obj/machinery/icecream_vat,/obj/machinery/gibber,/obj/structure/kitchenspike,
|
||||
/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/vending/hydronutrients,/obj/machinery/seed_storage/garden,/obj/machinery/honey_extractor,
|
||||
/obj/machinery/biogenerator,/obj/machinery/seed_extractor,/obj/machinery/microwave)
|
||||
if("Security")
|
||||
mode = 6
|
||||
scancount = 0
|
||||
scanned = list()
|
||||
scannables = list(/obj/machinery/deployable/barrier,/obj/machinery/flasher/portable,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/taperecorder,
|
||||
/mob/living/simple_mob/animal/passive/snake/noodle,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/reagent_containers/spray/pepper,
|
||||
/obj/item/weapon/storage/box/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud/aviator,/obj/machinery/computer/secure_data,/obj/machinery/computer/security,
|
||||
/obj/item/weapon/storage/briefcase/crimekit,/obj/machinery/microscope,/obj/machinery/dnaforensics,/obj/machinery/flasher,/obj/structure/closet/secure_closet/brig,
|
||||
/obj/structure/closet/secure_closet/warden,/obj/machinery/vending/security,/obj/structure/closet/secure_closet/hos2,/obj/structure/closet/secure_closet/hos,
|
||||
/obj/item/weapon/stamp/hos,/obj/structure/closet/secure_closet/security)
|
||||
else
|
||||
return
|
||||
|
||||
scanreq = rand(3,9)
|
||||
to_chat(user, span("notice", "Changed mode to '[choice]'."))
|
||||
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/taskmanager/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(!ready)
|
||||
to_chat(user, "<span class='notice'>The Task Manager is still recharging!</span>")
|
||||
return
|
||||
if(mode == 0)
|
||||
to_chat(user, "<span class='notice'>You must choose a department first!</span>")
|
||||
return
|
||||
if((target.type in scannables) && scancount < scanreq && !(target.type in scanned))
|
||||
scancount = scancount + 1
|
||||
scanned.Add(target.type)
|
||||
var/scansleft = scanreq - scancount
|
||||
playsound(src, 'sound/machines/beep.ogg', 50)
|
||||
to_chat(user, "<span class='notice'>You must scan [scansleft] more department objects!</span>")
|
||||
if (scancount == scanreq)
|
||||
formatx1 = rand(1,5)
|
||||
formatx2 = rand(0,80)
|
||||
formatx3 = rand(1,6)
|
||||
format = "Greetings supervisors,<BR> I have detected [formatx1] infractions in this department alone.<BR> Scans indicate that this department is functioning at [formatx2]% capacity.<BR> Additional supplies are requested, priority level [formatx3]<BR> I await your delivery"
|
||||
to_chat(user, "<span class='notice'>Scans complete! [formatx1] infractions detected, department at [formatx2]% capacity, alert level [formatx3]</span>")
|
||||
to_chat(user, "<span class='notice'>Please write down the following form on a paper, and replace all X's with the appopriate number. Do NOT change anything but the X's</span>")
|
||||
to_chat(user, "<span class='notice'>Greetings supervisors,<BR> I have detected X infractions in this department alone.<BR> Scans indicate that this department is functioning at X% capacity.<BR> Additional supplies are requested, priority level X<BR> I await your delivery</span>")
|
||||
return
|
||||
if(istype(target,/obj/item/weapon/paper) && scancount == scanreq)
|
||||
scan_paper(user,target)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The Task Manager can't scan this!</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/taskmanager/proc/scan_paper(user,paper)
|
||||
var/obj/item/weapon/paper/P = paper
|
||||
if(findtext(P.info,format))
|
||||
deploy_voucher(get_turf(src))
|
||||
scancount = 0
|
||||
scanned = list()
|
||||
del(P)
|
||||
to_chat(user, "<span class='notice'>Format accepted, printing voucher!</span>")
|
||||
ready = 0
|
||||
spawn(300 SECONDS)
|
||||
ready = 1
|
||||
return
|
||||
if(!findtext(P.info,format))
|
||||
to_chat(user, "<span class='notice'>Incorrect format!</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>If you are reading this, something has gone horribly wrong!</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/taskmanager/proc/deploy_voucher(var/turf/T)
|
||||
switch(mode)
|
||||
if (1)
|
||||
new /obj/item/surplus_voucher/com(T)
|
||||
playsound(src.loc, 'sound/machines/copier.ogg', 50, 0)
|
||||
if (2)
|
||||
new /obj/item/surplus_voucher/eng(T)
|
||||
playsound(src.loc, 'sound/machines/copier.ogg', 50, 0)
|
||||
if (3)
|
||||
new /obj/item/surplus_voucher/med(T)
|
||||
playsound(src.loc, 'sound/machines/copier.ogg', 50, 0)
|
||||
if (4)
|
||||
new /obj/item/surplus_voucher/sci(T)
|
||||
playsound(src.loc, 'sound/machines/copier.ogg', 50, 0)
|
||||
if (5)
|
||||
new /obj/item/surplus_voucher/ser(T)
|
||||
playsound(src.loc, 'sound/machines/copier.ogg', 50, 0)
|
||||
if (6)
|
||||
new /obj/item/surplus_voucher/sec(T)
|
||||
playsound(src.loc, 'sound/machines/copier.ogg', 50, 0)
|
||||
@@ -59,7 +59,7 @@ Frequency:
|
||||
if (sr)
|
||||
src.temp += "<B>Located Beacons:</B><BR>"
|
||||
|
||||
for(var/obj/item/device/radio/beacon/W in all_beacons)
|
||||
for(var/obj/item/device/radio/beacon/W in GLOB.all_beacons)
|
||||
if (W.frequency == src.frequency)
|
||||
var/turf/tr = get_turf(W)
|
||||
if (tr.z == sr.z && tr)
|
||||
@@ -77,7 +77,7 @@ Frequency:
|
||||
src.temp += "[W.code]-[dir2text(get_dir(sr, tr))]-[direct]<BR>"
|
||||
|
||||
src.temp += "<B>Extraneous Signals:</B><BR>"
|
||||
for (var/obj/item/weapon/implant/tracking/W in all_tracking_implants)
|
||||
for (var/obj/item/weapon/implant/tracking/W in GLOB.all_tracking_implants)
|
||||
if (!W.implanted || !(istype(W.loc,/obj/item/organ/external) || ismob(W.loc) || W.malfunction))
|
||||
continue
|
||||
|
||||
@@ -164,7 +164,7 @@ Frequency:
|
||||
if ((user.get_active_hand() != src || user.stat || user.restrained()))
|
||||
return
|
||||
var/count = 0 //num of portals from this teleport in world
|
||||
for(var/obj/effect/portal/PO in all_portals)
|
||||
for(var/obj/effect/portal/PO in GLOB.all_portals)
|
||||
if(PO.creator == src) count++
|
||||
if(count >= 3)
|
||||
user.show_message("<span class='notice'>\The [src] is recharging!</span>")
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
/mob/living/simple_mob/vore/aggressive/mimic,
|
||||
/mob/living/simple_mob/vore/aggressive/rat,
|
||||
/mob/living/simple_mob/vore/aggressive/rat/tame,
|
||||
/mob/living/simple_mob/otie/zorgoia, //CHOMPstation edit
|
||||
// /mob/living/simple_mob/otie;0.5
|
||||
))
|
||||
return ..()
|
||||
|
||||
@@ -344,7 +344,7 @@ GLOBAL_LIST_BOILERPLATE(all_crematoriums, /obj/structure/morgue/crematorium)
|
||||
if(..())
|
||||
return
|
||||
if(src.allowed(user))
|
||||
for (var/obj/structure/morgue/crematorium/C in all_crematoriums)
|
||||
for (var/obj/structure/morgue/crematorium/C in GLOB.all_crematoriums)
|
||||
if (C.id == id)
|
||||
if (!C.cremating)
|
||||
C.cremate(user)
|
||||
|
||||
Reference in New Issue
Block a user