This commit is contained in:
Condorra 2023-01-11 22:51:17 +11:00
parent 70e8867360
commit c5c78763a2
6 changed files with 1356 additions and 559 deletions

View File

@ -18,6 +18,8 @@ use log::info;
use std::time;
pub mod statbot;
mod melbs_citizen;
mod melbs_dog;
#[async_trait]
pub trait NPCMessageHandler {
@ -46,580 +48,45 @@ pub struct NPCSayInfo {
pub struct NPC {
pub code: &'static str,
pub name: &'static str,
pub proper_noun: bool,
pub description: &'static str,
pub spawn_location: &'static str,
pub message_handler: Option<&'static (dyn NPCMessageHandler + Sync + Send)>,
pub says: Vec<NPCSayInfo>
}
impl Default for NPC {
fn default() -> Self {
Self {
code: "DEFAULT",
name: "default",
proper_noun: true,
description: "default",
spawn_location: "default",
message_handler: None,
says: vec!()
}
}
}
pub fn npc_list() -> &'static Vec<NPC> {
use NPCSayType::FromFixedList;
static NPC_LIST: OnceCell<Vec<NPC>> = OnceCell::new();
NPC_LIST.get_or_init(
|| {
let melbs_citizen_stdsay = NPCSayInfo {
say_code: "babble",
frequency_secs: 60,
talk_type: FromFixedList(vec!(
(false, "I'm so sick of being cloned."),
(false, "I hope I don't die again today."),
(false, "I wish the so-called king would do something about the damned zombies everywhere."),
(true, "I earn so many credits making babies for the body factory - it literally pays my bills."),
(false, "I know people hated the empire, but I kind of wish it was still intact - it was a lot better than what we have now."),
(false, "I wish there wasn't so much radiation outside of Melbs CBD."),
(false, "I heard about a guy who went to a special place somewhere around here, and there was a machine that enhanced his wristpad and gave him basically superpowers."),
(false, "The damn vampire movement... they are all so sneaky, and I never know when they are going to come for my blood."),
))
};
vec!(
|| {
let mut npcs = vec!(
NPC {
code: "repro_xv_chargen_statbot",
name: "Statbot",
description: "A silvery shiny metal mechanical being. It lets out a whirring sound as it moves.",
spawn_location: "room/repro_xv_chargen",
message_handler: Some(&statbot::StatbotMessageHandler),
says: vec!()
says: vec!(),
..Default::default()
},
NPC {
code: "melbs_citizen_1",
name: "Matthew Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_latrobest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_2",
name: "Matthew Perez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_20",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_3",
name: "Kimberly Jackson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_40",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_4",
name: "Michael Sanchez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_50",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_5",
name: "Jessica Davis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_bourkest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_6",
name: "Robert Davis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_70",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_7",
name: "Paul Lewis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_90",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_8",
name: "Andrew Moore",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_collinsst",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_9",
name: "Betty Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_10",
name: "Mary Robinson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_11",
name: "Lisa Lopez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_flinderst",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_12",
name: "Kimberly Martinez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_200",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_13",
name: "Anthony Nguyen",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_190",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_14",
name: "Joshua Green",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_15",
name: "Emily Wright",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_170",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_16",
name: "Ashley Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_130",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_17",
name: "Jessica Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_18",
name: "Anthony Lopez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_140",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_19",
name: "John Lopez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_lonsdalest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_20",
name: "Thomas Garcia",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_120",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_21",
name: "Donna Thompson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_60",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_22",
name: "Matthew Davis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_23",
name: "Steven Jones",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_120",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_24",
name: "Linda Smith",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_lonsdalest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_25",
name: "Karen Rodriguez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_26",
name: "Paul Scott",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_70",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_27",
name: "Ashley Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_130",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_28",
name: "Sandra Scott",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_30",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_29",
name: "Michael Rodriguez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_70",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_30",
name: "Donald Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_30",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_31",
name: "Charles Moore",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_160",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_32",
name: "Ashley Sanchez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_33",
name: "Margaret Lewis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_34",
name: "Sandra Thompson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_35",
name: "Sandra King",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_36",
name: "Lisa Anderson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_210",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_37",
name: "Kimberly Martin",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_38",
name: "Susan Smith",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_latrobest_190",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_39",
name: "Susan Martin",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_40",
name: "Linda Scott",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_30",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_41",
name: "Donald Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_42",
name: "Mark Hill",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_120",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_43",
name: "William Perez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_queenst_90",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_44",
name: "Donald Perez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_queenst_lonsdalest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_45",
name: "Lisa Rodriguez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_46",
name: "James Adams",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_latrobest_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_47",
name: "James Moore",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_latrobest_130",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_48",
name: "Joseph Martin",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_49",
name: "Matthew Jones",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_60",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_50",
name: "Michael Sanchez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_queenst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_51",
name: "Donna Torres",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_52",
name: "Barbara Garcia",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_50",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_53",
name: "Daniel Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_54",
name: "Robert Young",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_collinsst",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_55",
name: "Donald Flores",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_40",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_56",
name: "Charles Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_57",
name: "William Torres",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_60",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_58",
name: "Barbara Gonzalez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_190",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_59",
name: "Mary Smith",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
},
NPC {
code: "melbs_citizen_60",
name: "Michael Jackson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone())
}
)
);
npcs.append(&mut melbs_citizen::npc_list());
npcs.append(&mut melbs_dog::npc_list());
npcs
})
}

View File

@ -0,0 +1,563 @@
use super::{NPC, NPCSayInfo, NPCSayType};
pub fn npc_list() -> Vec<NPC> {
use NPCSayType::FromFixedList;
let melbs_citizen_stdsay = NPCSayInfo {
say_code: "babble",
frequency_secs: 60,
talk_type: FromFixedList(vec!(
(false, "I'm so sick of being cloned."),
(false, "I hope I don't die again today."),
(false, "I wish the so-called king would do something about the damned zombies everywhere."),
(true, "I earn so many credits making babies for the body factory - it literally pays my bills."),
(false, "I know people hated the empire, but I kind of wish it was still intact - it was a lot better than what we have now."),
(false, "I wish there wasn't so much radiation outside of Melbs CBD."),
(false, "I heard about a guy who went to a special place somewhere around here, and there was a machine that enhanced his wristpad and gave him basically superpowers."),
(false, "The damn vampire movement... they are all so sneaky, and I never know when they are going to come for my blood."),
))
};
vec!(
NPC {
code: "melbs_citizen_1",
name: "Matthew Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_latrobest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_2",
name: "Matthew Perez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_20",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_3",
name: "Kimberly Jackson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_40",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_4",
name: "Michael Sanchez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_50",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_5",
name: "Jessica Davis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_bourkest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_6",
name: "Robert Davis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_70",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_7",
name: "Paul Lewis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_90",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_8",
name: "Andrew Moore",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_collinsst",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_9",
name: "Betty Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_10",
name: "Mary Robinson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_11",
name: "Lisa Lopez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_flinderst",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_12",
name: "Kimberly Martinez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_200",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_13",
name: "Anthony Nguyen",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_190",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_14",
name: "Joshua Green",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_15",
name: "Emily Wright",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_170",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_16",
name: "Ashley Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_130",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_17",
name: "Jessica Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_18",
name: "Anthony Lopez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_140",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_19",
name: "John Lopez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_lonsdalest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_20",
name: "Thomas Garcia",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_120",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_21",
name: "Donna Thompson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_60",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_22",
name: "Matthew Davis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_23",
name: "Steven Jones",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_120",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_24",
name: "Linda Smith",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_lonsdalest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_25",
name: "Karen Rodriguez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_26",
name: "Paul Scott",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_70",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_27",
name: "Ashley Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_130",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_28",
name: "Sandra Scott",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_30",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_29",
name: "Michael Rodriguez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_70",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_30",
name: "Donald Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_30",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_31",
name: "Charles Moore",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_160",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_32",
name: "Ashley Sanchez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_33",
name: "Margaret Lewis",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_34",
name: "Sandra Thompson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_35",
name: "Sandra King",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_36",
name: "Lisa Anderson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_lonsdalest_210",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_37",
name: "Kimberly Martin",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_38",
name: "Susan Smith",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_latrobest_190",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_39",
name: "Susan Martin",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_40",
name: "Linda Scott",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_30",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_41",
name: "Donald Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_elizabethst_80",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_42",
name: "Mark Hill",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_120",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_43",
name: "William Perez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_queenst_90",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_44",
name: "Donald Perez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_queenst_lonsdalest",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_45",
name: "Lisa Rodriguez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_46",
name: "James Adams",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_latrobest_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_47",
name: "James Moore",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_latrobest_130",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_48",
name: "Joseph Martin",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_49",
name: "Matthew Jones",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_60",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_50",
name: "Michael Sanchez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_queenst_100",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_51",
name: "Donna Torres",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_150",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_52",
name: "Barbara Garcia",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_50",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_53",
name: "Daniel Miller",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_54",
name: "Robert Young",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_kingst_collinsst",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_55",
name: "Donald Flores",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_40",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_56",
name: "Charles Thomas",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_flindersst_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_57",
name: "William Torres",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_swanstonst_60",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_58",
name: "Barbara Gonzalez",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_collinsst_190",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_59",
name: "Mary Smith",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_bourkest_180",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
},
NPC {
code: "melbs_citizen_60",
name: "Michael Jackson",
description: "A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life",
spawn_location: "room/melbs_williamsst_110",
message_handler: None,
says: vec!(melbs_citizen_stdsay.clone()),
..Default::default()
}
)
}

View File

@ -0,0 +1,486 @@
use super::NPC;
pub fn npc_list() -> Vec<NPC> {
vec!(
NPC {
code: "melbs_dog_1",
name: "feral black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_collinsst",
..Default::default()
},
NPC {
code: "melbs_dog_2",
name: "howling black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_collinsst_100",
..Default::default()
},
NPC {
code: "melbs_dog_3",
name: "ferocious white dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_lonsdalest",
..Default::default()
},
NPC {
code: "melbs_dog_4",
name: "mangy grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_collinsst_160",
..Default::default()
},
NPC {
code: "melbs_dog_5",
name: "howling grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_lonsdalest_100",
..Default::default()
},
NPC {
code: "melbs_dog_6",
name: "reeking black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_lonsdalest_120",
..Default::default()
},
NPC {
code: "melbs_dog_7",
name: "growling grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_williamsst_20",
..Default::default()
},
NPC {
code: "melbs_dog_8",
name: "mangy black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_bourkest_120",
..Default::default()
},
NPC {
code: "melbs_dog_9",
name: "howling black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_collinsst_100",
..Default::default()
},
NPC {
code: "melbs_dog_10",
name: "howling brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_flindersst_130",
..Default::default()
},
NPC {
code: "melbs_dog_11",
name: "ferocious black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_flindersst_100",
..Default::default()
},
NPC {
code: "melbs_dog_12",
name: "mangy grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_90",
..Default::default()
},
NPC {
code: "melbs_dog_13",
name: "reeking light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_lonsdalest_140",
..Default::default()
},
NPC {
code: "melbs_dog_14",
name: "smelly black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_20",
..Default::default()
},
NPC {
code: "melbs_dog_15",
name: "growling light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_10",
..Default::default()
},
NPC {
code: "melbs_dog_16",
name: "howling brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_swanstonst_flindersst",
..Default::default()
},
NPC {
code: "melbs_dog_17",
name: "feral brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_kingst_latrobest",
..Default::default()
},
NPC {
code: "melbs_dog_18",
name: "smelly grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_kingst_40",
..Default::default()
},
NPC {
code: "melbs_dog_19",
name: "feral black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_60",
..Default::default()
},
NPC {
code: "melbs_dog_20",
name: "smelly white dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_swanstonst_120",
..Default::default()
},
NPC {
code: "melbs_dog_21",
name: "growling white dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_90",
..Default::default()
},
NPC {
code: "melbs_dog_22",
name: "feral light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_lonsdalest_150",
..Default::default()
},
NPC {
code: "melbs_dog_23",
name: "mangy grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_lonsdalest_150",
..Default::default()
},
NPC {
code: "melbs_dog_24",
name: "reeking grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_100",
..Default::default()
},
NPC {
code: "melbs_dog_25",
name: "smelly grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_bourkest_180",
..Default::default()
},
NPC {
code: "melbs_dog_26",
name: "growling light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_100",
..Default::default()
},
NPC {
code: "melbs_dog_27",
name: "feral light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_10",
..Default::default()
},
NPC {
code: "melbs_dog_28",
name: "feral grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_lonsdalest_160",
..Default::default()
},
NPC {
code: "melbs_dog_29",
name: "reeking brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_bourkest_110",
..Default::default()
},
NPC {
code: "melbs_dog_30",
name: "howling grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_80",
..Default::default()
},
NPC {
code: "melbs_dog_31",
name: "howling brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_bourkest_160",
..Default::default()
},
NPC {
code: "melbs_dog_32",
name: "feral black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_swanstonst_collinsst",
..Default::default()
},
NPC {
code: "melbs_dog_33",
name: "reeking brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_kingst_flinderst",
..Default::default()
},
NPC {
code: "melbs_dog_34",
name: "reeking white dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_100",
..Default::default()
},
NPC {
code: "melbs_dog_35",
name: "growling light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_110",
..Default::default()
},
NPC {
code: "melbs_dog_36",
name: "reeking black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_williamsst_90",
..Default::default()
},
NPC {
code: "melbs_dog_37",
name: "growling black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_latrobesst_200",
..Default::default()
},
NPC {
code: "melbs_dog_38",
name: "feral black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_90",
..Default::default()
},
NPC {
code: "melbs_dog_39",
name: "mangy black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_40",
..Default::default()
},
NPC {
code: "melbs_dog_40",
name: "growling white dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_williamsst_40",
..Default::default()
},
NPC {
code: "melbs_dog_41",
name: "reeking grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_latrobest",
..Default::default()
},
NPC {
code: "melbs_dog_42",
name: "mangy grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_flindersst_210",
..Default::default()
},
NPC {
code: "melbs_dog_43",
name: "ferocious brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_kingst_latrobest",
..Default::default()
},
NPC {
code: "melbs_dog_44",
name: "ferocious light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_collinsst_120",
..Default::default()
},
NPC {
code: "melbs_dog_45",
name: "ferocious light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_swanstonst_lonsdalest",
..Default::default()
},
NPC {
code: "melbs_dog_46",
name: "smelly grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_williamsst_30",
..Default::default()
},
NPC {
code: "melbs_dog_47",
name: "growling grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_lonsdalest_100",
..Default::default()
},
NPC {
code: "melbs_dog_48",
name: "ferocious brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_latrobest_210",
..Default::default()
},
NPC {
code: "melbs_dog_49",
name: "reeking brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_latrobest_140",
..Default::default()
},
NPC {
code: "melbs_dog_50",
name: "howling grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_swanstonst_110",
..Default::default()
},
NPC {
code: "melbs_dog_51",
name: "howling black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_elizabethst_flindersst",
..Default::default()
},
NPC {
code: "melbs_dog_52",
name: "growling light brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_flindersst_120",
..Default::default()
},
NPC {
code: "melbs_dog_53",
name: "ferocious black dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_110",
..Default::default()
},
NPC {
code: "melbs_dog_54",
name: "growling grey dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_flindersst_210",
..Default::default()
},
NPC {
code: "melbs_dog_55",
name: "reeking brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_williamsst_60",
..Default::default()
},
NPC {
code: "melbs_dog_56",
name: "ferocious white dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_queenst_lonsdalest",
..Default::default()
},
NPC {
code: "melbs_dog_57",
name: "smelly brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_swanstonst_lonsdalest",
..Default::default()
},
NPC {
code: "melbs_dog_58",
name: "mangy white dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_williamsst_bourkest",
..Default::default()
},
NPC {
code: "melbs_dog_59",
name: "mangy brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_latrobest_170",
..Default::default()
},
NPC {
code: "melbs_dog_60",
name: "growling brown dog",
proper_noun: false,
description: "A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.",
spawn_location: "room/melbs_williamsst_110",
..Default::default()
},
)
}

View File

@ -83,7 +83,7 @@ pub fn room_list() -> Vec<Room> {
should_caption: true,
..Default::default()
},
// Commercial
Room {
zone: "cok_murl",

View File

@ -0,0 +1,99 @@
module Main where
import Data.List
import System.Random
import Control.Monad
first :: [String]
first = [
"James",
"Mary",
"Robert",
"Patricia",
"John",
"Jennifer",
"Michael",
"Linda",
"David",
"Elizabeth",
"William",
"Barbara",
"Richard",
"Susan",
"Joseph",
"Jessica",
"Thomas",
"Sarah",
"Charles",
"Karen",
"Christopher",
"Lisa",
"Daniel",
"Nancy",
"Matthew",
"Betty",
"Anthony",
"Margaret",
"Mark",
"Sandra",
"Donald",
"Ashley",
"Steven",
"Kimberly",
"Paul",
"Emily",
"Andrew",
"Donna",
"Joshua"
]
surn :: [String]
surn = [
"Smith",
"Johnson",
"Williams",
"Brown",
"Jones",
"Garcia",
"Miller",
"Davis",
"Rodriguez",
"Martinez",
"Hernandez",
"Lopez",
"Gonzalez",
"Wilson",
"Anderson",
"Thomas",
"Taylor",
"Moore",
"Jackson",
"Martin",
"Lee",
"Perez",
"Thompson",
"Harris",
"Sanchez",
"Clark",
"Ramirez",
"Lewis",
"Robinson",
"Walker",
"Young",
"Allen",
"King",
"Wright",
"Scott",
"Torres",
"Nguyen",
"Hill",
"Flores",
"Green",
"Adams"
]
main :: IO ()
main = do
forM_ [1..60] $ \i -> do
first_name <- (first!!) <$> randomRIO (0, length first - 1)
last_name <- (surn!!) <$> randomRIO (0, length surn - 1)
putStrLn $ " NPC {\n code: \"melbs_citizen_" <> (show i) <> "\",\n name: \"" <> first_name <> " " <> last_name <> "\n description: \"A fairly ordinary looking citizen of Melbs, clearly weary from the harst reality of post-apocalyptic life\",\n spawn_location: \"room/melbs_\"\n message_handler: None,\n says: vec!()\n },\n"

View File

@ -0,0 +1,182 @@
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Text as T
import qualified Data.Text.IO as T
import Control.Monad
import System.Random
rooms :: [T.Text]
rooms = [
"melbs_kingst_latrobest",
"melbs_kingst_10",
"melbs_kingst_20",
"melbs_kingst_30",
"melbs_kingst_lonsdalest",
"melbs_kingst_40",
"melbs_homelessshelter",
"melbs_kingst_50",
"melbs_kingst_60",
"melbs_kingst_bourkest",
"melbs_kingst_70",
"melbs_kingst_80",
"melbs_kingst_90",
"melbs_kingst_collinsst",
"melbs_kingst_100",
"melbs_kingst_110",
"melbs_kingst_120",
"melbs_kingst_flinderst",
"melbs_flindersst_210",
"melbs_flindersst_200",
"melbs_flindersst_190",
"melbs_williamsst_flindersst",
"melbs_flindersst_180",
"melbs_flindersst_170",
"melbs_flindersst_160",
"melbs_queenst_flindersst",
"melbs_flindersst_150",
"melbs_flindersst_140",
"melbs_flindersst_130",
"melbs_elizabethst_flindersst",
"melbs_flindersst_120",
"melbs_flindersst_110",
"melbs_flindersst_100",
"melbs_swanstonst_flindersst",
"melbs_swanstonst_latrobest",
"melbs_swansonst_10",
"melbs_swanstonst_20",
"melbs_swanstonst_30",
"melbs_swanstonst_lonsdalest",
"melbs_swanstonst_40",
"melbs_swanstonst_50",
"melbs_swanstonst_60",
"melbs_swanstonst_bourkest",
"melbs_swanstonst_70",
"melbs_swanstonst_80",
"melbs_swanstonst_90",
"melbs_swanstonst_collinsst",
"melbs_swanstonst_100",
"melbs_swanstonst_110",
"melbs_swanstonst_120",
"melbs_latrobest_210",
"melbs_latrobesst_200",
"melbs_latrobest_190",
"melbs_williamstlatrobest",
"melbs_latrobest_180",
"melbs_latrobest_170",
"melbs_latrobest_160",
"melbs_queenst_latrobest",
"melbs_latrobest_150",
"melbs_latrobest_140",
"melbs_latrobest_130",
"melbs_elizabethst_latrobest",
"melbs_latrobest_120",
"melbs_latrobest_110",
"melbs_latrobest_100",
"melbs_lonsdalest_210",
"melbs_lonsdalest_200",
"melbs_lonsdalest_190",
"melbs_williamstlonsdalest",
"melbs_lonsdalest_180",
"melbs_lonsdalest_170",
"melbs_lonsdalest_160",
"melbs_queenst_lonsdalest",
"melbs_lonsdalest_150",
"melbs_lonsdalest_140",
"melbs_lonsdalest_130",
"melbs_elizabethst_lonsdalest",
"melbs_lonsdalest_120",
"melbs_lonsdalest_110",
"melbs_lonsdalest_100",
"melbs_williamsst_10",
"melbs_williamsst_20",
"melbs_williamsst_30",
"melbs_williamsst_40",
"melbs_williamsst_50",
"melbs_williamsst_60",
"melbs_williamsst_bourkest",
"melbs_williamsst_70",
"melbs_williamsst_80",
"melbs_williamsst_90",
"melbs_williamsst_collinsst",
"melbs_williamsst_100",
"melbs_williamsst_110",
"melbs_williamsst_120",
"melbs_bourkest_210",
"melbs_bourkest_200",
"melbs_bourkest_190",
"melbs_bourkest_180",
"melbs_bourkest_170",
"melbs_bourkest_160",
"melbs_queenst_bourkest",
"melbs_bourkest_150",
"melbs_bourkest_140",
"melbs_bourkest_130",
"melbs_elizabethst_bourkest",
"melbs_bourkest_120",
"melbs_bourkest_110",
"melbs_bourkest_100",
"melbs_queenst_10",
"melbs_queenst_20",
"melbs_queenst_30",
"melbs_queenst_40",
"melbs_queenst_50",
"melbs_queenst_60",
"melbs_queenst_70",
"melbs_queenst_80",
"melbs_queenst_90",
"melbs_queenst_collinsst",
"melbs_queenst_100",
"melbs_queenst_110",
"melbs_queenst_120",
"melbs_collinsst_210",
"melbs_collinsst_200",
"melbs_collinsst_190",
"melbs_collinsst_180",
"melbs_collinsst_170",
"melbs_collinsst_160",
"melbs_collinsst_150",
"melbs_collinsst_140",
"melbs_collinsst_130",
"melbs_elizabethst_collinsst",
"melbs_collinsst_120",
"melbs_collinsst_110",
"melbs_collinsst_100",
"melbs_elizabethst_10",
"melbs_elizabethst_20",
"melbs_elizabethst_30",
"melbs_elizabethst_40",
"melbs_elizabethst_50",
"melbs_elizabethst_60",
"melbs_elizabethst_70",
"melbs_elizabethst_80",
"melbs_elizabethst_90",
"melbs_elizabethst_100",
"melbs_elizabethst_110",
"melbs_elizabethst_120"
]
character :: Int -> T.Text -> T.Text -> T.Text
character id adjective room =
" NPC {\n\
\ code: \"melbs_dog_" <> (T.pack $ show id) <> "\",\n\
\ name: \"" <> adjective <> " dog\",\n\
\ proper_noun: false,\n\
\ description: \"A malnourished looking dog. Its skeleton is visible through its thin and patchy fur. It smells terrible, and certainly doesn't look tame.\",\n\
\ spawn_location: \"room/" <> room <> "\",\n\
\ ..Default::default()\n\
\ },\n"
chooseFromList :: [a] -> IO a
chooseFromList l = (l!!) <$> randomRIO (0, length l - 1)
firstAdjectives :: [T.Text]
firstAdjectives = ["mangy", "smelly", "feral", "ferocious", "howling", "growling", "reeking"]
secondAdjectives :: [T.Text]
secondAdjectives = ["brown", "black", "white", "grey", "light brown"]
main :: IO ()
main = forM_ [1..60] $ \id -> do
adjective1 <- chooseFromList firstAdjectives
adjective2 <- chooseFromList secondAdjectives
room <- chooseFromList rooms
T.putStr $ character id (adjective1 <> " " <> adjective2) room