Merge branch 'sam/small-fixes' into 'master'

Poise damage now only conditionally converted to health damage

See merge request veloren/veloren!3438
This commit is contained in:
Samuel Keiffer 2022-06-25 01:59:00 +00:00
commit f4d9cca89b
4 changed files with 27 additions and 65 deletions

View File

@ -1523,7 +1523,6 @@
material: ("common.items.log.wood", 5),
modifier: None,
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1535,7 +1534,6 @@
material: ("common.items.log.bamboo", 5),
modifier: None,
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1547,7 +1545,6 @@
material: ("common.items.log.hardwood", 5),
modifier: None,
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1559,7 +1556,6 @@
material: ("common.items.log.ironwood", 5),
modifier: None,
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1571,7 +1567,6 @@
material: ("common.items.log.frostwood", 5),
modifier: None,
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1583,7 +1578,6 @@
material: ("common.items.log.eldwood", 5),
modifier: None,
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1595,7 +1589,6 @@
material: ("common.items.log.wood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.sharp_fang", 1)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1607,7 +1600,6 @@
material: ("common.items.log.bamboo", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.sharp_fang", 2)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1619,7 +1611,6 @@
material: ("common.items.log.hardwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.sharp_fang", 5)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1631,7 +1622,6 @@
material: ("common.items.log.ironwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.sharp_fang", 10)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1643,7 +1633,6 @@
material: ("common.items.log.frostwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.sharp_fang", 15)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1655,7 +1644,6 @@
material: ("common.items.log.eldwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.sharp_fang", 25)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1667,7 +1655,6 @@
material: ("common.items.log.wood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.large_horn", 1)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1679,7 +1666,6 @@
material: ("common.items.log.bamboo", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.large_horn", 2)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1691,7 +1677,6 @@
material: ("common.items.log.hardwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.large_horn", 5)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1703,7 +1688,6 @@
material: ("common.items.log.ironwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.large_horn", 10)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1715,7 +1699,6 @@
material: ("common.items.log.frostwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.large_horn", 15)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1727,7 +1710,6 @@
material: ("common.items.log.eldwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.large_horn", 25)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1739,7 +1721,6 @@
material: ("common.items.log.wood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.long_tusk", 1)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1751,7 +1732,6 @@
material: ("common.items.log.bamboo", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.long_tusk", 2)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1763,7 +1743,6 @@
material: ("common.items.log.hardwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.long_tusk", 5)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1775,7 +1754,6 @@
material: ("common.items.log.ironwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.long_tusk", 10)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1787,7 +1765,6 @@
material: ("common.items.log.frostwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.long_tusk", 15)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1799,7 +1776,6 @@
material: ("common.items.log.eldwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.long_tusk", 25)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1811,7 +1787,6 @@
material: ("common.items.log.wood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.elegant_crest", 1)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1823,7 +1798,6 @@
material: ("common.items.log.bamboo", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.elegant_crest", 2)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1835,7 +1809,6 @@
material: ("common.items.log.hardwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.elegant_crest", 5)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1847,7 +1820,6 @@
material: ("common.items.log.ironwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.elegant_crest", 10)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1859,7 +1831,6 @@
material: ("common.items.log.frostwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.elegant_crest", 15)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1871,7 +1842,6 @@
material: ("common.items.log.eldwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.elegant_crest", 25)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1883,7 +1853,6 @@
material: ("common.items.log.wood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.claw", 1)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1895,7 +1864,6 @@
material: ("common.items.log.bamboo", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.claw", 2)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1907,7 +1875,6 @@
material: ("common.items.log.hardwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.claw", 5)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1919,7 +1886,6 @@
material: ("common.items.log.ironwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.claw", 10)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1931,7 +1897,6 @@
material: ("common.items.log.frostwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.claw", 15)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1943,7 +1908,6 @@
material: ("common.items.log.eldwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.claw", 25)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1955,7 +1919,6 @@
material: ("common.items.log.wood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.strong_pincer", 1)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1967,7 +1930,6 @@
material: ("common.items.log.bamboo", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.strong_pincer", 2)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1979,7 +1941,6 @@
material: ("common.items.log.hardwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.strong_pincer", 5)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -1991,7 +1952,6 @@
material: ("common.items.log.ironwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.strong_pincer", 10)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -2003,7 +1963,6 @@
material: ("common.items.log.frostwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.strong_pincer", 15)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),
@ -2015,7 +1974,6 @@
material: ("common.items.log.eldwood", 5),
modifier: Some(("common.items.crafting_ing.animal_misc.strong_pincer", 25)),
additional_inputs: [
(Item("common.items.crafting_ing.sticky_thread"), 3),
],
craft_sprite: Some(CraftingBench),
),

View File

@ -15,7 +15,7 @@ ItemDef(
buff_strength: 0.8,
),
hand_restriction: Some(Two),
weapon_name: Universal("Long Pole"),
weapon_name: Universal("Longpole"),
)
),
quality: Low,

View File

@ -286,10 +286,27 @@ impl Attack {
time,
};
if change.abs() > Poise::POISE_EPSILON {
emit(ServerEvent::PoiseChange {
entity: target.entity,
change: poise_change,
});
// If target is in a stunned state, apply extra poise damage as health
// damage instead
if let Some(CharacterState::Stunned(data)) = target.char_state {
let health_change =
change * data.static_data.poise_state.damage_multiplier();
let health_change = HealthChange {
amount: health_change,
by: attacker.map(|x| x.into()),
cause: Some(damage.damage.source),
time,
};
emit(ServerEvent::HealthChange {
entity: target.entity,
change: health_change,
});
} else {
emit(ServerEvent::PoiseChange {
entity: target.entity,
change: poise_change,
});
}
}
},
// Piercing damage ignores some penetration, and is handled when damage

View File

@ -55,24 +55,11 @@ enum DamageContrib {
pub fn handle_poise(server: &Server, entity: EcsEntity, change: comp::PoiseChange) {
let ecs = &server.state.ecs();
if let Some(character_state) = ecs.read_storage::<CharacterState>().get(entity) {
// Entity is invincible to poise change during stunned/staggered character
// state, but the mitigated poise damage is converted to health damage instead
if let CharacterState::Stunned(data) = character_state {
let health_change = change.amount * data.static_data.poise_state.damage_multiplier();
let time = ecs.read_resource::<Time>();
let health_change = HealthChange {
amount: health_change,
by: None,
cause: None,
time: *time,
};
let server_eventbus = ecs.read_resource::<EventBus<ServerEvent>>();
server_eventbus.emit_now(ServerEvent::HealthChange {
entity,
change: health_change,
});
} else if let Some(mut poise) = ecs.write_storage::<Poise>().get_mut(entity) {
poise.change(change);
// Entity is invincible to poise change during stunned character state
if !matches!(character_state, CharacterState::Stunned(_)) {
if let Some(mut poise) = ecs.write_storage::<Poise>().get_mut(entity) {
poise.change(change);
}
}
}
}