]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
nar'sie fake (#20299)
authordeltanedas <39013340+deltanedas@users.noreply.github.com>
Thu, 7 Dec 2023 01:24:33 +0000 (01:24 +0000)
committerGitHub <noreply@github.com>
Thu, 7 Dec 2023 01:24:33 +0000 (20:24 -0500)
* import narsie sprite

* narsie_rises audio

* rename SmokeDissipateSpawnComponent to SpawnOnDespawnComponent

* add AnnounceOnSpawn system

* oop

* NAR'SIE HAS RISEN

* suffix

* base prototype, changes

* fix

* mapinit

* downscale

* new toys

* singuloose

* still not fix

* honki sprite

* add honki spawn animation

* revert spawnondespawn change

* really revert

* use LocId for announceonspawn

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
12 files changed:
Content.Server/Chat/AnnounceOnSpawnComponent.cs [new file with mode: 0644]
Content.Server/Chat/Systems/AnnounceOnSpawnSystem.cs [new file with mode: 0644]
Resources/Audio/Misc/attributions.yml
Resources/Audio/Misc/narsie_rises.ogg [new file with mode: 0644]
Resources/Locale/en-US/narsie/narsie.ftl [new file with mode: 0644]
Resources/Prototypes/Entities/Mobs/Player/narsie.yml [new file with mode: 0644]
Resources/Textures/Mobs/Demons/honkmother.rsi/honkmother.png [new file with mode: 0644]
Resources/Textures/Mobs/Demons/honkmother.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Mobs/Demons/honkmother.rsi/spawn.png [new file with mode: 0644]
Resources/Textures/Mobs/Demons/narsie.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Mobs/Demons/narsie.rsi/narsie.png [new file with mode: 0644]
Resources/Textures/Mobs/Demons/narsie.rsi/spawn.png [new file with mode: 0644]

diff --git a/Content.Server/Chat/AnnounceOnSpawnComponent.cs b/Content.Server/Chat/AnnounceOnSpawnComponent.cs
new file mode 100644 (file)
index 0000000..ad7c558
--- /dev/null
@@ -0,0 +1,36 @@
+using Content.Server.Chat.Systems;
+using Robust.Shared.Audio;
+using Robust.Shared.Maths;
+
+namespace Content.Server.Chat;
+
+/// <summary>
+/// Dispatches an announcement to everyone when the entity is mapinit'd.
+/// </summary>
+[RegisterComponent, Access(typeof(AnnounceOnSpawnSystem))]
+public sealed partial class AnnounceOnSpawnComponent : Component
+{
+    /// <summary>
+    /// Locale id of the announcement message.
+    /// </summary>
+    [DataField(required: true)]
+    public LocId Message = string.Empty;
+
+    /// <summary>
+    /// Locale id of the announcement's sender, defaults to Central Command.
+    /// </summary>
+    [DataField]
+    public LocId? Sender;
+
+    /// <summary>
+    /// Sound override for the announcement.
+    /// </summary>
+    [DataField]
+    public SoundSpecifier? Sound;
+
+    /// <summary>
+    /// Color override for the announcement.
+    /// </summary>
+    [DataField]
+    public Color? Color;
+}
diff --git a/Content.Server/Chat/Systems/AnnounceOnSpawnSystem.cs b/Content.Server/Chat/Systems/AnnounceOnSpawnSystem.cs
new file mode 100644 (file)
index 0000000..0f0365e
--- /dev/null
@@ -0,0 +1,22 @@
+using Content.Server.Chat;
+
+namespace Content.Server.Chat.Systems;
+
+public sealed class AnnounceOnSpawnSystem : EntitySystem
+{
+    [Dependency] private readonly ChatSystem _chat = default!;
+
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<AnnounceOnSpawnComponent, MapInitEvent>(OnInit);
+    }
+
+    private void OnInit(EntityUid uid, AnnounceOnSpawnComponent comp, MapInitEvent args)
+    {
+        var message = Loc.GetString(comp.Message);
+        var sender = comp.Sender != null ? Loc.GetString(comp.Sender) : "Central Command";
+        _chat.DispatchGlobalAnnouncement(message, sender, playSound: true, comp.Sound, comp.Color);
+    }
+}
index 591c27553c03783245c18244b7b596c46659c8a2..29cab4382aa6411307ecacbd719b8376db78e1ca 100644 (file)
@@ -8,6 +8,11 @@
   copyright: "Taken from TG station."
   source: "https://github.com/tgstation/tgstation/blob/b02b93ce2ab891164511a973493cdf951b4120f7/sound/effects/ninja_greeting.ogg"
 
