From 8afe5fd1dd617e1a96e4c3b56f5a9d90d04e3f4e Mon Sep 17 00:00:00 2001 From: timokoesters Date: Sat, 18 Jan 2020 15:00:59 +0100 Subject: [PATCH] improvement: reset character state and energy on death --- common/src/comp/energy.rs | 1 + server/src/lib.rs | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/common/src/comp/energy.rs b/common/src/comp/energy.rs index 2fcb180f09..32169ddbff 100644 --- a/common/src/comp/energy.rs +++ b/common/src/comp/energy.rs @@ -14,6 +14,7 @@ pub enum EnergySource { CastSpell, LevelUp, Regen, + Revive, Unknown, } diff --git a/server/src/lib.rs b/server/src/lib.rs index 797e0f52f8..eb44cad557 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -434,6 +434,17 @@ impl Server { .map(|err| { error!("Failed to insert ForceUpdate on dead client: {:?}", err) }); + state + .ecs() + .write_storage::() + .get_mut(entity) + .map(|energy| { + energy.set_to(energy.maximum(), comp::EnergySource::Revive) + }); + let _ = state + .ecs() + .write_storage::() + .insert(entity, comp::CharacterState::default()); } else { // If not a player delete the entity if let Err(err) = state.delete_entity_recorded(entity) {