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) {