Files
wwdpublic/Content.Client/_Goobstation/Bingle/BingleSystem.cs
fishbait 9a3bbdbe89 Bingle (#1519)
* init

* yupp

* stuff for tonigth

* death sprite

* cleanup

* added speech and passive regen

* more cleanup

* that if for today

* stuff

* fixed falling animation

* yml split, and localisation

* moved scale to serverside, linked bingle to pit for upgrade

* Apply suggestions from durk

Co-authored-by: Aiden <aiden@djkraz.com>

* fixes

* added upgrade sprite, added combat indicator

* pit animation

* added check for spawning in nullspace

* trying to fix check error

* test

* Revert "test"

* test 2

---------

Co-authored-by: unknown <Administrator@DESKTOP-PMRIVVA.kommune.indresogn.no>
Co-authored-by: Fishbait <Fishbait@git.ml>
Co-authored-by: Aiden <aiden@djkraz.com>
(cherry picked from commit 6608e6eb74a870a882288ecd2af1cea6dcfc7a1a)
2025-03-29 17:58:55 +03:00

44 lines
1.3 KiB
C#

using Robust.Client.GameObjects;
using Content.Shared._Goobstation.Bingle;
using Content.Shared.CombatMode;
namespace Content.Client._Goobstation.Bingle;
/// <summary>
/// handles the upgrade apperance from normal bingle to upgraded bingle
/// </summary>
public sealed class BingleSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeNetworkEvent<BingleUpgradeEntityMessage>(OnUpgradeChange);
SubscribeLocalEvent<BingleComponent, ToggleCombatActionEvent>(OnCombatToggle);
}
//make eyse glow red when combat mode engaged.
private void OnCombatToggle(EntityUid uid, BingleComponent component, ToggleCombatActionEvent args)
{
if (!TryComp<SpriteComponent>(uid, out var sprite))
return;
if (!TryComp<CombatModeComponent>(uid, out var combat))
return;
if (!sprite.LayerMapTryGet(BingleVisual.Combat, out var layer))
return;
sprite.LayerSetVisible(layer, combat.IsInCombatMode);
}
private void OnUpgradeChange(BingleUpgradeEntityMessage args)
{
var uid = GetEntity(args.Bingle);
if (!TryComp<SpriteComponent>(uid, out var sprite))
return;
if (!sprite.LayerMapTryGet(BingleVisual.Upgraded, out var layer))
return;
sprite.LayerSetVisible(layer, true);
}
}