From c5c78763a2f5339b7e382f629b8026879d0a1043 Mon Sep 17 00:00:00 2001 From: Shagnor Date: Wed, 11 Jan 2023 22:51:17 +1100 Subject: [PATCH] Add dogs --- blastmud_game/src/static_content/npc.rs | 583 +----------------- .../src/static_content/npc/melbs_citizen.rs | 563 +++++++++++++++++ .../src/static_content/npc/melbs_dog.rs | 486 +++++++++++++++ .../src/static_content/room/cok_murl.rs | 2 +- scripts/npc-chargen/gennpc-citizen.hs | 99 +++ scripts/npc-chargen/gennpc-dog.hs | 182 ++++++ 6 files changed, 1356 insertions(+), 559 deletions(-) create mode 100644 blastmud_game/src/static_content/npc/melbs_citizen.rs create mode 100644 blastmud_game/src/static_content/npc/melbs_dog.rs create mode 100644 scripts/npc-chargen/gennpc-citizen.hs create mode 100644 scripts/npc-chargen/gennpc-dog.hs diff --git a/blastmud_game/src/static_content/npc.rs b/blastmud_game/src/static_content/npc.rs index 97c6bca..b01bc81 100644 --- a/blastmud_game/src/static_content/npc.rs +++ b/blastmud_game/src/static_content/npc.rs @@ -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 } +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 { - use NPCSayType::FromFixedList; static NPC_LIST: OnceCell> = 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 }) } diff --git a/blastmud_game/src/static_content/npc/melbs_citizen.rs b/blastmud_game/src/static_content/npc/melbs_citizen.rs new file mode 100644 index 0000000..25df4d0 --- /dev/null +++ b/blastmud_game/src/static_content/npc/melbs_citizen.rs @@ -0,0 +1,563 @@ +use super::{NPC, NPCSayInfo, NPCSayType}; + +pub fn npc_list() -> Vec { + 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() + } + ) +} diff --git a/blastmud_game/src/static_content/npc/melbs_dog.rs b/blastmud_game/src/static_content/npc/melbs_dog.rs new file mode 100644 index 0000000..97cac6c --- /dev/null +++ b/blastmud_game/src/static_content/npc/melbs_dog.rs @@ -0,0 +1,486 @@ +use super::NPC; + +pub fn npc_list() -> Vec { + 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() + }, + ) +} diff --git a/blastmud_game/src/static_content/room/cok_murl.rs b/blastmud_game/src/static_content/room/cok_murl.rs index dba5f38..7a57ece 100644 --- a/blastmud_game/src/static_content/room/cok_murl.rs +++ b/blastmud_game/src/static_content/room/cok_murl.rs @@ -83,7 +83,7 @@ pub fn room_list() -> Vec { should_caption: true, ..Default::default() }, - + // Commercial Room { zone: "cok_murl", diff --git a/scripts/npc-chargen/gennpc-citizen.hs b/scripts/npc-chargen/gennpc-citizen.hs new file mode 100644 index 0000000..fe69906 --- /dev/null +++ b/scripts/npc-chargen/gennpc-citizen.hs @@ -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" diff --git a/scripts/npc-chargen/gennpc-dog.hs b/scripts/npc-chargen/gennpc-dog.hs new file mode 100644 index 0000000..5bb9f5f --- /dev/null +++ b/scripts/npc-chargen/gennpc-dog.hs @@ -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