-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
U.M.E.F. away mission #620
base: master
Are you sure you want to change the base?
Changes from 3 commits
6de3e7b
27bd357
2a372b6
6c792dd
4695977
92aa1a7
f54ac47
f54d6bd
0e700f9
289ba9c
1944b92
aa4abf1
6a82fe7
3f05003
1ca53f7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
// Sources of status effects | ||
// The casino's maze | ||
#define CASINO_MAZE "casino_maze" | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
/area/awaymission/casino | ||
name = "Casino" | ||
icon_state = "away" | ||
static_lighting = FALSE | ||
base_lighting_alpha = 255 | ||
base_lighting_color = "#FFFFCC" | ||
requires_power = FALSE | ||
has_gravity = STANDARD_GRAVITY | ||
|
||
/area/awaymission/casino/staffhall | ||
name = "Staff Hallway" | ||
base_lighting_alpha = 220 | ||
icon_state = "awaycontent1" | ||
|
||
/area/awaymission/casino/vault | ||
name = "Agent Green's Riches" | ||
icon_state = "awaycontent2" | ||
|
||
/area/awaymission/casino/floor | ||
name = "Casino Floor" | ||
icon_state = "awaycontent3" | ||
ambientsounds = list( | ||
'sound/machines/coindrop.ogg', | ||
'sound/machines/coindrop2.ogg', | ||
'sound/machines/roulettejackpot.ogg', | ||
'sound/machines/roulettewheel.ogg', | ||
'maplestation_modules/sound/ambience/casino/CasinoAmbience1.ogg', | ||
'maplestation_modules/sound/ambience/casino/CasinoAmbience2.ogg' | ||
) | ||
|
||
/// Lowered volume | ||
/area/awaymission/casino/floor/play_ambience(M, override_sound, volume = 10) | ||
return ..() | ||
|
||
/area/awaymission/casino/utility | ||
name = "Utility Closet" | ||
icon_state = "awaycontent4" | ||
base_lighting_alpha = 120 | ||
|
||
/area/awaymission/casino/security | ||
name = "Security Podium" | ||
icon_state = "awaycontent5" | ||
|
||
/area/awaymission/casino/security/armory | ||
name = "Armory" | ||
icon_state = "awaycontent17" | ||
|
||
/area/awaymission/casino/kitchen | ||
name = "Kitchen" | ||
icon_state = "awaycontent6" | ||
base_lighting_alpha = 220 | ||
|
||
/area/awaymission/casino/kitchen/coldroom | ||
name = "Kitchen Coldroom" | ||
icon_state = "awaycontent7" | ||
base_lighting_alpha = 220 | ||
|
||
/area/awaymission/casino/restaurant | ||
name = "Restaurant" | ||
icon_state = "awaycontent8" | ||
|
||
/area/awaymission/casino/bar | ||
name = "Bar" | ||
icon_state = "awaycontent9" | ||
|
||
/area/awaymission/casino/bar/backroom | ||
name = "Bar Backroom" | ||
icon_state = "awaycontent10" | ||
base_lighting_alpha = 220 | ||
|
||
/area/awaymission/casino/arcade | ||
name = "Arcade" | ||
icon_state = "awaycontent11" | ||
|
||
/area/awaymission/casino/janitor | ||
name = "Custodial Closet" | ||
icon_state = "awaycontent12" | ||
base_lighting_alpha = 220 | ||
|
||
/area/awaymission/casino/mantrap | ||
name = "Man-Trap" | ||
icon_state = "awaycontent13" | ||
base_lighting_alpha = 220 | ||
|
||
/area/awaymission/casino/cage | ||
name = "Payout Cage" | ||
icon_state = "awaycontent14" | ||
|
||
/area/awaymission/casino/friendmaker | ||
name = "Jackpot Room" | ||
icon_state = "awaycontent15" | ||
base_lighting_alpha = 5 | ||
|
||
/area/awaymission/casino/parking | ||
name = "Parking Lot" | ||
icon_state = "awaycontent16" | ||
|
||
/area/awaymission/casino/checkin | ||
name = "Check-in" | ||
icon_state = "awaycontent18" | ||
|
||
/area/awaymission/casino/floor/tables | ||
name = "Casino Tables" | ||
icon_state = "awaycontent19" | ||
|
||
/area/awaymission/casino/floor/tables/Initialize(mapload) | ||
ambientsounds |= list( | ||
'sound/items/cardshuffle.ogg', | ||
'sound/items/cardflip.ogg' | ||
) | ||
. = ..() | ||
|
||
/area/awaymission/casino/floor/maze | ||
name = "The Labyrinth" | ||
icon_state = "awaycontent20" | ||
// Otherworldly maze noise | ||
ambientsounds = list( | ||
'maplestation_modules/sound/ambience/casino/MazeHallucinations.ogg', | ||
'maplestation_modules/sound/ambience/casino/MazeHallucinations2.ogg', | ||
'maplestation_modules/sound/ambience/casino/MazeBuffalo.ogg', | ||
'maplestation_modules/sound/ambience/casino/MazeBuffalo2.ogg', | ||
) | ||
area_flags = UNIQUE_AREA|NOTELEPORT|HIDDEN_AREA | ||
base_lighting_color = "#ffcccc" | ||
|
||
// Louder volume | ||
/area/awaymission/casino/floor/maze/play_ambience(M, override_sound, volume = 30) | ||
return ..() | ||
|
||
/area/awaymission/casino/floor/maze/Entered(atom/movable/arrived, area/old_area) | ||
. = ..() | ||
for(var/mob/living/enterer as anything in arrived.get_all_contents_type(/mob/living)) | ||
to_chat(enterer, span_userdanger("This was a bad idea...")) | ||
enterer.become_blind(CASINO_MAZE) | ||
enterer.apply_status_effect(/datum/status_effect/jitter) | ||
enterer.apply_status_effect(/datum/status_effect/hallucination) | ||
Wallemations marked this conversation as resolved.
Show resolved
Hide resolved
|
||
// It's a timed effect but we're going to remove it when they leave, so we make it really long. | ||
curse_of_babel(enterer, 60 MINUTES) | ||
Wallemations marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
/area/awaymission/casino/floor/maze/Exited(atom/movable/gone, direction) | ||
. = ..() | ||
for(var/mob/living/exiter as anything in gone.get_all_contents_type(/mob/living)) | ||
to_chat(exiter, span_boldnicegreen("I feel so much better...")) | ||
Wallemations marked this conversation as resolved.
Show resolved
Hide resolved
|
||
exiter.cure_blind(CASINO_MAZE) | ||
exiter.remove_status_effect(/datum/status_effect/jitter) | ||
exiter.remove_status_effect(/datum/status_effect/hallucination) | ||
cure_curse_of_babel(exiter) | ||
|
||
|
||
/area/awaymission/casino/bathroom | ||
name = "Restroom" | ||
icon_state = "awaycontent21" | ||
ambientsounds = list( | ||
'maplestation_modules/sound/ambience/casino/RestroomAmbience.ogg' | ||
) | ||
|
||
/area/awaymission/casino/clinic | ||
name = "Medical Clinic" | ||
icon_state = "awaycontent22" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
/// IDs | ||
/datum/id_trim/away/casino | ||
access = list(ACCESS_AWAY_GENERAL) | ||
|
||
/datum/id_trim/away/casino/tier_2 | ||
access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_GENERIC1) | ||
|
||
/datum/id_trim/away/casino/security | ||
access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_GENERIC1, ACCESS_AWAY_SEC) | ||
|
||
/obj/item/card/id/away/casino/tier1 | ||
trim = /datum/id_trim/away/casino | ||
|
||
/obj/item/card/id/away/casino/tier1/chef | ||
name = "Casino Chef ID" | ||
|
||
/obj/item/card/id/away/casino/tier1/bar | ||
name = "Casino Barkeeper ID" | ||
|
||
/obj/item/card/id/away/casino/tier1/waiter | ||
name = "Casino Wait-Staff ID" | ||
|
||
/obj/item/card/id/away/casino/tier2 | ||
trim = /datum/id_trim/away/casino/tier_2 | ||
|
||
/obj/item/card/id/away/casino/tier2/janitor | ||
name = "Casino Janitor ID" | ||
|
||
/obj/item/card/id/away/casino/tier2/staff | ||
name = "Casino Operator ID" | ||
|
||
/obj/item/card/id/away/casino/security | ||
name = "Casino Security ID" | ||
trim = /datum/id_trim/away/casino/security | ||
|
||
/// Security Uniforms | ||
|
||
/obj/item/clothing/under/suit/black/casino | ||
name = "security suit" | ||
desc = "A sleek black suit lined with kevlar to give it an edge against the drunks in the casino." | ||
armor_type = /datum/armor/clothing_under/rank_security | ||
strip_delay = 50 | ||
sensor_mode = SENSOR_COORDS | ||
random_sensor = FALSE | ||
|
||
/datum/outfit/casino_security | ||
name = "Casino Security" | ||
|
||
id = /obj/item/card/id/away/casino/security | ||
id_trim = /obj/item/card/id/away/casino/security | ||
uniform = /obj/item/clothing/under/suit/black/casino | ||
belt = /obj/item/modular_computer/pda/security | ||
ears = /obj/item/radio/headset/headset_sec | ||
gloves = /obj/item/clothing/gloves/color/black | ||
shoes = /obj/item/clothing/shoes/laceup | ||
l_pocket = /obj/item/restraints/handcuffs/cable/red | ||
r_pocket = /obj/item/assembly/flash/handheld | ||
|
||
back = /obj/item/storage/backpack/messenger | ||
|
||
box = /obj/item/storage/box/survival | ||
glasses = /obj/item/clothing/glasses/sunglasses | ||
|
||
|
||
|
||
/obj/item/card/mining_point_card/casino | ||
name = "Casino Rewards Card" | ||
desc = "Redeem your cash for mining point prizes!" | ||
|
||
/obj/item/card/mining_point_card/casino/Initialize(mapload) | ||
. = ..() | ||
points = rand(1000,3000) | ||
|
||
|
||
/// Spawners | ||
|
||
/obj/effect/spawner/random/casino_vault | ||
name = "Vault Loot Spawner" | ||
desc = "Spawns a completely random amount of loot for the casino vault" | ||
spawn_loot_count = 10 | ||
loot = list( | ||
/obj/effect/spawner/random/entertainment/money_large = 4, | ||
/obj/effect/spawner/random/entertainment/money_medium = 5, | ||
/obj/effect/spawner/random/entertainment/money_small = 6, | ||
/obj/effect/spawner/random/entertainment/coin = 7, | ||
/obj/item/stack/sheet/mineral/gold = 3, | ||
/obj/item/stack/sheet/mineral/silver = 4, | ||
/obj/item/stack/sheet/mineral/diamond = 2, | ||
/obj/item/fish/goldfish = 2, | ||
/obj/item/reagent_containers/cup/glass/bottle/goldschlager = 3, | ||
/obj/item/bikehorn/golden = 3, | ||
/obj/item/wheelchair/gold = 2, | ||
/obj/item/card/id/advanced/gold/captains_spare = 1, | ||
/obj/item/food/grown/apple/gold = 2, | ||
/obj/item/instrument/violin/golden = 3, | ||
/obj/item/reagent_containers/cup/glass/flask/gold = 3, | ||
/obj/item/reagent_containers/cup/glass/trophy/gold_cup = 3, | ||
/obj/item/seeds/apple/gold = 2, | ||
/obj/item/slime_cookie/gold = 3, | ||
/obj/item/slime_extract/gold = 2, | ||
/obj/item/slime_cookie/silver = 4, | ||
/obj/item/slime_extract/silver = 3, | ||
/obj/item/clothing/accessory/medal/gold/heroism = 3, | ||
/obj/item/stack/ore/gold = 3, | ||
/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3, | ||
/obj/item/stack/tile/mineral/gold = 2, | ||
/obj/item/melee/baseball_bat/golden = 1, | ||
/obj/item/clothing/accessory/medal/silver/valor = 4, | ||
/obj/item/pickaxe/silver = 3, | ||
/obj/item/reagent_containers/cup/bottle/silver = 4, | ||
/obj/item/reagent_containers/cup/glass/trophy/silver_cup = 4, | ||
/obj/item/stack/ore/silver = 4, | ||
/obj/item/reagent_containers/cup/glass/bottle/patron = 4, | ||
/obj/item/pickaxe/diamond = 3, | ||
/obj/item/pickaxe/drill/diamonddrill = 2, | ||
/obj/item/stack/ore/diamond = 2, | ||
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill = 2, | ||
/obj/item/card/mining_point_card/casino = 4, | ||
/obj/item/stack/arcadeticket = 7, | ||
/obj/item/stack/arcadeticket/thirty = 3, | ||
/obj/item/storage/belt/champion = 3, | ||
/obj/item/coupon/bee = 2, | ||
/obj/item/storage/bag/money/vault = 4, | ||
) | ||
|
||
/obj/effect/spawner/random/casino_vault/Initialize(mapload) | ||
spawn_loot_count = rand(7,15) | ||
return ..() |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
// Random slot names, 1 free spin per machine, and a random amount of max money from 500 to 1 million credits. | ||
/obj/machinery/computer/slot_machine/green | ||
name = "AGENT GREEN'S MEAN MACHINE" | ||
desc = "A sign on the side says \"ALL MACHINES START WITH 1 FREE SPIN!\"" | ||
balance = 5 | ||
/// Possible names that this machine can have. | ||
var/list/possible_names = list( | ||
"AGENT GREEN'S MEAN MACHINE", | ||
"BOSS BUX", | ||
"PAYCHECK QUEST", | ||
"RICKOLO'S RICHES", | ||
"GLAN'S GOLD", | ||
"RITZ'S RACKS", | ||
"AGENT RUSH", | ||
"AGENT BIG WIN", | ||
"THE BOSS ZHU ZHAO FU", | ||
"DR. MONSTER'S MONSTER WINS", | ||
"SUPER BUFFALO", | ||
"BOSS KINGS", | ||
"AGENT BUFFALO", | ||
) | ||
/// Added descriptor of what the machine looks like. | ||
var/this_slot_type = "It's a standard slot machine housing some mechanical reels with symbols on each one." | ||
// I went way overboard with these to be honest | ||
|
||
/obj/machinery/computer/slot_machine/green/Initialize(mapload) | ||
. = ..() | ||
name = pick(possible_names) | ||
money = rand(500,1000000) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i feel like this should round to the nearest 100 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. that's not as funny |
||
this_slot_type = pick(world.file2list("maplestation_modules/strings/slots.txt")) | ||
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Alternate Tests (515, 1626, runtimestation) / run_integration_testsRuntime Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (multiz_debug) / run_integration_testsMultiZ Debug: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (runtimestation) / run_integration_testsRuntime Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (pubbystation) / run_integration_testsPubby Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (birdshot) / run_integration_testsBirdshot Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (metastation) / run_integration_testsMetaStation: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (kilostation) / run_integration_testsKilo Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (limastation) / run_integration_testsLima Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (deltastation) / run_integration_testsDelta Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (tramstation) / run_integration_testsTramstation: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (gateway_test) / run_integration_testsGateway Test: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (icebox) / run_integration_testsIce Box Station: /datum/unit_test/create_and_destroy
Check failure on line 30 in maplestation_modules/code/modules/casino/machines.dm GitHub Actions / Integration Tests (northstar) / run_integration_testsNorthStar: /datum/unit_test/create_and_destroy
|
||
|
||
/obj/machinery/computer/slot_machine/green/examine(mob/user) | ||
. = ..() | ||
. += this_slot_type | ||
. += span_notice("All proceeds go to continued U.M.E.F. research into advanced gambling techniques!") | ||
|
||
/obj/machinery/computer/slot_machine/boss | ||
name = "THE BOSS' PRIVATE SLOTS" | ||
desc = "Now THOSE are odds I like to see!" | ||
money = 1000000 | ||
// Every symbol is a 7 | ||
symbols = list("<font color='red'>7</font>" = 100) | ||
|
||
/obj/machinery/roulette/green | ||
name = "AGENT GREEN'S BIG SPIN" | ||
anchored = TRUE | ||
// Names need to be set when you swipe the ID anyway, so these are more just suggestions | ||
var/list/possible_names = list( | ||
"AGENT GREEN'S BIG SPIN", | ||
"AGENT SPIN'S ADVENTURE", | ||
) | ||
|
||
/obj/machinery/roulette/green/Initialize(mapload) | ||
. = ..() | ||
name = pick(possible_names) | ||
|
||
/obj/machinery/biogenerator/infinite | ||
biomass = INFINITY | ||
max_output = 300 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't need to be in its own file, it's only used in two functions
Just def it before
maze/Entered
and undef it aftermaze/Exited
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aight