mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'juliancoffee/remove_post_armor_crit' into 'master'
Remove post-armor crit damage See merge request veloren/veloren!2531
This commit is contained in:
commit
07abf65bd6
@ -31,6 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
- Enemies no more spawn in dungeon boss room
|
- Enemies no more spawn in dungeon boss room
|
||||||
|
- Melee critical hit no more applies after reduction by armour
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
@ -587,74 +587,17 @@ impl Damage {
|
|||||||
damage_modifier: f32,
|
damage_modifier: f32,
|
||||||
) -> HealthChange {
|
) -> HealthChange {
|
||||||
let mut damage = self.value * damage_modifier;
|
let mut damage = self.value * damage_modifier;
|
||||||
// Critical hit damage (to be applied post-armor for melee, and pre-armor for
|
|
||||||
// other damage kinds
|
|
||||||
let critdamage = if is_crit {
|
let critdamage = if is_crit {
|
||||||
damage * (crit_mult - 1.0)
|
damage * (crit_mult - 1.0)
|
||||||
} else {
|
} else {
|
||||||
0.0
|
0.0
|
||||||
};
|
};
|
||||||
match self.source {
|
match self.source {
|
||||||
DamageSource::Melee => {
|
DamageSource::Melee
|
||||||
// Armor
|
| DamageSource::Projectile
|
||||||
damage *= 1.0 - damage_reduction;
|
| DamageSource::Explosion
|
||||||
|
| DamageSource::Shockwave
|
||||||
// Critical damage applies after armor for melee
|
| DamageSource::Energy => {
|
||||||
if (damage_reduction - 1.0).abs() > f32::EPSILON {
|
|
||||||
damage += critdamage;
|
|
||||||
}
|
|
||||||
|
|
||||||
HealthChange {
|
|
||||||
amount: -damage as i32,
|
|
||||||
cause: HealthSource::Damage {
|
|
||||||
kind: self.source,
|
|
||||||
by: uid,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
DamageSource::Projectile => {
|
|
||||||
// Critical hit
|
|
||||||
damage += critdamage;
|
|
||||||
// Armor
|
|
||||||
damage *= 1.0 - damage_reduction;
|
|
||||||
|
|
||||||
HealthChange {
|
|
||||||
amount: -damage as i32,
|
|
||||||
cause: HealthSource::Damage {
|
|
||||||
kind: self.source,
|
|
||||||
by: uid,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
DamageSource::Explosion => {
|
|
||||||
// Critical hit
|
|
||||||
damage += critdamage;
|
|
||||||
// Armor
|
|
||||||
damage *= 1.0 - damage_reduction;
|
|
||||||
|
|
||||||
HealthChange {
|
|
||||||
amount: -damage as i32,
|
|
||||||
cause: HealthSource::Damage {
|
|
||||||
kind: self.source,
|
|
||||||
by: uid,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
DamageSource::Shockwave => {
|
|
||||||
// Critical hit
|
|
||||||
damage += critdamage;
|
|
||||||
// Armor
|
|
||||||
damage *= 1.0 - damage_reduction;
|
|
||||||
|
|
||||||
HealthChange {
|
|
||||||
amount: -damage as i32,
|
|
||||||
cause: HealthSource::Damage {
|
|
||||||
kind: self.source,
|
|
||||||
by: uid,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
DamageSource::Energy => {
|
|
||||||
// Critical hit
|
// Critical hit
|
||||||
damage += critdamage;
|
damage += critdamage;
|
||||||
// Armor
|
// Armor
|
||||||
@ -678,14 +621,7 @@ impl Damage {
|
|||||||
cause: HealthSource::World,
|
cause: HealthSource::World,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
DamageSource::Buff(_) => HealthChange {
|
DamageSource::Buff(_) | DamageSource::Other => HealthChange {
|
||||||
amount: -damage as i32,
|
|
||||||
cause: HealthSource::Damage {
|
|
||||||
kind: self.source,
|
|
||||||
by: uid,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
DamageSource::Other => HealthChange {
|
|
||||||
amount: -damage as i32,
|
amount: -damage as i32,
|
||||||
cause: HealthSource::Damage {
|
cause: HealthSource::Damage {
|
||||||
kind: self.source,
|
kind: self.source,
|
||||||
|
Loading…
Reference in New Issue
Block a user