* 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>
36 lines
1022 B
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|