+- files: ["narsie_rises.ogg"]
+  license: "CC-BY-SA-3.0"
+  copyright: "Taken from TG station."
+  source: "https://github.com/tgstation/tgstation/blob/b44fcdedfb7c7d8425bd75b9caf71644a86375d1/sound/creatures/narsie_rises.ogg"
+
 - files: ["epsilon.ogg"]
   license: "CC-BY-SA-3.0"
   copyright: "Made by dj-34 (https://github.com/dj-34)"
@@ -26,4 +31,4 @@
 - files: ["bluealert.ogg"]
   license: "CC-BY-SA-3.0"
   copyright: "Taken from Citadel Station 13"
-  source: "https://github.com/Skyrat-SS13/Skyrat13/commit/2d4f2d1b489590b559e4073f41b126cef56f4c50"
\ No newline at end of file
+  source: "https://github.com/Skyrat-SS13/Skyrat13/commit/2d4f2d1b489590b559e4073f41b126cef56f4c50"
diff --git a/Resources/Audio/Misc/narsie_rises.ogg b/Resources/Audio/Misc/narsie_rises.ogg
new file mode 100644 (file)
index 0000000..ccd10cf
Binary files /dev/null and b/Resources/Audio/Misc/narsie_rises.ogg differ
diff --git a/Resources/Locale/en-US/narsie/narsie.ftl b/Resources/Locale/en-US/narsie/narsie.ftl
new file mode 100644 (file)
index 0000000..dc4ed81
--- /dev/null
@@ -0,0 +1,2 @@
+narsie-has-risen = NAR'SIE HAS RISEN
+narsie-has-risen-sender = ???
diff --git a/Resources/Prototypes/Entities/Mobs/Player/narsie.yml b/Resources/Prototypes/Entities/Mobs/Player/narsie.yml
new file mode 100644 (file)
index 0000000..7030572
--- /dev/null
@@ -0,0 +1,99 @@
+- type: entity
+  abstract: true
+  id: MobNarsieBase
+  name: Nar'Sie
+  description: Your mind begins to bubble and ooze as it tries to comprehend what it sees.
+  components:
+  - type: Sprite
+    sprite: Mobs/Demons/narsie.rsi
+    drawdepth: Ghosts
+    scale: 2.0,2.0
+    layers:
+    - state: narsie
+      shader: unshaded
+
+# spawn animation, spawns actual narsie when it ends
+- type: entity
+  parent: MobNarsieBase
+  id: MobNarsieSpawn
+  suffix: Spawn
+  components:
+  - type: Sprite
+    layers:
+    - state: spawn
+      shader: unshaded
+  # spawn animation lasts 3.5 seconds
+  - type: TimedDespawn
+    lifetime: 3.5
+  - type: SpawnOnDespawn
+    prototype: MobNarsie
+
+- type: entity
+  parent: [MobNarsieBase, BaseMob]
+  id: MobNarsie
+  components:
+  - type: AnnounceOnSpawn
+    message: narsie-has-risen
+    sender: narsie-has-risen-sender
+    sound:
+      path: /Audio/Misc/narsie_rises.ogg
+    color: red
+  - type: CargoSellBlacklist
+  # big nar'sie needs to see the universe
+  - type: ContentEye
+    maxZoom: 2.0,2.0
+  - type: Fixtures
+    fixtures:
+      EventHorizonCollider:
+        shape:
+          !type:PhysShapeCircle
+            radius: 5
+        hard: false
+        restitution: 0.8
+        density: 99999
+        mask:
+        - AllMask
+        layer:
+        - AllMask
+      EventHorizonConsumer:
+        shape:
+          !type:PhysShapeCircle
+            radius: 5
+        hard: false
+        mask:
+        - AllMask
+        layer:
+        - AllMask
+  - type: Input
+    context: "ghost"
+  - type: MovementIgnoreGravity
+  # narnar hears all
+  - type: IntrinsicRadioReceiver
+  - type: ActiveRadio
+    channels:
+    - Binary
+    - Common
+    - Command
+    - CentCom
+    - Engineering
+    - Medical
+    - Science
+    - Security
+    - Service
+    - Supply
+    - Syndicate
+    globalReceive: true
+  - type: Physics
+    bodyType: Dynamic
+    bodyStatus: InAir
+  - type: CanMoveInAir
+  # singulose components
+  - type: EventHorizon
+    radius: 5
+    canBreachContainment: true
+  - type: GravityWell
+    baseRadialAcceleration: 6
+    maxRange: 8
+  - type: WarpPoint
+    follow: true
+    location: Nar'Sie
diff --git a/Resources/Textures/Mobs/Demons/honkmother.rsi/honkmother.png b/Resources/Textures/Mobs/Demons/honkmother.rsi/honkmother.png
new file mode 100644 (file)
index 0000000..922f220
Binary files /dev/null and b/Resources/Textures/Mobs/Demons/honkmother.rsi/honkmother.png differ
diff --git a/Resources/Textures/Mobs/Demons/honkmother.rsi/meta.json b/Resources/Textures/Mobs/Demons/honkmother.rsi/meta.json
new file mode 100644 (file)
index 0000000..cdc5186
--- /dev/null
@@ -0,0 +1,40 @@
+{
+  "version": 1,
+  "size": {
+    "x": 201,
+    "y": 192
+  },
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Created by Alekshhh for SS14.",
+  "states": [
+    {
+      "name": "honkmother",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    },
+    {
+      "name": "spawn",
+      "delays": [
+        [
+          0.3,
+          1,
+          0.2,
+          0.2,
+          0.2,
+          0.2,
+          0.2,
+          0.2,
+          0.2,
+          0.3
+        ]
+      ]
+    }
+  ]
+}
diff --git a/Resources/Textures/Mobs/Demons/honkmother.rsi/spawn.png b/Resources/Textures/Mobs/Demons/honkmother.rsi/spawn.png
new file mode 100644 (file)
index 0000000..bbef24f
Binary files /dev/null and b/Resources/Textures/Mobs/Demons/honkmother.rsi/spawn.png differ
diff --git a/Resources/Textures/Mobs/Demons/narsie.rsi/meta.json b/Resources/Textures/Mobs/Demons/narsie.rsi/meta.json
new file mode 100644 (file)
index 0000000..61fcea8
--- /dev/null
@@ -0,0 +1,57 @@
+{
+  "version": 1,
+  "size": {
+    "x": 252,
+    "y": 266
+  },
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/blob/b44fcdedfb7c7d8425bd75b9caf71644a86375d1/icons/obj/antags/cult/narsie.dmi",
+  "states": [
+    {
+      "name": "narsie",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    },
+    {
+      "name": "spawn",
+      "delays": [
+        [
+          0.3,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.2
+        ]
+      ]
+    }
+  ]
+}
diff --git a/Resources/Textures/Mobs/Demons/narsie.rsi/narsie.png b/Resources/Textures/Mobs/Demons/narsie.rsi/narsie.png
new file mode 100644 (file)
index 0000000..ca9e9ec
Binary files /dev/null and b/Resources/Textures/Mobs/Demons/narsie.rsi/narsie.png differ
diff --git a/Resources/Textures/Mobs/Demons/narsie.rsi/spawn.png b/Resources/Textures/Mobs/Demons/narsie.rsi/spawn.png
new file mode 100644 (file)
index 0000000..c3d9cdb
Binary files /dev/null and b/Resources/Textures/Mobs/Demons/narsie.rsi/spawn.png differ