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() }, ) }