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