From 99aba7842213d2d43639ab216605f2b03222132b Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 11 Sep 2020 13:07:09 -0500 Subject: [PATCH] Added healing healthsource logic to shockwave system. --- .../npc_weapons/npcweapon/stone_golems_fist.ron | 2 +- common/src/loadout_builder.rs | 2 +- common/src/sys/shockwave.rs | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/assets/common/items/npc_weapons/npcweapon/stone_golems_fist.ron b/assets/common/items/npc_weapons/npcweapon/stone_golems_fist.ron index e5dc1c1817..ad00cb189c 100644 --- a/assets/common/items/npc_weapons/npcweapon/stone_golems_fist.ron +++ b/assets/common/items/npc_weapons/npcweapon/stone_golems_fist.ron @@ -1,4 +1,4 @@ -Item( +ItemDef( name: "Stone Golem's Fist", description: "Was attached to a mighty stone golem.", kind: Tool( diff --git a/common/src/loadout_builder.rs b/common/src/loadout_builder.rs index b92eb60337..1030729764 100644 --- a/common/src/loadout_builder.rs +++ b/common/src/loadout_builder.rs @@ -74,7 +74,7 @@ impl LoadoutBuilder { Body::Golem(golem) => match golem.species { golem::Species::StoneGolem => { main_tool = Some(Item::new_from_asset_expect( - "common.items.weapons.bossweapon.stone_golems_fist", + "common.items.npc_weapons.npcweapon.stone_golems_fist", )); }, }, diff --git a/common/src/sys/shockwave.rs b/common/src/sys/shockwave.rs index 312ee2effc..dd27e4d496 100644 --- a/common/src/sys/shockwave.rs +++ b/common/src/sys/shockwave.rs @@ -203,7 +203,7 @@ impl<'a> System<'a> for Sys { damage.modify_damage(block, loadout); } - if damage.healthchange != 0.0 { + if damage.healthchange < 0.0 { server_emitter.emit(ServerEvent::Damage { uid: *uid_b, change: HealthChange { @@ -213,6 +213,16 @@ impl<'a> System<'a> for Sys { }, }, }); + } else if damage.healthchange > 0.0 { + server_emitter.emit(ServerEvent::Damage { + uid: *uid_b, + change: HealthChange { + amount: damage.healthchange as i32, + cause: HealthSource::Healing { + by: Some(shockwave.owner.unwrap_or(*uid)), + }, + }, + }); } if shockwave.knockback != 0.0 && damage.healthchange != 0.0 { if shockwave.knockback < 0.0 {