From df815324692d0f82ed7de69793e237b757e5f904 Mon Sep 17 00:00:00 2001
From: "I.K" <45953835+notquitehadouken@users.noreply.github.com>
Date: Tue, 17 Oct 2023 20:12:00 -0500
Subject: [PATCH] Change wide swing sprites to be that of the weapon used
(#21050)
Co-authored-by: notquitehadouken <1isthisameme>
---
.../Melee/MeleeWeaponSystem.Effects.cs | 46 +++++++++++++------
.../Weapons/Melee/MeleeWeaponSystem.cs | 7 ++-
.../Fluids/EntitySystems/AbsorbentSystem.cs | 5 +-
.../Weapons/Melee/MeleeWeaponSystem.cs | 4 +-
.../Weapons/Melee/Events/MeleeLungeEvent.cs | 8 +++-
.../Weapons/Melee/MeleeWeaponComponent.cs | 11 +++++
.../Weapons/Melee/SharedMeleeWeaponSystem.cs | 8 ++--
.../Prototypes/Entities/Mobs/NPCs/animals.yml | 23 ++++------
.../Entities/Mobs/NPCs/argocyte.yml | 3 +-
.../Entities/Mobs/NPCs/behonker.yml | 3 +-
.../Prototypes/Entities/Mobs/NPCs/carp.yml | 3 +-
.../Entities/Mobs/NPCs/elemental.yml | 23 ++++------
.../Prototypes/Entities/Mobs/NPCs/flesh.yml | 6 +--
.../Prototypes/Entities/Mobs/NPCs/mimic.yml | 3 +-
.../Prototypes/Entities/Mobs/NPCs/pets.yml | 1 -
.../Entities/Mobs/NPCs/regalrat.yml | 7 +--
.../Prototypes/Entities/Mobs/NPCs/slimes.yml | 4 +-
.../Prototypes/Entities/Mobs/NPCs/space.yml | 3 --
.../Entities/Mobs/NPCs/spacetick.yml | 1 -
.../Prototypes/Entities/Mobs/NPCs/xeno.yml | 5 --
.../Entities/Mobs/Player/dragon.yml | 1 -
.../Entities/Mobs/Player/familiars.yml | 1 -
.../Entities/Mobs/Player/guardian.yml | 5 +-
.../Prototypes/Entities/Mobs/Species/base.yml | 1 -
.../Entities/Mobs/Species/reptilian.yml | 1 -
.../Fun/Instruments/instruments_string.yml | 4 +-
.../Entities/Objects/Fun/bike_horn.yml | 2 +
.../Entities/Objects/Fun/puppet.yml | 3 +-
.../Prototypes/Entities/Objects/Fun/toys.yml | 9 ++++
.../Entities/Objects/Misc/books.yml | 5 +-
.../Entities/Objects/Misc/desk_bell.yml | 1 +
.../Objects/Misc/fire_extinguisher.yml | 1 +
.../Entities/Objects/Misc/paper.yml | 4 +-
.../Entities/Objects/Misc/utensils.yml | 4 +-
.../Entities/Objects/Tools/tools.yml | 7 +++
.../Entities/Objects/Tools/welders.yml | 1 +
.../Objects/Weapons/Melee/armblade.yml | 1 +
.../Objects/Weapons/Melee/baseball_bat.yml | 1 +
.../Objects/Weapons/Melee/chainsaw.yml | 1 +
.../Entities/Objects/Weapons/Melee/cult.yml | 3 ++
.../Objects/Weapons/Melee/e_sword.yml | 3 ++
.../Objects/Weapons/Melee/fireaxe.yml | 2 +
.../Entities/Objects/Weapons/Melee/gohei.yml | 1 +
.../Entities/Objects/Weapons/Melee/knife.yml | 3 ++
.../Entities/Objects/Weapons/Melee/mining.yml | 3 ++
.../Entities/Objects/Weapons/Melee/needle.yml | 1 +
.../Objects/Weapons/Melee/pickaxe.yml | 1 +
.../Entities/Objects/Weapons/Melee/spear.yml | 4 ++
.../Objects/Weapons/Melee/stunprod.yml | 3 +-
.../Entities/Objects/Weapons/Melee/sword.yml | 6 +++
.../Objects/Weapons/Melee/weapon_toolbox.yml | 1 +
.../Objects/Weapons/Melee/white_cane.yml | 2 +-
.../Entities/Objects/Weapons/security.yml | 3 ++
53 files changed, 160 insertions(+), 103 deletions(-)
diff --git a/Content.Client/Weapons/Melee/MeleeWeaponSystem.Effects.cs b/Content.Client/Weapons/Melee/MeleeWeaponSystem.Effects.cs
index 79a6529a4d..0dd207fbb1 100644
--- a/Content.Client/Weapons/Melee/MeleeWeaponSystem.Effects.cs
+++ b/Content.Client/Weapons/Melee/MeleeWeaponSystem.Effects.cs
@@ -1,5 +1,6 @@
using System.Numerics;
using Content.Client.Weapons.Melee.Components;
+using Content.Shared.Weapons.Melee;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
using Robust.Shared.Animations;
@@ -16,7 +17,7 @@ public sealed partial class MeleeWeaponSystem
///
/// Does all of the melee effects for a player that are predicted, i.e. character lunge and weapon animation.
///
- public override void DoLunge(EntityUid user, Angle angle, Vector2 localPos, string? animation, bool predicted = true)
+ public override void DoLunge(EntityUid user, EntityUid weapon, Angle angle, Vector2 localPos, string? animation, bool predicted = true)
{
if (!Timing.IsFirstTimePredicted)
return;
@@ -41,6 +42,19 @@ public sealed partial class MeleeWeaponSystem
return;
}
+ var spriteRotation = Angle.Zero;
+ if (arcComponent.Animation != WeaponArcAnimation.None
+ && TryComp(weapon, out MeleeWeaponComponent? meleeWeaponComponent))
+ {
+ if (user == weapon
+ && TryComp(weapon, out SpriteComponent? weaponSpriteComponent))
+ sprite.CopyFrom(weaponSpriteComponent);
+
+ spriteRotation = meleeWeaponComponent.WideAnimationRotation;
+
+ if (meleeWeaponComponent.SwingLeft)
+ angle *= -1;
+ }
sprite.NoRotation = true;
sprite.Rotation = localPos.ToWorldAngle();
var distance = Math.Clamp(localPos.Length() / 2f, 0.2f, 1f);
@@ -50,13 +64,13 @@ public sealed partial class MeleeWeaponSystem
switch (arcComponent.Animation)
{
case WeaponArcAnimation.Slash:
- _animation.Play(animationUid, GetSlashAnimation(sprite, angle), SlashAnimationKey);
+ _animation.Play(animationUid, GetSlashAnimation(sprite, angle, spriteRotation), SlashAnimationKey);
TransformSystem.SetParent(animationUid, xform, user, userXform);
if (arcComponent.Fadeout)
_animation.Play(animationUid, GetFadeAnimation(sprite, 0.065f, 0.065f + 0.05f), FadeAnimationKey);
break;
case WeaponArcAnimation.Thrust:
- _animation.Play(animationUid, GetThrustAnimation(sprite, distance), ThrustAnimationKey);
+ _animation.Play(animationUid, GetThrustAnimation(sprite, distance, spriteRotation), ThrustAnimationKey);
TransformSystem.SetParent(animationUid, xform, user, userXform);
if (arcComponent.Fadeout)
_animation.Play(animationUid, GetFadeAnimation(sprite, 0.05f, 0.15f), FadeAnimationKey);
@@ -73,13 +87,17 @@ public sealed partial class MeleeWeaponSystem
}
}
- private Animation GetSlashAnimation(SpriteComponent sprite, Angle arc)
+ private Animation GetSlashAnimation(SpriteComponent sprite, Angle arc, Angle spriteRotation)
{
const float slashStart = 0.03f;
const float slashEnd = 0.065f;
const float length = slashEnd + 0.05f;
- var startRotation = sprite.Rotation - arc / 2;
- var endRotation = sprite.Rotation + arc / 2;
+ var startRotation = sprite.Rotation + arc / 2;
+ var endRotation = sprite.Rotation - arc / 2;
+ var startRotationOffset = startRotation.RotateVec(new Vector2(0f, -1f));
+ var endRotationOffset = endRotation.RotateVec(new Vector2(0f, -1f));
+ startRotation += spriteRotation;
+ endRotation += spriteRotation;
sprite.NoRotation = true;
return new Animation()
@@ -104,19 +122,21 @@ public sealed partial class MeleeWeaponSystem
Property = nameof(SpriteComponent.Offset),
KeyFrames =
{
- new AnimationTrackProperty.KeyFrame(startRotation.RotateVec(new Vector2(0f, -1f)), 0f),
- new AnimationTrackProperty.KeyFrame(startRotation.RotateVec(new Vector2(0f, -1f)), slashStart),
- new AnimationTrackProperty.KeyFrame(endRotation.RotateVec(new Vector2(0f, -1f)), slashEnd)
+ new AnimationTrackProperty.KeyFrame(startRotationOffset, 0f),
+ new AnimationTrackProperty.KeyFrame(startRotationOffset, slashStart),
+ new AnimationTrackProperty.KeyFrame(endRotationOffset, slashEnd)
}
},
}
};
}
- private Animation GetThrustAnimation(SpriteComponent sprite, float distance)
+ private Animation GetThrustAnimation(SpriteComponent sprite, float distance, Angle spriteRotation)
{
const float thrustEnd = 0.05f;
const float length = 0.15f;
+ var startOffset = sprite.Rotation.RotateVec(new Vector2(0f, -distance / 5f));
+ var endOffset = sprite.Rotation.RotateVec(new Vector2(0f, -distance));
return new Animation()
{
@@ -129,9 +149,9 @@ public sealed partial class MeleeWeaponSystem
Property = nameof(SpriteComponent.Offset),
KeyFrames =
{
- new AnimationTrackProperty.KeyFrame(sprite.Rotation.RotateVec(new Vector2(0f, -distance / 5f)), 0f),
- new AnimationTrackProperty.KeyFrame(sprite.Rotation.RotateVec(new Vector2(0f, -distance)), thrustEnd),
- new AnimationTrackProperty.KeyFrame(sprite.Rotation.RotateVec(new Vector2(0f, -distance)), length),
+ new AnimationTrackProperty.KeyFrame(startOffset, 0f),
+ new AnimationTrackProperty.KeyFrame(endOffset, thrustEnd),
+ new AnimationTrackProperty.KeyFrame(endOffset, length),
}
},
}
diff --git a/Content.Client/Weapons/Melee/MeleeWeaponSystem.cs b/Content.Client/Weapons/Melee/MeleeWeaponSystem.cs
index 36fe75fad7..397032cd15 100644
--- a/Content.Client/Weapons/Melee/MeleeWeaponSystem.cs
+++ b/Content.Client/Weapons/Melee/MeleeWeaponSystem.cs
@@ -17,8 +17,6 @@ using Robust.Shared.Input;
using Robust.Shared.Map;
using Robust.Shared.Player;
using Robust.Shared.Players;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Timing;
namespace Content.Client.Weapons.Melee;
@@ -235,9 +233,10 @@ public sealed partial class MeleeWeaponSystem : SharedMeleeWeaponSystem
private void OnMeleeLunge(MeleeLungeEvent ev)
{
var ent = GetEntity(ev.Entity);
+ var entWeapon = GetEntity(ev.Weapon);
// Entity might not have been sent by PVS.
- if (Exists(ent))
- DoLunge(ent, ev.Angle, ev.LocalPos, ev.Animation);
+ if (Exists(ent) && Exists(entWeapon))
+ DoLunge(ent, entWeapon, ev.Angle, ev.LocalPos, ev.Animation);
}
}
diff --git a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs
index bf54a18f1a..facc39f146 100644
--- a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs
+++ b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs
@@ -207,9 +207,6 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem
_audio.PlayPvs(component.TransferSound, target);
_useDelay.BeginDelay(used);
return true;
- _audio.PlayPvs(component.TransferSound, target);
- _useDelay.BeginDelay(used);
- return true;
}
///
@@ -259,7 +256,7 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem
var localPos = _transform.GetInvWorldMatrix(userXform).Transform(targetPos);
localPos = userXform.LocalRotation.RotateVec(localPos);
- _melee.DoLunge(user, Angle.Zero, localPos, null, false);
+ _melee.DoLunge(user, used, Angle.Zero, localPos, null, false);
return true;
}
diff --git a/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs b/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
index ab7831b2a4..1b6b2ebef1 100644
--- a/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
+++ b/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
@@ -214,7 +214,7 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
return Math.Clamp(chance, 0f, 1f);
}
- public override void DoLunge(EntityUid user, Angle angle, Vector2 localPos, string? animation, bool predicted = true)
+ public override void DoLunge(EntityUid user, EntityUid weapon, Angle angle, Vector2 localPos, string? animation, bool predicted = true)
{
Filter filter;
@@ -227,7 +227,7 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
filter = Filter.Pvs(user, entityManager: EntityManager);
}
- RaiseNetworkEvent(new MeleeLungeEvent(GetNetEntity(user), angle, localPos, animation), filter);
+ RaiseNetworkEvent(new MeleeLungeEvent(GetNetEntity(user), GetNetEntity(weapon), angle, localPos, animation), filter);
}
private void OnSpeechHit(EntityUid owner, MeleeSpeechComponent comp, MeleeHitEvent args)
diff --git a/Content.Shared/Weapons/Melee/Events/MeleeLungeEvent.cs b/Content.Shared/Weapons/Melee/Events/MeleeLungeEvent.cs
index 66acc213c1..72851dc80c 100644
--- a/Content.Shared/Weapons/Melee/Events/MeleeLungeEvent.cs
+++ b/Content.Shared/Weapons/Melee/Events/MeleeLungeEvent.cs
@@ -11,6 +11,11 @@ public sealed class MeleeLungeEvent : EntityEventArgs
{
public NetEntity Entity;
+ ///
+ /// The weapon used.
+ ///
+ public NetEntity Weapon;
+
///
/// Width of the attack angle.
///
@@ -26,9 +31,10 @@ public sealed class MeleeLungeEvent : EntityEventArgs
///
public string? Animation;
- public MeleeLungeEvent(NetEntity entity, Angle angle, Vector2 localPos, string? animation)
+ public MeleeLungeEvent(NetEntity entity, NetEntity weapon, Angle angle, Vector2 localPos, string? animation)
{
Entity = entity;
+ Weapon = weapon;
Angle = angle;
LocalPos = localPos;
Animation = animation;
diff --git a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
index ddc060e558..54db0b8c67 100644
--- a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
+++ b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
@@ -96,6 +96,17 @@ public sealed partial class MeleeWeaponComponent : Component
[ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField]
public EntProtoId WideAnimation = "WeaponArcSlash";
+ ///
+ /// Rotation of the animation.
+ /// 0 degrees means the top faces the attacker.
+ ///
+ [ViewVariables(VVAccess.ReadWrite), DataField]
+ public Angle WideAnimationRotation = Angle.Zero;
+
+ [ViewVariables(VVAccess.ReadWrite), DataField]
+ public bool SwingLeft;
+
+
// Sounds
///
diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
index 4259706ba8..4b740b8d3c 100644
--- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
+++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
@@ -423,7 +423,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
throw new NotImplementedException();
}
- DoLungeAnimation(user, weapon.Angle, GetCoordinates(attack.Coordinates).ToMap(EntityManager, TransformSystem), weapon.Range, animation);
+ DoLungeAnimation(user, weaponUid, weapon.Angle, GetCoordinates(attack.Coordinates).ToMap(EntityManager, TransformSystem), weapon.Range, animation);
}
var attackEv = new MeleeAttackEvent(weaponUid);
@@ -823,7 +823,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
return true;
}
- private void DoLungeAnimation(EntityUid user, Angle angle, MapCoordinates coordinates, float length, string? animation)
+ private void DoLungeAnimation(EntityUid user, EntityUid weapon, Angle angle, MapCoordinates coordinates, float length, string? animation)
{
// TODO: Assert that offset eyes are still okay.
if (!TryComp(user, out var userXform))
@@ -844,8 +844,8 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
if (localPos.Length() > visualLength)
localPos = localPos.Normalized() * visualLength;
- DoLunge(user, angle, localPos, animation);
+ DoLunge(user, weapon, angle, localPos, animation);
}
- public abstract void DoLunge(EntityUid user, Angle angle, Vector2 localPos, string? animation, bool predicted = true);
+ public abstract void DoLunge(EntityUid user, EntityUid weapon, Angle angle, Vector2 localPos, string? animation, bool predicted = true);
}
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
index 0077fddcfc..adba78141c 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
@@ -1,6 +1,6 @@
- type: entity
name: bat
- parent: [ SimpleMobBase, FlyingMobBase ]
+ parent: [ SimpleMobBase, FlyingMobBase, MobCombat ]
id: MobBat
description: Some cultures find them terrifying, others crunchy on the teeth.
components:
@@ -51,7 +51,6 @@
- type: ReplacementAccent
accent: mouse
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Effects/bite.ogg
angle: 0
@@ -126,13 +125,12 @@
- type: entity
name: bee
suffix: Angry
- parent: MobBee
+ parent: [ MobBee, MobCombat ]
id: MobAngryBee
description: How nice a bee. Oh no, it looks angry and wants my pizza.
components:
- type: CombatMode
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
damage:
@@ -668,7 +666,7 @@
- type: entity
name: gorilla
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
id: MobGorilla
description: Smashes, roars, looks cool. Don't stand near one.
components:
@@ -722,7 +720,7 @@
- type: entity
name: kangaroo
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
id: MobKangaroo
description: A large marsupial herbivore. It has powerful hind legs, with nails that resemble long claws.
components:
@@ -1376,7 +1374,7 @@
- type: entity
name: grenade penguin
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
id: MobGrenadePenguin
description: A small penguin with a grenade strapped around its neck. Harvested by the Syndicate from icy shit-hole planets.
components:
@@ -1420,7 +1418,6 @@
- id: FoodMeatPenguin
amount: 3
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
damage:
@@ -1603,7 +1600,7 @@
# random sprite state when you spawn it.
- type: entity
name: tarantula
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
id: MobGiantSpider
description: Widely recognized to be the literal worst thing in existence.
components:
@@ -1641,7 +1638,6 @@
0: Alive
90: Dead
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
soundHit:
@@ -1731,7 +1727,6 @@
- DoorBumpOpener
- FootstepSound
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
soundHit:
@@ -1984,7 +1979,7 @@
- type: entity
name: corrupted corgi
- parent: MobCorgi
+ parent: [ MobCorgi, MobCombat ]
id: MobCorgiNarsi
description: Ian! No!
components:
@@ -2001,7 +1996,6 @@
Dead:
Base: narsian_dead
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Effects/bite.ogg
angle: 0
@@ -2314,7 +2308,7 @@
- type: entity
name: hamster
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
id: MobHamster
description: A cute, fluffy, robust hamster.
components:
@@ -2421,7 +2415,6 @@
Blunt: 0.1
- type: CombatMode
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Effects/bite.ogg
angle: 0
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml
index cde11bf222..4c36efa177 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml
@@ -1,6 +1,6 @@
- type: entity
save: false
- parent: BaseSimpleMob
+ parent: [ BaseSimpleMob, MobCombat ]
id: BaseMobArgocyte
suffix: AI
description: A dangerous alien found on the wrong side of planets, known for their propensity for munching on ruins.
@@ -31,7 +31,6 @@
- type: Insulated
- type: CombatMode
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
damage:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml
index f833c2e8ed..3b3b9b4412 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml
@@ -1,6 +1,6 @@
- type: entity
name: behonker
- parent: [ SimpleSpaceMobBase, FlyingMobBase ]
+ parent: [ SimpleSpaceMobBase, FlyingMobBase, MobCombat ]
id: BaseMobBehonker
abstract: true
description: A floating demon aspect of the honkmother.
@@ -96,7 +96,6 @@
- id: WeaponBehonkerLaser
amount: 1
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
index d2f597fe41..1f598dc10b 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
@@ -1,7 +1,7 @@
- type: entity
name: space carp
id: BaseMobCarp
- parent: [ SimpleSpaceMobBase, FlyingMobBase ]
+ parent: [ SimpleSpaceMobBase, FlyingMobBase, MobCombat ]
description: It's a space carp.
abstract: true
components:
@@ -56,7 +56,6 @@
amount: 2
- type: MeleeWeapon
altDisarm: false
- hidden: true
angle: 0
animation: WeaponArcBite
soundHit:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml
index 666ded8ff3..8ab65c340e 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml
@@ -76,7 +76,7 @@
- type: ZombieImmune
- type: entity
- parent: MobElementalBase
+ parent: [ MobElementalBase, MobCombat ]
id: MobQuartzCrab
name: quartz crab
description: An ore crab made from quartz.
@@ -88,7 +88,6 @@
rootTask:
task: SimpleHostileCompound
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
@@ -116,7 +115,7 @@
acts: [ "Destruction" ]
- type: entity
- parent: MobElementalBase
+ parent: [ MobElementalBase, MobCombat ]
id: MobIronCrab
name: ore crab
description: An ore crab made from iron.
@@ -128,7 +127,6 @@
rootTask:
task: SimpleHostileCompound
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
@@ -159,7 +157,7 @@
acts: [ "Destruction" ]
- type: entity
- parent: MobElementalBase
+ parent: [ MobElementalBase, MobCombat ]
id: MobUraniumCrab
name: ore crab
description: An ore crab made from uranium.
@@ -171,7 +169,6 @@
rootTask:
task: IdleCompound
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
@@ -212,12 +209,12 @@
name: Reagent slime
id: ReagentSlime
suffix: Water
- parent: MobAdultSlimes
+ parent: [ MobAdultSlimes, MobCombat ]
description: It consists of a liquid, and it wants to dissolve you in itself.
components:
- type: NpcFactionMember
factions:
- - SimpleHostile
+ - SimpleHostile
- type: Sprite
drawdepth: Mobs
sprite: Mobs/Aliens/elemental.rsi
@@ -241,7 +238,7 @@
speedModifierThresholds:
50: 0.4
- type: Bloodstream
- bloodReagent: Water
+ bloodReagent: Water
chemicalMaxVolume: 100
- type: StatusEffects
allowed:
@@ -351,7 +348,7 @@
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: alive
color: "#128e80"
-
+
- type: entity
id: ReagentSlimeTHC
parent: ReagentSlime
@@ -368,7 +365,7 @@
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: alive
color: "#808080"
-
+
- type: entity
id: ReagentSlimeBicaridine
parent: ReagentSlime
@@ -419,7 +416,7 @@
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: alive
color: "#FA00AF"
-
+
- type: entity
id: ReagentSlimeOmnizine
parent: ReagentSlime
@@ -435,4 +432,4 @@
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: alive
- color: "#fcf7f9"
\ No newline at end of file
+ color: "#fcf7f9"
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml
index 43c78c639e..a09927619c 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml
@@ -1,5 +1,5 @@
- type: entity
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
id: BaseMobFlesh
name: aberrant flesh
description: A shambling mass of flesh, animated through anomalous energy.
@@ -45,7 +45,6 @@
bloodMaxVolume: 100
- type: CombatMode
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
angle: 0
@@ -73,7 +72,6 @@
Dead:
Base: dead
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
angle: 0
@@ -103,7 +101,6 @@
0: Alive
50: Dead
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
angle: 0
@@ -190,7 +187,6 @@
baseWalkSpeed: 1.5
baseSprintSpeed: 2.5
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
angle: 0
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
index 9675321da0..657ac466f8 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
@@ -1,7 +1,7 @@
- type: entity
name: Mimic
id: MobMimic
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
description: Surprise. # When this gets a proper write this should use the object's actual description >:)
components:
- type: Tag
@@ -33,7 +33,6 @@
- MachineLayer
- type: AnimationPlayer
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcFist
damage:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
index 21cc305acd..88d7cbaae2 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
@@ -570,7 +570,6 @@
0: Alive
150: Dead
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
soundHit:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
index 557d602bff..b3f09b999d 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
@@ -1,7 +1,7 @@
- type: entity
name: Rat King
id: MobRatKing
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
description: He's da rat. He make da roolz.
components:
- type: CombatMode
@@ -45,7 +45,6 @@
0: Alive
200: Dead
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh1.ogg
angle: 0
@@ -133,7 +132,6 @@
0: Alive
350: Dead
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh2.ogg
angle: 0
@@ -153,7 +151,7 @@
- type: entity
name: Rat Servant
id: MobRatServant
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
description: He's da mini rat. He don't make da roolz.
noSpawn: true #Must be configured to a King or the AI breaks.
components:
@@ -208,7 +206,6 @@
- type: Stamina
critThreshold: 60
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/bladeslice.ogg
angle: 0
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
index 4d56face9d..ad4626d989 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
@@ -1,7 +1,7 @@
- type: entity
name: basic slime
id: MobAdultSlimes
- parent: SimpleMobBase
+ parent: [ SimpleMobBase, MobCombat ]
abstract: true
description: It looks so much like jelly. I wonder what it tastes like?
components:
@@ -97,9 +97,7 @@
- type: Body
prototype: Slimes
requiredLegs: 1
- - type: CombatMode
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/punch3.ogg
angle: 0
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml
index 62366e0b14..d784f5c162 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml
@@ -46,7 +46,6 @@
heatDamageThreshold: 500
coldDamageThreshold: 0
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
angle: 0
@@ -143,7 +142,6 @@
state: glow
shader: unshaded
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
angle: 0
@@ -249,7 +247,6 @@
layer:
- MobLayer
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Effects/bite.ogg
angle: 0
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml
index 08db585744..c1ac66705a 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml
@@ -59,7 +59,6 @@
bloodMaxVolume: 50
- type: CombatMode
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Effects/bite.ogg
angle: 0
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
index 9831d20e27..1626a1bc81 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
@@ -74,7 +74,6 @@
bloodReagent: FluorosulfuricAcid
- type: MeleeWeapon
altDisarm: false
- hidden: true
angle: 0
soundHit:
collection: AlienClaw
@@ -213,7 +212,6 @@
150: 0.7
- type: MovementSpeedModifier
- type: MeleeWeapon
- hidden: true
damage:
groups:
Brute: 12
@@ -251,7 +249,6 @@
- type: MovementSpeedModifier
baseSprintSpeed: 4
- type: MeleeWeapon
- hidden: true
damage:
groups:
Brute: 10
@@ -285,7 +282,6 @@
- type: MovementSpeedModifier
baseSprintSpeed: 6.0
- type: MeleeWeapon
- hidden: true
damage:
groups:
Brute: 5
@@ -396,7 +392,6 @@
factions:
- Xeno
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
damage:
diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml
index 368d184692..d188070b26 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml
@@ -103,7 +103,6 @@
soundPerceivedByOthers: false # A 75% chance for a loud roar would get old fast.
- type: MeleeWeapon
altDisarm: false
- hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
diff --git a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml
index 65a47987e9..8a5c319d77 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml
@@ -46,7 +46,6 @@
rules: ghost-role-information-cerberus-rules
- type: GhostTakeoverAvailable
- type: MeleeWeapon
- hidden: true
angle: 0
animation: WeaponArcBite
damage:
diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml
index 49c3175fc6..1e863aa80f 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml
@@ -130,7 +130,7 @@
color: "#40a7d7"
shader: unshaded
- type: NpcFactionMember
- factions:
+ factions:
- Syndicate
- type: HTN
rootTask:
@@ -225,7 +225,6 @@
Burn: 3
- type: InventorySlots
- type: MeleeWeapon
- hidden: true
angle: 30
animation: WeaponArcFist
attackRate: 1.8
@@ -238,7 +237,7 @@
nameSegments:
- names_clown
- type: NpcFactionMember
- factions:
+ factions:
- Syndicate
- type: HTN
rootTask:
diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml
index 74c676eb68..55473daf15 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/base.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml
@@ -161,7 +161,6 @@
- type: CombatMode
canDisarm: true
- type: MeleeWeapon
- hidden: true
soundHit:
collection: Punch
angle: 30
diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
index 5a4518c7b5..7d5f3cdddc 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
@@ -40,7 +40,6 @@
damageContainer: Biological
damageModifierSet: Scale
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/pierce.ogg
angle: 30
diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml
index c29c482dfd..c71fecd91b 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml
@@ -83,6 +83,7 @@
tags:
- StringInstrument
- type: MeleeWeapon
+ wideAnimationRotation: 45
damage:
types:
Blunt: 6
@@ -121,7 +122,7 @@
- back
sprite: Objects/Fun/Instruments/guitar.rsi
- type: Wieldable
- - type: Damageable # Smash it! Does 20 damage a hit, but breaks after 1 hit.
+ - type: Damageable # Smash it! Does 20 damage a hit, but breaks after 1 hit.
damageContainer: Inorganic
- type: Destructible
thresholds:
@@ -144,6 +145,7 @@
types:
Blunt: 20
- type: MeleeWeapon
+ wideAnimationRotation: 45
damage:
types:
Blunt: 5
diff --git a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml
index 1a95cdd996..fc20f1a58d 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml
@@ -32,6 +32,7 @@
- Payload # yes, you can make re-usable prank grenades
- BikeHorn
- type: MeleeWeapon
+ wideAnimationRotation: 135
soundHit:
collection: BikeHorn
params:
@@ -77,6 +78,7 @@
params:
variation: 0.246
- type: MeleeWeapon
+ wideAnimationRotation: 135
soundHit:
collection: CluwneHorn
params:
diff --git a/Resources/Prototypes/Entities/Objects/Fun/puppet.yml b/Resources/Prototypes/Entities/Objects/Fun/puppet.yml
index 2757689a30..c0649d0acf 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/puppet.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/puppet.yml
@@ -1,5 +1,5 @@
- type: entity
- parent: BaseItem
+ parent: [ BaseItem, MobCombat ]
id: MrChips
name: mr chips
suffix: Dummy
@@ -23,7 +23,6 @@
allowedStates:
- Alive
- type: MeleeWeapon
- hidden: true
soundHit:
path: /Audio/Weapons/boxingpunch1.ogg
angle: 30
diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml
index dfa4dbcc7b..491ae0037a 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml
@@ -122,6 +122,7 @@
sound:
path: /Audio/Items/Toys/mousesqueek.ogg
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
path: /Audio/Items/Toys/mousesqueek.ogg
@@ -185,6 +186,7 @@
sound:
path: /Audio/Items/Toys/weh.ogg
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
path: /Audio/Items/Toys/weh.ogg
@@ -206,6 +208,7 @@
sound:
path: /Audio/Items/Toys/muffled_weh.ogg
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
path: /Audio/Items/Toys/muffled_weh.ogg
@@ -231,6 +234,7 @@
sound:
path: /Audio/Items/Toys/toy_rustle.ogg
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
path: /Audio/Items/Toys/toy_rustle.ogg
- type: SolutionContainerManager
@@ -353,6 +357,7 @@
sound:
path: /Audio/Effects/bite.ogg
- type: MeleeWeapon
+ wideAnimationRotation: -90
soundHit:
path: /Audio/Effects/bite.ogg
angle: 0
@@ -379,6 +384,7 @@
sound:
path: /Audio/Items/Toys/rattle.ogg
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
path: /Audio/Items/Toys/rattle.ogg
@@ -394,6 +400,7 @@
sound:
path: /Audio/Items/Toys/mousesqueek.ogg
- type: MeleeWeapon
+ wideAnimationRotation: -90
soundHit:
path: /Audio/Items/Toys/mousesqueek.ogg
- type: Clothing
@@ -436,6 +443,7 @@
sound:
path: /Audio/Voice/Vox/shriek1.ogg
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
path: /Audio/Voice/Vox/shriek1.ogg
@@ -466,6 +474,7 @@
sound:
path: /Audio/Weapons/Xeno/alien_spitacid.ogg
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
path: /Audio/Weapons/Xeno/alien_spitacid.ogg
diff --git a/Resources/Prototypes/Entities/Objects/Misc/books.yml b/Resources/Prototypes/Entities/Objects/Misc/books.yml
index 5bfcaef42d..8bf992cb2f 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/books.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/books.yml
@@ -84,7 +84,7 @@
id: BookChefGaming
parent: BaseItem
name: chef gaming
- description: A book about cooking written by a gamer chef.
+ description: A book about cooking written by a gamer chef.
components:
- type: Sprite
sprite: Objects/Misc/books.rsi
@@ -156,7 +156,7 @@
id: BookSecurity
parent: BaseItem
name: security 101
- description: A book about security written by Nanotrasen. The book is stained with blood. It seems to have been used more as a weapon than reading material.
+ description: A book about security written by Nanotrasen. The book is stained with blood. It seems to have been used more as a weapon than reading material.
components:
- type: Sprite
sprite: Objects/Misc/books.rsi
@@ -166,6 +166,7 @@
tags:
- Book
- type: MeleeWeapon
+ wideAnimationRotation: 180
damage:
types:
Blunt: 6
diff --git a/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml b/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml
index 2c57cc105a..12406f2890 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/desk_bell.yml
@@ -36,6 +36,7 @@
- type: UseDelay
delay: 0.5
- type: MeleeWeapon
+ wideAnimationRotation: 180
soundHit:
collection: DeskBell
params:
diff --git a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
index 66ab0ab7fb..a90f598a5d 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
@@ -37,6 +37,7 @@
- type: FireExtinguisher
hasSafety: true
- type: MeleeWeapon
+ wideAnimationRotation: 180
damage:
types:
Blunt: 10
diff --git a/Resources/Prototypes/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/Entities/Objects/Misc/paper.yml
index 4493ec6190..5b4e5e24ba 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/paper.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/paper.yml
@@ -265,6 +265,7 @@
state: overpriced_pen
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -45
damage:
types:
Piercing: 15
@@ -464,7 +465,7 @@
whitelist:
tags:
- Write
- insertOnInteract: false
+ insertOnInteract: false
- type: Item
sprite: Objects/Misc/clipboard.rsi
size: 10
@@ -488,6 +489,7 @@
tags:
- Write
- type: MeleeWeapon
+ wideAnimationRotation: 180
damage:
types:
Blunt: 6
diff --git a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml
index b180e7d631..5f2ce47ba1 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml
@@ -11,7 +11,7 @@
tags:
- Metal
- type: SpaceGarbage
-
+
- type: entity
parent: UtensilBase
id: UtensilBasePlastic
@@ -42,6 +42,7 @@
types:
- Fork
- type: MeleeWeapon
+ wideAnimationRotation: 180
attackRate: 1.5
damage:
types:
@@ -73,6 +74,7 @@
types:
- Spoon
- type: MeleeWeapon
+ wideAnimationRotation: 180
attackRate: 1.5
damage:
types:
diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
index 9b13373535..12a6ede231 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
@@ -19,6 +19,7 @@
- state: cutters-cutty-thingy
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -90
damage:
types:
Piercing: 2
@@ -65,6 +66,7 @@
sprite: Objects/Tools/screwdriver.rsi
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -90
attackRate: 1
damage:
types:
@@ -105,6 +107,7 @@
sprite: Objects/Tools/wrench.rsi
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: 135
attackRate: 1.5
damage:
types:
@@ -140,6 +143,7 @@
size: 10
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 8
@@ -318,6 +322,7 @@
- type: StaticPrice
price: 100
- type: MeleeWeapon
+ wideAnimationRotation: -90
attackRate: 1.5
damage:
types:
@@ -487,6 +492,7 @@
state: icon
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 14
@@ -519,6 +525,7 @@
- Belt
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 7
diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml
index 3a105a2994..7c3de82d0a 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml
@@ -30,6 +30,7 @@
shader: unshaded
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -90
damage:
types:
Blunt: 5 #i mean... i GUESS you could use it like that
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml
index 764683183d..9e9288c8d4 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml
@@ -9,6 +9,7 @@
sprite: Objects/Weapons/Melee/armblade.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: 90
attackRate: 0.75
damage:
types:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml
index 4cd71e7239..e244647a13 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml
@@ -8,6 +8,7 @@
sprite: Objects/Weapons/Melee/baseball_bat.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 10
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml
index 387913715c..b0874bfaef 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml
@@ -15,6 +15,7 @@
sprite: Objects/Weapons/Melee/chainsaw.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Slash: 5
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml
index 3061e29e11..833614105d 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml
@@ -9,6 +9,7 @@
sprite: Objects/Weapons/Melee/cult_dagger.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.5
damage:
types:
@@ -32,6 +33,7 @@
sprite: Objects/Weapons/Melee/cult_blade.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 0.75
damage:
types:
@@ -58,6 +60,7 @@
sprite: Objects/Weapons/Melee/cult_halberd.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 0.75
damage:
types:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
index 5c5972d839..7cf02ad05c 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
@@ -22,6 +22,7 @@
shader: unshaded
map: [ "blade" ]
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1
soundHit:
path: /Audio/Weapons/eblade1.ogg
@@ -87,6 +88,7 @@
shader: unshaded
map: [ "blade" ]
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1
hidden: true
damage:
@@ -179,6 +181,7 @@
Blunt: -4.5
litDisarmMalus: 0.7
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.5
angle: 100
soundHit:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml
index fcc2129a51..62a983cd4d 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml
@@ -12,6 +12,8 @@
sprite: Objects/Weapons/Melee/fireaxe.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -90
+ swingLeft: true
attackRate: 0.75
damage:
types:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/gohei.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/gohei.yml
index 1fdb237f4a..9e673da49d 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/gohei.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/gohei.yml
@@ -8,6 +8,7 @@
sprite: Objects/Weapons/Melee/gohei.rsi
state: gohei
- type: MeleeWeapon
+ wideAnimationRotation: -150
damage:
types:
Blunt: 3 #You'd be better off punching people
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml
index 34fa0a53b8..bbd18927e1 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml
@@ -12,6 +12,7 @@
- Knife
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Slash: 12
@@ -59,6 +60,7 @@
size: 4
state: butch
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.5
damage:
types:
@@ -85,6 +87,7 @@
size: 2
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.5
damage:
types:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml
index af073435ba..f3bb0ceec9 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml
@@ -44,6 +44,7 @@
capacity: 1
count: 1
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 8
@@ -73,6 +74,7 @@
sprite: Objects/Weapons/Melee/crusher_dagger.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.5
damage:
types:
@@ -107,6 +109,7 @@
- type: Sprite
sprite: Objects/Weapons/Melee/crusher_glaive.rsi
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.25
- type: Item
size: 150
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml
index cfe6c7b273..48b2d6ad2b 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml
@@ -8,6 +8,7 @@
sprite: Objects/Weapons/Melee/needle.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Piercing: 1
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml
index 513e691395..8d04fd316b 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml
@@ -12,6 +12,7 @@
state: pickaxe
- type: ItemCooldown
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
groups:
Brute: 5
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml
index 9127a92d51..f19b76b3e8 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml
@@ -34,6 +34,7 @@
map: ["enum.SolutionContainerLayers.Fill"]
visible: false
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Piercing: 12
@@ -117,6 +118,7 @@
- type: Sprite
sprite: Objects/Weapons/Melee/reinforced_spear.rsi
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Piercing: 15
@@ -136,6 +138,7 @@
- type: Sprite
sprite: Objects/Weapons/Melee/plasma_spear.rsi
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Piercing: 18
@@ -155,6 +158,7 @@
- type: Sprite
sprite: Objects/Weapons/Melee/uranium_spear.rsi
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Piercing: 10
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml
index 8ecd97827c..25c9cf6125 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml
@@ -12,6 +12,7 @@
- type: Stunbaton
energyPerUse: 70
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 9
@@ -44,4 +45,4 @@
price: 100
- type: Construction
graph: makeshiftstunprod
- node: msstunprod
\ No newline at end of file
+ node: msstunprod
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
index 2e733cf658..23160f13ea 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
@@ -9,6 +9,7 @@
sprite: Objects/Weapons/Melee/captain_sabre.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.5
damage:
types:
@@ -41,6 +42,7 @@
sprite: Objects/Weapons/Melee/katana.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Slash: 25
@@ -61,6 +63,7 @@
sprite: Objects/Weapons/Melee/energykatana.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -60
damage:
types:
Slash: 30
@@ -95,6 +98,7 @@
sprite: Objects/Weapons/Melee/machete.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Slash: 20
@@ -116,6 +120,7 @@
sprite: Objects/Weapons/Melee/claymore.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 0.75
damage:
types:
@@ -144,6 +149,7 @@
sprite: Objects/Weapons/Melee/cutlass.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Slash: 16
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml
index 9eaf14cf9a..b5f8590304 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml
@@ -12,6 +12,7 @@
size: 150
sprite: Objects/Tools/Toolboxes/toolbox_red.rsi
- type: MeleeWeapon
+ wideAnimationRotation: -135
attackRate: 1.5
damage:
types:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml
index f38c714c65..36ea58c111 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml
@@ -11,6 +11,7 @@
size: 15
sprite: Objects/Weapons/Melee/white_cane.rsi
- type: MeleeWeapon
+ wideAnimationRotation: 45
damage:
types:
Blunt: 5
@@ -21,4 +22,3 @@
damage:
types:
Blunt: 3
-
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/Entities/Objects/Weapons/security.yml
index 616625c925..eafcc46815 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/security.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/security.yml
@@ -12,6 +12,7 @@
- type: Stunbaton
energyPerUse: 50
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 7
@@ -74,6 +75,7 @@
sprite: Objects/Weapons/Melee/truncheon.rsi
state: icon
- type: MeleeWeapon
+ wideAnimationRotation: -135
damage:
types:
Blunt: 20
@@ -114,6 +116,7 @@
maxCharges: 5
charges: 5
- type: MeleeWeapon
+ wideAnimationRotation: 180
damage:
types:
Blunt: 0 # melee weapon to allow flashing individual targets
--
2.51.2