blastmud/blastmud_game/src/static_content/room/cok_murl.rs
2023-10-01 16:34:25 +11:00

121 lines
5.3 KiB
Rust

use super::{
Direction, Exit, ExitTarget, GridCoords, RentInfo, RentSuiteType, Room, SecondaryZoneRecord,
};
use crate::static_content::dynzone::DynzoneType;
use ansi::ansi;
pub fn room_list() -> Vec<Room> {
vec!(
// Residential
Room {
zone: "cok_murl",
secondary_zones: vec!(
SecondaryZoneRecord {
zone: "melbs",
short: ansi!("<bgyellow><black>CK<reset>"),
grid_coords: GridCoords { x: 2, y: 5, z: 0 },
caption: Some("Condos on King")
}
),
code: "cok_lobby",
name: "Residential Lobby",
short: ansi!("<bgyellow><black>RE<reset>"),
description: ansi!("A sizeable lobby that looks like it is serves the dual purpose as the entrance to the residential condos and as a grand entrance to the linked Murlison Suites commercial building. It is tiled with sparkling clean bluestone tiles. Light green tinted tempered glass panels line the walls. You notice a set of sleek lifts, supervised by a friendly robot, and a passage to the attached Murlison commercial building to the east.\n\n\"Welcome to Condos on King!\", intones the bot, \"say <bold>in<reset> name\" with the name of the person you are here to see, and I'll guide you to their apartment. Or try <bold>rent studio<reset> to rent a studio apartment for $20 a day ($40 setup fee), and <bold>vacate studio<reset> to give notice to vacate"),
description_less_explicit: None,
grid_coords: GridCoords { x: 0, y: 0, z: 0 },
exits: vec!(
Exit {
direction: Direction::WEST,
target: ExitTarget::Custom("room/melbs_kingst_80"),
..Default::default()
},
Exit {
direction: Direction::EAST,
..Default::default()
},
),
should_caption: true,
rentable_dynzone: vec!(RentInfo {
rent_what: "studio",
suite_type: RentSuiteType::Residential,
dynzone: DynzoneType::CokMurlApartment,
daily_price: 20,
setup_fee: 40,
}),
..Default::default()
},
// Commercial
Room {
zone: "cok_murl",
code: "murl_lobby",
name: "Murlison Suites Commercial Lobby",
short: ansi!("<bgyellow><black>ML<reset>"),
description: ansi!(
"A sleek reception that could have been the bridge of a 2000s era sci-fi spaceship. Linished metal plates are lit up by ambient blue LEDs, while stone tiles cover the floor. You see a white android, complete with elegant rounded corners and glowing blue eyes.\n\n\
\"Welcome to Murlison Suites - the best a business can rent\", purs the bot pleasantly. \"Just say <bold>in<reset> corpname\" and I'll guide you to the suite for that corp before you \
can blink! Or if you hold a corp and would like to rent the best suite money can \
buy for it, just say <bold>rent deluxe for<reset> corpname, and I'll set you up\""
),
description_less_explicit: None,
grid_coords: GridCoords { x: 1, y: 0, z: 0 },
rentable_dynzone: vec!(RentInfo {
rent_what: "deluxe",
suite_type: RentSuiteType::Commercial,
dynzone: DynzoneType::MurlDeluxeCorporate,
daily_price: 200,
setup_fee: 400,
}),
exits: vec!(
Exit {
direction: Direction::WEST,
..Default::default()
},
Exit {
direction: Direction::NORTH,
..Default::default()
},
Exit {
direction: Direction::SOUTH,
..Default::default()
}
),
should_caption: true,
..Default::default()
},
Room {
zone: "cok_murl",
code: "murl_gf_lift",
name: "Commercial Lifts",
short: ansi!("<bgyellow><black>LI<reset>"),
description: "A set of lifts leading up to various floors",
description_less_explicit: None,
grid_coords: GridCoords { x: 1, y: -1, z: 0 },
exits: vec!(
Exit {
direction: Direction::SOUTH,
..Default::default()
},
),
should_caption: true,
..Default::default()
},
Room {
zone: "cok_murl",
code: "murl_gf_stair",
name: "Commercial Stairs",
short: ansi!("<bgyellow><black>>><reset>"),
description: "A set of stairs leading up to various floors",
description_less_explicit: None,
grid_coords: GridCoords { x: 1, y: 1, z: 0 },
exits: vec!(
Exit {
direction: Direction::NORTH,
..Default::default()
},
),
should_caption: true,
..Default::default()
},
)
}