diff --git a/blastmud_game/src/static_content/npc/sewer_npcs.rs b/blastmud_game/src/static_content/npc/sewer_npcs.rs index 9957bf9..1f617eb 100644 --- a/blastmud_game/src/static_content/npc/sewer_npcs.rs +++ b/blastmud_game/src/static_content/npc/sewer_npcs.rs @@ -37,7 +37,7 @@ pub fn npc_list() -> Vec { use NPCSayType::FromFixedList; let radiant_predator_stdsay = NPCSayInfo { say_code: "babble", - frequency_secs: 120, + frequency_secs: 30, talk_type: FromFixedList(vec![ "I hunger for flesh.", "The darkness is my ally.", @@ -64,7 +64,7 @@ pub fn npc_list() -> Vec { }; let stinkfiend_stdsay = NPCSayInfo { say_code: "babble", - frequency_secs: 120, + frequency_secs: 30, talk_type: FromFixedList(vec![ "This part of the sewers is mine, and all who enter die by my hand!", "I hate surface dwellers so much. At least they're easy to kill!", @@ -162,6 +162,7 @@ pub fn npc_list() -> Vec { ) }).collect(), player_consents: vec!(ConsentType::Fight), + intrinsic_weapon: Some(PossessionType::Fangs), message_handler: None, wander_zones: vec!["melbs_sewers".to_owned()], ..Default::default() @@ -175,7 +176,7 @@ pub fn npc_list() -> Vec { ..Pronouns::default_inanimate() }, aliases: vec!["fiend".to_owned()], - aggression: 18, + aggression: 21, description: "A grotesquely mutant humanoid creature, with orange-tinged discoloured skin hanging loose on flesh, and distorted yet horrific features. It looks dangerous. The odour of this creature is so pungent you have to choke back the urge to vomit as it wafts your way".to_owned(), spawn_location: format!("room/melbs_sewers_{}", &spawn_loc), species: SpeciesType::Human, @@ -199,6 +200,13 @@ pub fn npc_list() -> Vec { ) }).collect(), player_consents: vec!(ConsentType::Fight), + spawn_possessions: vec![ + NPCSpawnPossession { + what: PossessionType::Dagger, + action_type: LocationActionType::Wielded, + wear_layer: 0, + }, + ], says: vec!(stinkfiend_stdsay.clone()), message_handler: None, wander_zones: vec![], // They defend their room. diff --git a/blastmud_game/src/static_content/npc/sewer_npcs.yaml b/blastmud_game/src/static_content/npc/sewer_npcs.yaml index a2a8dbd..a35c5d9 100644 --- a/blastmud_game/src/static_content/npc/sewer_npcs.yaml +++ b/blastmud_game/src/static_content/npc/sewer_npcs.yaml @@ -228,6 +228,42 @@ name: repulsive foul radiant predator gender: Male spawn_loc: 14q +- !KillerCroc + code: 1 + name: leathery killer crocodile + spawn_loc: 9f +- !KillerCroc + code: 2 + name: snapping killer crocodile + spawn_loc: 9g +- !KillerCroc + code: 3 + name: prowling killer crocodile + spawn_loc: 6i +- !KillerCroc + code: 4 + name: lurking killer crocodile + spawn_loc: 7i +- !KillerCroc + code: 5 + name: silent killer crocodile + spawn_loc: 11i +- !KillerCroc + code: 6 + name: smiling killer crocodile + spawn_loc: 12i +- !KillerCroc + code: 7 + name: robust killer crocodile + spawn_loc: 9j +- !KillerCroc + code: 8 + name: scaly killer crocodile + spawn_loc: 9k +- !KillerCroc + code: 9 + name: ruthless killer crocodile + spawn_loc: 9l - !Stinkfiend code: stink_1 name: repulsive stinkfiend diff --git a/blastmud_game/src/static_content/possession_type.rs b/blastmud_game/src/static_content/possession_type.rs index 76749a5..e8fea47 100644 --- a/blastmud_game/src/static_content/possession_type.rs +++ b/blastmud_game/src/static_content/possession_type.rs @@ -411,6 +411,7 @@ pub enum PossessionType { // Weapons: Whips AntennaWhip, LeatherWhip, + Sjambok, // Weapons: Blades ButcherKnife, Dagger, diff --git a/blastmud_game/src/static_content/possession_type/whip.rs b/blastmud_game/src/static_content/possession_type/whip.rs index 7d69f4c..6225f78 100644 --- a/blastmud_game/src/static_content/possession_type/whip.rs +++ b/blastmud_game/src/static_content/possession_type/whip.rs @@ -135,5 +135,72 @@ pub fn data() -> &'static Vec<(PossessionType, PossessionData)> { ..Default::default() } ), + (PossessionType::Sjambok, + PossessionData { + display: "sjambok", + details: "A flexible rod-like whip, tapered at one end, made of some kind of thick hide rolled into a cylinder. It looks like it would make a formidable whip", + aliases: vec!("whip"), + weight: 800, + weapon_data: Some(WeaponData { + uses_skill: SkillType::Whips, + raw_min_to_learn: 2.0, + raw_max_to_learn: 4.0, + normal_attack: WeaponAttackData { + start_messages: vec!( + Box::new(|attacker, victim| + format!("{} lines up {} sjambok for a strike on {}", + &attacker.display_for_sentence(1, true), + &attacker.pronouns.possessive, + &victim.display_for_sentence(1, false), + ) + ) + ), + success_messages: vec!( + Box::new(|attacker, victim, part| + format!("{}'s sjambok lacerates {}'s {}", + &attacker.display_for_sentence(1, true), + &victim.display_for_sentence(1, false), + &part.display(victim.sex.clone()) + ) + ) + ), + mean_damage: 5.0, + stdev_damage: 3.0, + base_damage_type: DamageType::Slash, + crit_effects: vec![(0.05, EffectType::Bleed)], + other_damage_types: vec!((0.25, DamageType::Beat)), + ..Default::default() + }, + power_attack: Some(WeaponAttackData { + start_messages: vec!( + Box::new(|attacker, victim| + format!("{} bulges {} muscles for a power sjambok strike on {}", + &attacker.display_for_sentence(1, true), + &attacker.pronouns.possessive, + &victim.display_for_sentence(1, false), + ) + ) + ), + success_messages: vec!( + Box::new(|attacker, victim, part| + format!("{}'s sjambok hits {}'s {} with great force", + &attacker.display_for_sentence(1, true), + &victim.display_for_sentence(1, false), + &part.display(victim.sex.clone()) + ) + ) + ), + mean_damage: 14.0, + stdev_damage: 5.0, + base_damage_type: DamageType::Slash, + crit_effects: vec![(0.3, EffectType::Bleed)], + other_damage_types: vec!((0.25, DamageType::Beat)), + ..Default::default() + }), + ..Default::default() + }), + ..Default::default() + } + ), )) }