+++ /dev/null
-using Content.Server.Atmos.EntitySystems;
-
-namespace Content.Server.Atmos.Components
-{
- [RegisterComponent]
- public sealed partial class AtmosPlaqueComponent : Component
- {
- [DataField("plaqueType")] public PlaqueType Type = PlaqueType.Unset;
-
- [ViewVariables(VVAccess.ReadWrite)]
- public PlaqueType TypeVV
- {
- get => Type;
- set
- {
- Type = value;
- IoCManager.Resolve<IEntityManager>().System<AtmosPlaqueSystem>().UpdateSign(Owner, this);
- }
- }
- }
-}
+++ /dev/null
-using Content.Server.Atmos.Components;
-using Content.Shared.Atmos.Visuals;
-using Robust.Server.GameObjects;
-using Robust.Shared.Random;
-
-namespace Content.Server.Atmos.EntitySystems;
-
-public sealed class AtmosPlaqueSystem : EntitySystem
-{
- [Dependency] private readonly IRobustRandom _random = default!;
- [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
- [Dependency] private readonly MetaDataSystem _metaData = default!;
-
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent<AtmosPlaqueComponent, MapInitEvent>(OnPlaqueMapInit);
- }
-
- private void OnPlaqueMapInit(EntityUid uid, AtmosPlaqueComponent component, MapInitEvent args)
- {
- var rand = _random.Next(100);
- // Let's not pat ourselves on the back too hard.
- // 1% chance of zumos
- if (rand == 0) component.Type = PlaqueType.Zumos;
- // 9% FEA
- else if (rand <= 10) component.Type = PlaqueType.Fea;
- // 45% ZAS
- else if (rand <= 55) component.Type = PlaqueType.Zas;
- // 45% LINDA
- else component.Type = PlaqueType.Linda;
-
- UpdateSign(uid, component);
- }
-
- public void UpdateSign(EntityUid uid, AtmosPlaqueComponent component)
- {
- var metaData = MetaData(uid);
-
- var val = component.Type switch
- {
- PlaqueType.Zumos =>
- Loc.GetString("atmos-plaque-component-desc-zum"),
- PlaqueType.Fea =>
- Loc.GetString("atmos-plaque-component-desc-fea"),
- PlaqueType.Linda =>
- Loc.GetString("atmos-plaque-component-desc-linda"),
- PlaqueType.Zas =>
- Loc.GetString("atmos-plaque-component-desc-zas"),
- PlaqueType.Unset => Loc.GetString("atmos-plaque-component-desc-unset"),
- _ => Loc.GetString("atmos-plaque-component-desc-unset"),
- };
-
- _metaData.SetEntityDescription(uid, val, metaData);
-
- var val1 = component.Type switch
- {
- PlaqueType.Zumos =>
- Loc.GetString("atmos-plaque-component-name-zum"),
- PlaqueType.Fea =>
- Loc.GetString("atmos-plaque-component-name-fea"),
- PlaqueType.Linda =>
- Loc.GetString("atmos-plaque-component-name-linda"),
- PlaqueType.Zas =>
- Loc.GetString("atmos-plaque-component-name-zas"),
- PlaqueType.Unset => Loc.GetString("atmos-plaque-component-name-unset"),
- _ => Loc.GetString("atmos-plaque-component-name-unset"),
- };
-
- _metaData.SetEntityName(uid, val1, metaData);
-
- if (TryComp<AppearanceComponent>(uid, out var appearance))
- {
- var state = component.Type == PlaqueType.Zumos ? "zumosplaque" : "atmosplaque";
-
- _appearance.SetData(uid, AtmosPlaqueVisuals.State, state, appearance);
- }
- }
-}
-
-// If you get the ZUM plaque it means your round will be blessed with good engineering luck.
-public enum PlaqueType : byte
-{
- Unset = 0,
- Zumos,
- Fea,
- Linda,
- Zas
-}
+++ /dev/null
-using Robust.Shared.Serialization;
-
-namespace Content.Shared.Atmos.Visuals
-{
- [Serializable, NetSerializable]
- public enum AtmosPlaqueVisuals
- {
- State
- }
-}
+++ /dev/null
-atmos-plaque-component-desc-zum = This plaque commemorates the rise of the Atmos ZUM division. May they carry the torch that the Atmos ZAS, LINDA and FEA divisions left behind.
-atmos-plaque-component-desc-fea = This plaque commemorates the fall of the Atmos FEA division. For all the charred, dizzy, and brittle men who have died in its hands.
-atmos-plaque-component-desc-linda =This plaque commemorates the fall of the Atmos LINDA division. For all the charred, dizzy, and brittle men who have died in its hands.
-atmos-plaque-component-desc-zas = This plaque commemorates the fall of the Atmos ZAS division. For all the charred, dizzy, and brittle men who have died in its hands.
-atmos-plaque-component-desc-unset = Uhm
-
-atmos-plaque-component-name-zum = ZUM Atmospherics Division plaque
-atmos-plaque-component-name-fea = FEA Atmospherics Division plaque
-atmos-plaque-component-name-linda = LINDA Atmospherics Division plaque
-atmos-plaque-component-name-zas = ZAS Atmospherics Division plaque
-atmos-plaque-component-name-unset = Uhm
\ No newline at end of file
- type: entity
- parent: BaseSign
+ parent: MarkerBase
id: PlaqueAtmos
- name: atmos plaque
+ name: atmos plaque spawner
+ suffix: Spawner
components:
- - type: WallMount
- - type: Physics
- - type: Fixtures
- fixtures:
- fix1:
- shape:
- !type:PhysShapeAabb
- bounds: "-0.3,-0.3,0.3,0.3"
- layer:
- - MidImpassable
- type: Sprite
- drawdepth: WallMountedItems
layers:
- - state: atmosplaque
- map: ["plaque"]
- - type: Appearance
- - type: GenericVisualizer
- visuals:
- enum.AtmosPlaqueVisuals.State:
- plaque:
- zumosplaque: { state: zumosplaque }
- atmosplaque: { state: atmosplaque }
- - type: AtmosPlaque
+ - state: green
+ - sprite: Structures/Wallmounts/signs.rsi
+ state: atmosplaque
+ - type: EntityTableSpawner
+ table: !type:GroupSelector
+ children:
+ - id: PlaqueAtmosZUM
+ weight: 1
+ - id: PlaqueAtmosFEA
+ weight: 9
+ - id: PlaqueAtmosZAS
+ weight: 45
+ - id: PlaqueAtmosLINDA
+ weight: 45
+ offset: 0.0
+
+# individual plaques aren't placeable. you will not defy the randomness.
+
+- type: entity
+ parent: BaseSign
+ id: PlaqueAtmosFEA
+ name: FEA Atmospherics Division plaque
+ description: This plaque commemorates the fall of the Atmos FEA division. For all the charred, dizzy, and brittle men who have died in its hands.
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: Sprite
+ state: atmosplaque
+
+- type: entity
+ parent: PlaqueAtmosFEA
+ id: PlaqueAtmosLINDA
+ name: LINDA Atmospherics Division plaque
+ description: This plaque commemorates the fall of the Atmos LINDA division. For all the charred, dizzy, and brittle men who have died in its hands.
+ categories: [ HideSpawnMenu ]
+
+- type: entity
+ parent: PlaqueAtmosFEA
+ id: PlaqueAtmosZAS
+ name: ZAS Atmospherics Division plaque
+ description: This plaque commemorates the fall of the Atmos ZAS division. For all the charred, dizzy, and brittle men who have died in its hands.
+ categories: [ HideSpawnMenu ]
+
+# If you get the ZUM plaque it means your round will be blessed with good engineering luck.
+- type: entity
+ parent: PlaqueAtmosFEA
+ id: PlaqueAtmosZUM
+ name: ZUM Atmospherics Division plaque
+ description: This plaque commemorates the rise of the Atmos ZUM division. May they carry the torch that the Atmos ZAS, LINDA and FEA divisions left behind.
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: Sprite
+ state: zumosplaque