Files
tbd-station-14/Content.Server/GameObjects/EntitySystems/WeightlessStatusSystem.cs
F77F 9b751fc079 Add weightlessness status effect. (#2384)
* Add weightlessness status effect.

* remove system, add new action

* Update Content.Shared/GameObjects/Components/Mobs/SharedWeightlessStatusComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Shared/GameObjects/Components/Mobs/SharedWeightlessStatusComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Shared/GameObjects/Components/Movement/MovementIgnoreGravityComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Shared/GameObjects/Components/Movement/MovementIgnoreGravityComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* fix paul's typo. does not run.

* add client side component

* move logic to eventbus

* remove client/server components and clean up code

* remove useless component, revert human.yml changes.

Co-authored-by: scuffedjays <yetanotherscuffed@gmail.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
2020-10-29 00:52:39 +11:00

36 lines
1022 B
C#

using Content.Shared.GameObjects.Components.Mobs;
using Content.Shared.GameObjects.EntitySystemMessages;
using Robust.Shared.GameObjects.Systems;
namespace Content.Shared.GameObjects.EntitySystems
{
public sealed class WeightlessStatusSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<WeightlessChangeMessage>(HandleWeightlessChanged);
}
private void HandleWeightlessChanged(WeightlessChangeMessage msg)
{
var ent = msg.Entity;
if (!ent.TryGetComponent(out SharedStatusEffectsComponent status))
{
return;
}
if(msg.Weightless)
{
status.ChangeStatusEffect(StatusEffect.Weightless,"/Textures/Interface/StatusEffects/Weightless/weightless.png",null);
}
else
{
status.RemoveStatusEffect(StatusEffect.Weightless);
}
}
}
}