diff --git a/assets/voxygen/i18n/en/buff.ron b/assets/voxygen/i18n/en/buff.ron index 0131214351..bd1f8dd33d 100644 --- a/assets/voxygen/i18n/en/buff.ron +++ b/assets/voxygen/i18n/en/buff.ron @@ -28,6 +28,8 @@ "buff.desc.cursed": "You are cursed.", "buff.title.burn": "On Fire", "buff.desc.burn": "You are burning alive", + "buff.title.crippled": "Crippled", + "buff.desc.crippled": "Your movement is crippled as your legs are heavily injured.", // Buffs stats "buff.stat.health": "Restores {str_total} Health", "buff.stat.increase_max_stamina": "Raises Maximum Stamina by {strength}", diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index d2d01df77f..2b29a2f480 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -441,7 +441,7 @@ impl Body { biped_large::Species::Wendigo => 2800, biped_large::Species::Troll => 2400, biped_large::Species::Dullahan => 3000, - biped_large::Species::Mindflayer => 8000, + biped_large::Species::Mindflayer => 25000, biped_large::Species::Tidalwarrior => 2500, biped_large::Species::Yeti => 4000, biped_large::Species::Minotaur => 30000, @@ -553,10 +553,11 @@ impl Body { biped_large::Species::Wendigo => 80, biped_large::Species::Troll => 60, biped_large::Species::Dullahan => 120, - biped_large::Species::Mindflayer => 250, biped_large::Species::Tidalwarrior => 90, biped_large::Species::Yeti => 80, biped_large::Species::Harvester => 80, + // Boss enemies have their health set, not adjusted by level. + biped_large::Species::Mindflayer => 0, biped_large::Species::Minotaur => 0, _ => 100, }, @@ -606,7 +607,11 @@ impl Body { pub fn combat_multiplier(&self) -> f32 { match self { Body::Object(_) | Body::Ship(_) => 0.0, - Body::BipedLarge(b) if matches!(b.species, biped_large::Species::Mindflayer) => 4.0, + Body::BipedLarge(b) => match b.species { + biped_large::Species::Mindflayer => 4.8, + biped_large::Species::Minotaur => 3.2, + _ => 1.0, + }, _ => 1.0, } } diff --git a/common/src/comp/buff.rs b/common/src/comp/buff.rs index 69fe6cf9fe..2e938937ed 100644 --- a/common/src/comp/buff.rs +++ b/common/src/comp/buff.rs @@ -14,22 +14,13 @@ use std::{cmp::Ordering, time::Duration}; /// This is used to determine what effects a buff will have #[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Serialize, Deserialize, PartialOrd, Ord)] pub enum BuffKind { - /// Does damage to a creature over time - /// Strength should be 10x the DPS of the debuff - Burning, + // Buffs /// Restores health/time for some period /// Strength should be 10x the healing per second Regeneration, /// Restores health/time for some period for consumables /// Strength should be 10x the healing per second Saturation, - /// Lowers health over time for some duration - /// Strength should be 10x the DPS of the debuff - Bleeding, - /// Lower a creature's max health over time - /// Strength only affects the target max health, 0.5 targets 50% of base - /// max, 1.0 targets 100% of base max - Cursed, /// Applied when drinking a potion /// Strength should be 10x the healing per second Potion, @@ -49,14 +40,25 @@ pub enum BuffKind { /// Strength scales the damage reduction non-linearly. 0.5 provides 50% DR, /// 1.0 provides 67% DR ProtectingWard, - /// Reduces movement speed and causes bleeding damage - /// Strength scales the movement speed debuff non-linearly. 0.5 is 50% - /// speed, 1.0 is 33% speed. Bleeding is at 10x the value of the strength. - Crippled, /// Increases movement speed and gives health regeneration /// Strength scales the movement speed linearly. 0.5 is 150% speed, 1.0 is /// 200% speed. Provides regeneration at 10x the value of the strength Frenzied, + // Debuffs + /// Does damage to a creature over time + /// Strength should be 10x the DPS of the debuff + Burning, + /// Lowers health over time for some duration + /// Strength should be 10x the DPS of the debuff + Bleeding, + /// Lower a creature's max health over time + /// Strength only affects the target max health, 0.5 targets 50% of base + /// max, 1.0 targets 100% of base max + Cursed, + /// Reduces movement speed and causes bleeding damage + /// Strength scales the movement speed debuff non-linearly. 0.5 is 50% + /// speed, 1.0 is 33% speed. Bleeding is at 10x the value of the strength. + Crippled, } #[cfg(not(target_arch = "wasm32"))] diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 5097b30cfa..a6c684646c 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -2569,10 +2569,9 @@ impl<'a> AgentData<'a> { const MINION_SUMMON_THRESHOLD: f32 = 0.20; let health_fraction = self.health.map_or(0.5, |h| h.fraction()); // Sets counter at start of combat - if agent.action_state.counter < MINION_SUMMON_THRESHOLD - && health_fraction > MINION_SUMMON_THRESHOLD - { + if agent.action_state.condition { agent.action_state.counter = 1.0 - MINION_SUMMON_THRESHOLD; + agent.action_state.condition = true; } let mindflayer_is_far = dist_sqrd > MINDFLAYER_ATTACK_DIST.powi(2); if agent.action_state.counter > health_fraction {