Skip to content
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

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17,882 changes: 17,882 additions & 0 deletions _maps/RandomZLevels/GreensCasino.dmm

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions maplestation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6073,6 +6073,7 @@
#include "maplestation_modules\code\__DEFINES\mecha.dm"
#include "maplestation_modules\code\__DEFINES\paperwork_defines.dm"
#include "maplestation_modules\code\__DEFINES\signals.dm"
#include "maplestation_modules\code\__DEFINES\sources.dm"
#include "maplestation_modules\code\__DEFINES\spans.dm"
#include "maplestation_modules\code\__DEFINES\traits.dm"
#include "maplestation_modules\code\__DEFINES\vv.dm"
Expand Down Expand Up @@ -6257,6 +6258,9 @@
#include "maplestation_modules\code\modules\cargo\costumes_toys.dm"
#include "maplestation_modules\code\modules\cargo\goodies.dm"
#include "maplestation_modules\code\modules\cargo\packs.dm"
#include "maplestation_modules\code\modules\casino\areas.dm"
#include "maplestation_modules\code\modules\casino\items.dm"
#include "maplestation_modules\code\modules\casino\machines.dm"
#include "maplestation_modules\code\modules\client\preferences\_preferences.dm"
#include "maplestation_modules\code\modules\client\preferences\height.dm"
#include "maplestation_modules\code\modules\client\preferences\languages.dm"
Expand Down
3 changes: 3 additions & 0 deletions maplestation_modules/code/__DEFINES/sources.dm
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"
Copy link
Owner

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 after maze/Exited

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aight

156 changes: 156 additions & 0 deletions maplestation_modules/code/modules/casino/areas.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
/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(
'maplestation_modules/sound/ambience/casino/CasinoAmbience1.ogg',
'maplestation_modules/sound/ambience/casino/CasinoAmbience2.ogg'
)

/// Lowered volume, not actually sure if this works?
/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)
// It's a timed effect but we're going to remove it when they leave, so we make it really long.
enterer.adjust_jitter(60 MINUTES)
enterer.adjust_hallucinations(60 MINUTES)
// Want to make them not able to get help through the maze but don't want them to become deaf
curse_of_babel(enterer)

/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!"))
exiter.cure_blind(CASINO_MAZE)
exiter.adjust_jitter(-60 MINUTES)
exiter.adjust_hallucinations(-60 MINUTES)
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"
128 changes: 128 additions & 0 deletions maplestation_modules/code/modules/casino/items.dm
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 ..()
71 changes: 71 additions & 0 deletions maplestation_modules/code/modules/casino/machines.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/// Sprite update, also moved the random names & descriptions from the green slots to normal slots. Now all slot machines on NT stations are gifts from U.M.E.F.!
/obj/machinery/computer/slot_machine
icon = 'maplestation_modules/icons/obj/machines/computer.dmi'
/// Possible names that this machine can have.
var/static/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."

/obj/machinery/computer/slot_machine/Initialize(mapload)
. = ..()
name = pick(possible_names)
var/static/list/slot_type_descriptions
if(!length(slot_type_descriptions))
slot_type_descriptions = world.file2list("maplestation_modules/strings/slots.txt")
if(length(slot_type_descriptions))
this_slot_type = pick(slot_type_descriptions)

/obj/machinery/computer/slot_machine/examine(mob/user)
. = ..()
. += this_slot_type
. += span_notice("All proceeds go to continued U.M.E.F. research into advanced gambling techniques!")

// 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


/obj/machinery/computer/slot_machine/green/Initialize(mapload)
. = ..()
money = rand(500,1000000)

/// Always jackpots* and has 1 mil
/// *This part doesn't seem to work so it really only always has 1 mil, which is still a little funny.
/obj/machinery/computer/slot_machine/boss
name = "THE BOSS' PRIVATE SLOTS"
desc = "Now THOSE are odds I like to see!"
money = 1000000

/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.
// We didn't realize that when we made it lol.
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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Loading