| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- using Content.Shared.Actions;
- using Robust.Shared.GameStates;
- using Robust.Shared.Prototypes;
- namespace Content.Shared.Ghost;
- [RegisterComponent, NetworkedComponent, Access(typeof(SharedGhostSystem))]
- [AutoGenerateComponentState(true), AutoGenerateComponentPause]
- public sealed partial class GhostComponent : Component
- {
- // Actions
- [DataField]
- public EntProtoId ToggleLightingAction = "ActionToggleLighting";
- [DataField, AutoNetworkedField]
- public EntityUid? ToggleLightingActionEntity;
- [DataField]
- public EntProtoId ToggleFoVAction = "ActionToggleFov";
- [DataField, AutoNetworkedField]
- public EntityUid? ToggleFoVActionEntity;
- [DataField]
- public EntProtoId ToggleGhostsAction = "ActionToggleGhosts";
- [DataField, AutoNetworkedField]
- public EntityUid? ToggleGhostsActionEntity;
- [DataField]
- public EntProtoId ToggleGhostHearingAction = "ActionToggleGhostHearing";
- [DataField]
- public EntityUid? ToggleGhostHearingActionEntity;
- [DataField]
- public EntProtoId BooAction = "ActionGhostBoo";
- [DataField, AutoNetworkedField]
- public EntityUid? BooActionEntity;
- // End actions
- [ViewVariables(VVAccess.ReadWrite), DataField, AutoPausedField]
- public TimeSpan TimeOfDeath = TimeSpan.Zero;
- [DataField("booRadius"), ViewVariables(VVAccess.ReadWrite)]
- public float BooRadius = 3;
- [DataField("booMaxTargets"), ViewVariables(VVAccess.ReadWrite)]
- public int BooMaxTargets = 3;
- // TODO: instead of this funny stuff just give it access and update in system dirtying when needed
- [ViewVariables(VVAccess.ReadWrite)]
- public bool CanGhostInteract
- {
- get => _canGhostInteract;
- set
- {
- if (_canGhostInteract == value) return;
- _canGhostInteract = value;
- Dirty();
- }
- }
- [DataField("canInteract"), AutoNetworkedField]
- private bool _canGhostInteract;
- /// <summary>
- /// Changed by <see cref="SharedGhostSystem.SetCanReturnToBody"/>
- /// </summary>
- // TODO MIRROR change this to use friend classes when thats merged
- [ViewVariables(VVAccess.ReadWrite)]
- public bool CanReturnToBody
- {
- get => _canReturnToBody;
- set
- {
- if (_canReturnToBody == value) return;
- _canReturnToBody = value;
- Dirty();
- }
- }
- /// <summary>
- /// Ghost color
- /// </summary>
- /// <remarks>Used to allow admins to change ghost colors. Should be removed if the capability to edit existing sprite colors is ever added back.</remarks>
- [DataField, AutoNetworkedField]
- public Color Color = Color.White;
- [DataField("canReturnToBody"), AutoNetworkedField]
- private bool _canReturnToBody;
- }
- public sealed partial class ToggleFoVActionEvent : InstantActionEvent { }
- public sealed partial class ToggleGhostsActionEvent : InstantActionEvent { }
- public sealed partial class ToggleLightingActionEvent : InstantActionEvent { }
- public sealed partial class ToggleGhostHearingActionEvent : InstantActionEvent { }
- public sealed partial class ToggleGhostVisibilityToAllEvent : InstantActionEvent { }
- public sealed partial class BooActionEvent : InstantActionEvent { }
|