diff --git a/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs b/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs index 17dcde3023..8b95cb6405 100644 --- a/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs +++ b/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs @@ -50,7 +50,7 @@ namespace Content.Client.GameObjects.EntitySystems var lunge = attacker.EnsureComponent(); lunge.SetData(msg.Angle); - var entity = EntityManager.SpawnEntity("WeaponArc", attacker.Transform.GridPosition); + var entity = EntityManager.SpawnEntity(weaponArc.Prototype, attacker.Transform.GridPosition); entity.Transform.LocalRotation = msg.Angle; var weaponArcAnimation = entity.GetComponent(); diff --git a/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs b/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs index 765cb0882b..6150e3c173 100644 --- a/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs +++ b/Content.Shared/GameObjects/Components/Weapons/Melee/MeleeWeaponAnimationPrototype.cs @@ -10,6 +10,7 @@ namespace Content.Shared.GameObjects.Components.Weapons.Melee [Prototype("MeleeWeaponAnimation")] public sealed class MeleeWeaponAnimationPrototype : IPrototype, IIndexedPrototype { + private string _prototype; private string _state; private string _id; private Vector4 _colorDelta; @@ -18,9 +19,10 @@ namespace Content.Shared.GameObjects.Components.Weapons.Melee private float _speed; private float _width; private WeaponArcType _arcType; - + [ViewVariables] public string ID => _id; [ViewVariables] public string State => _state; + [ViewVariables] public string Prototype => _prototype; [ViewVariables] public TimeSpan Length => _length; [ViewVariables] public float Speed => _speed; [ViewVariables] public Vector4 Color => _color; @@ -32,6 +34,7 @@ namespace Content.Shared.GameObjects.Components.Weapons.Melee { var serializer = YamlObjectSerializer.NewReader(mapping); + serializer.DataField(ref _prototype, "prototype", "WeaponArc"); serializer.DataField(ref _state, "state", null); serializer.DataField(ref _id, "id", null); serializer.DataField(ref _colorDelta, "colorDelta", Vector4.Zero); diff --git a/Resources/Prototypes/Entities/Effects/weapon_arc.yml b/Resources/Prototypes/Entities/Effects/weapon_arc.yml index 28ea77f4b0..7f14f19f50 100644 --- a/Resources/Prototypes/Entities/Effects/weapon_arc.yml +++ b/Resources/Prototypes/Entities/Effects/weapon_arc.yml @@ -9,3 +9,15 @@ offset: 0.85, 0 drawdepth: Overlays - type: MeleeWeaponArcAnimation + +- type: entity + id: WeaponTGArc + save: false + abstract: true + components: + - type: Sprite + sprite: Effects/weapons/tg_arcs.rsi + directional: false + offset: 0.85, 0 + drawdepth: Overlays + - type: MeleeWeaponArcAnimation diff --git a/Resources/Prototypes/MeleeWeaponAnimations/animations.yml b/Resources/Prototypes/MeleeWeaponAnimations/animations.yml index ad05697497..168d08c3a2 100644 --- a/Resources/Prototypes/MeleeWeaponAnimations/animations.yml +++ b/Resources/Prototypes/MeleeWeaponAnimations/animations.yml @@ -7,7 +7,8 @@ colorDelta: 0,0,0,-5100 - type: MeleeWeaponAnimation - id: Bite + id: bite + prototype: WeaponTGArc state: bite arcType: Poke length: 0.4 @@ -15,7 +16,8 @@ colorDelta: 0,0,0,-5100 - type: MeleeWeaponAnimation - id: Claw + id: claw + prototype: WeaponTGArc state: claw arcType: Slash length: 0.4 @@ -23,7 +25,8 @@ colorDelta: 0,0,0,-5100 - type: MeleeWeaponAnimation - id: Disarm + id: disarm + prototype: WeaponTGArc state: disarm arcType: Poke length: 0.3 @@ -31,7 +34,15 @@ colorDelta: 0,0,0,-5100 - type: MeleeWeaponAnimation - id: Kick + id: fist + state: fist + arcType: Poke + length: 0.15 + speed: 1 + +- type: MeleeWeaponAnimation + id: kick + prototype: WeaponTGArc state: kick arcType: Poke length: 0.3 @@ -39,7 +50,8 @@ colorDelta: 0,0,0,-5100 - type: MeleeWeaponAnimation - id: Punch + id: punch + prototype: WeaponTGArc state: punch arcType: Poke length: 0.5 @@ -47,7 +59,8 @@ colorDelta: 0,0,0,-5100 - type: MeleeWeaponAnimation - id: Smash + id: smash + prototype: WeaponTGArc state: smash arcType: Poke length: 0.3 diff --git a/Resources/Textures/Effects/weapons/arcs.rsi/meta.json b/Resources/Textures/Effects/weapons/arcs.rsi/meta.json index 2b141cfdee..86a1ea6013 100644 --- a/Resources/Textures/Effects/weapons/arcs.rsi/meta.json +++ b/Resources/Textures/Effects/weapons/arcs.rsi/meta.json @@ -4,8 +4,6 @@ "x": 32, "y": 32 }, - "license": "CC-BY-SA-3.0 for bite->smash", - "copyright": "https://github.com/tgstation/tgstation/raw/c545428822f1ee0d402b812221518632dbe198cb/icons/effects/effects.dmi", "states": [ { "name": "spear", @@ -16,74 +14,8 @@ "directions": 1 }, { - "name": "bite", - "directions": 1, - "delays": [ - [ - 0.1, - 0.1, - 0.1, - 0.1 - ] - ] - }, - { - "name": "claw", - "directions": 1, - "delays": [ - [ - 0.1, - 0.1, - 0.1, - 0.1 - ] - ] - }, - { - "name": "disarm", - "directions": 1, - "delays": [ - [ - 0.1, - 0.1, - 0.1 - ] - ] - }, - { - "name": "kick", - "directions": 1, - "delays": [ - [ - 0.1, - 0.1, - 0.1 - ] - ] - }, - { - "name": "punch", - "directions": 1, - "delays": [ - [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ] - ] - }, - { - "name": "smash", - "directions": 1, - "delays": [ - [ - 0.1, - 0.1, - 0.1 - ] - ] + "name": "fist", + "directions": 1 } ] } diff --git a/Resources/Textures/Effects/weapons/arcs.rsi/bite.png b/Resources/Textures/Effects/weapons/tg_arcs.rsi/bite.png similarity index 100% rename from Resources/Textures/Effects/weapons/arcs.rsi/bite.png rename to Resources/Textures/Effects/weapons/tg_arcs.rsi/bite.png diff --git a/Resources/Textures/Effects/weapons/arcs.rsi/claw.png b/Resources/Textures/Effects/weapons/tg_arcs.rsi/claw.png similarity index 100% rename from Resources/Textures/Effects/weapons/arcs.rsi/claw.png rename to Resources/Textures/Effects/weapons/tg_arcs.rsi/claw.png diff --git a/Resources/Textures/Effects/weapons/arcs.rsi/disarm.png b/Resources/Textures/Effects/weapons/tg_arcs.rsi/disarm.png similarity index 100% rename from Resources/Textures/Effects/weapons/arcs.rsi/disarm.png rename to Resources/Textures/Effects/weapons/tg_arcs.rsi/disarm.png diff --git a/Resources/Textures/Effects/weapons/arcs.rsi/kick.png b/Resources/Textures/Effects/weapons/tg_arcs.rsi/kick.png similarity index 100% rename from Resources/Textures/Effects/weapons/arcs.rsi/kick.png rename to Resources/Textures/Effects/weapons/tg_arcs.rsi/kick.png diff --git a/Resources/Textures/Effects/weapons/tg_arcs.rsi/meta.json b/Resources/Textures/Effects/weapons/tg_arcs.rsi/meta.json new file mode 100644 index 0000000000..116f323760 --- /dev/null +++ b/Resources/Textures/Effects/weapons/tg_arcs.rsi/meta.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/raw/c545428822f1ee0d402b812221518632dbe198cb/icons/effects/effects.dmi", + "states": [ + { + "name": "bite", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "claw", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "disarm", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "kick", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "punch", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "smash", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Effects/weapons/arcs.rsi/punch.png b/Resources/Textures/Effects/weapons/tg_arcs.rsi/punch.png similarity index 100% rename from Resources/Textures/Effects/weapons/arcs.rsi/punch.png rename to Resources/Textures/Effects/weapons/tg_arcs.rsi/punch.png diff --git a/Resources/Textures/Effects/weapons/arcs.rsi/smash.png b/Resources/Textures/Effects/weapons/tg_arcs.rsi/smash.png similarity index 100% rename from Resources/Textures/Effects/weapons/arcs.rsi/smash.png rename to Resources/Textures/Effects/weapons/tg_arcs.rsi/smash.png