Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Harpy Visual Rework #677

Merged
merged 38 commits into from
Feb 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
88526e1
It begins
VMSolidus Jan 15, 2024
51d9465
Delete error.txt
VMSolidus Jan 15, 2024
4f54a9c
Patch by Debug
VMSolidus Jan 15, 2024
b52b11a
Merge branch 'master' into Harpy-Update-3
VMSolidus Jan 15, 2024
9ab22d0
HIDING WINGS NOW WORKS
VMSolidus Jan 16, 2024
c5eba53
Runs smoother from Shared
VMSolidus Jan 16, 2024
36f01ff
Delete HarpyVisualsSystem.cs
VMSolidus Jan 16, 2024
29a9a03
The entire clientside script is no longer needed, and the visuals now…
VMSolidus Jan 16, 2024
e6f0b4d
Update HarpyVisualsSystem.cs
VMSolidus Jan 20, 2024
57e5116
First completed Harpy Hardsuit
VMSolidus Jan 20, 2024
db1d9cb
Captain and Atmos tech birdsuits
VMSolidus Jan 21, 2024
35d1da7
Update hardsuit-helmets.yml
VMSolidus Jan 21, 2024
88efc64
And more content
VMSolidus Jan 21, 2024
62ab5e9
Adding new finch tail <3
VMSolidus Jan 21, 2024
ede5b15
whoops
VMSolidus Jan 21, 2024
ebb5ae2
guh
VMSolidus Jan 21, 2024
84b80e4
I swear the tail works now, I just need the adhd meds to kick in
VMSolidus Jan 21, 2024
c29d07b
Merge branch 'master' into Harpy-Update-3
VMSolidus Jan 21, 2024
e5cf2a9
birb juggsuit
VMSolidus Jan 21, 2024
b3a120c
More stuff
VMSolidus Jan 28, 2024
9008ef4
Nukie hardsuits
VMSolidus Jan 28, 2024
53ceab6
fixing clipping issues on birb juggsuit
VMSolidus Jan 28, 2024
4720115
Update meta.json
VMSolidus Jan 28, 2024
9843735
aaaaaaaaa
VMSolidus Jan 28, 2024
61d68ac
two more
VMSolidus Jan 28, 2024
4ddd72d
Ton of extra harpy sprites
VMSolidus Jan 29, 2024
aec3888
Create equipped-INNERCLOTHING-harpy.png
VMSolidus Jan 29, 2024
40cb95a
Merge branch 'master' into Harpy-Update-3
VMSolidus Feb 3, 2024
aa2cd07
Harpy Ultravision trait
VMSolidus Feb 5, 2024
955fab5
Trait that removes Ultravision
VMSolidus Feb 5, 2024
0bb0f7b
Code optimizations
VMSolidus Feb 5, 2024
9644f8e
Adding hueshift maps to all harpy markings
VMSolidus Feb 5, 2024
9a2227f
No more jumpsuits
VMSolidus Feb 6, 2024
4c5c582
1984 the harpy jumpsuits, they are no longer needed
VMSolidus Feb 6, 2024
78280a6
last 2
VMSolidus Feb 6, 2024
d479b51
Merge branch 'master' into Harpy-Update-3
VMSolidus Feb 8, 2024
8621098
final QA pass
VMSolidus Feb 12, 2024
5f9c737
shennanigans related to an earlier merge conflict
VMSolidus Feb 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Content.Client/DeltaV/Harpy/HarpyVisualsComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
namespace Content.Client.DeltaV.Harpy;

[RegisterComponent]
public sealed partial class HarpyVisualsComponent : Component
{ }
44 changes: 44 additions & 0 deletions Content.Client/DeltaV/Overlays/UltraVisionOverlay.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Shared.Enums;
using Robust.Shared.Prototypes;
using Content.Shared.Abilities;

namespace Content.Client.DeltaV.Overlays;

public sealed partial class UltraVisionOverlay : Overlay
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] IEntityManager _entityManager = default!;


public override bool RequestScreenTexture => true;
public override OverlaySpace Space => OverlaySpace.WorldSpace;
private readonly ShaderInstance _ultraVisionShader;

public UltraVisionOverlay()
{
IoCManager.InjectDependencies(this);
_ultraVisionShader = _prototypeManager.Index<ShaderPrototype>("UltraVision").Instance().Duplicate();
}

protected override void Draw(in OverlayDrawArgs args)
{
if (ScreenTexture == null)
return;
if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} player)
return;
if (!_entityManager.HasComponent<UltraVisionComponent>(player))
return;

_ultraVisionShader?.SetParameter("SCREEN_TEXTURE", ScreenTexture);


var worldHandle = args.WorldHandle;
var viewport = args.WorldBounds;
worldHandle.SetTransform(Matrix3.Identity);
worldHandle.UseShader(_ultraVisionShader);
worldHandle.DrawRect(viewport, Color.White);
}
}
31 changes: 31 additions & 0 deletions Content.Client/DeltaV/Overlays/UltraVisionSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using Content.Shared.Abilities;
using Robust.Client.Graphics;

namespace Content.Client.DeltaV.Overlays;

public sealed partial class UltraVisionSystem : EntitySystem
{
[Dependency] private readonly IOverlayManager _overlayMan = default!;

private UltraVisionOverlay _overlay = default!;

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<UltraVisionComponent, ComponentInit>(OnUltraVisionInit);
SubscribeLocalEvent<UltraVisionComponent, ComponentShutdown>(OnUltraVisionShutdown);

_overlay = new();
}

private void OnUltraVisionInit(EntityUid uid, UltraVisionComponent component, ComponentInit args)
{
_overlayMan.AddOverlay(_overlay);
}

private void OnUltraVisionShutdown(EntityUid uid, UltraVisionComponent component, ComponentShutdown args)
{
_overlayMan.RemoveOverlay(_overlay);
}
}
8 changes: 8 additions & 0 deletions Content.Shared/DeltaV/Abilities/DefaultVisionComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using Robust.Shared.GameStates;
namespace Content.Shared.DeltaV.Abilities;

[RegisterComponent]
[NetworkedComponent]

public sealed partial class DefaultVisionComponent : Component
{}
19 changes: 19 additions & 0 deletions Content.Shared/DeltaV/Abilities/DefaultVisionSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Content.Shared.Abilities;
using Content.Shared.DeltaV.Abilities;

namespace Content.Client.DeltaV.Overlays;

public sealed partial class DefaultVisionSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<DefaultVisionComponent, ComponentInit>(OnDefaultVisionInit);
}

private void OnDefaultVisionInit(EntityUid uid, DefaultVisionComponent component, ComponentInit args)
{
RemComp<UltraVisionComponent>(uid);
}
}
8 changes: 8 additions & 0 deletions Content.Shared/DeltaV/Abilities/UltraVisionComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using Robust.Shared.GameStates;
namespace Content.Shared.Abilities;

[RegisterComponent]
[NetworkedComponent]

public sealed partial class UltraVisionComponent : Component
{}
1 change: 1 addition & 0 deletions Content.Shared/DeltaV/Harpy/HarpySingerComponent.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.Serialization;

namespace Content.Shared.DeltaV.Harpy
{
Expand Down
40 changes: 40 additions & 0 deletions Content.Shared/DeltaV/Harpy/HarpyVisualsSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using Content.Shared.Inventory.Events;
using Content.Shared.Tag;
using Content.Shared.Humanoid;

namespace Content.Shared.DeltaV.Harpy;

public sealed class HarpyVisualsSystem : EntitySystem
{
[Dependency] private readonly TagSystem _tagSystem = default!;
[Dependency] private readonly SharedHumanoidAppearanceSystem _humanoidSystem = default!;

[ValidatePrototypeId<TagPrototype>]
private const string HarpyWingsTag = "HidesHarpyWings";

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<HarpySingerComponent, DidEquipEvent>(OnDidEquipEvent);
SubscribeLocalEvent<HarpySingerComponent, DidUnequipEvent>(OnDidUnequipEvent);
}

private void OnDidEquipEvent(EntityUid uid, HarpySingerComponent component, DidEquipEvent args)
{
if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, HarpyWingsTag))
{
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.RArm, false);
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.Tail, false);
}
}

private void OnDidUnequipEvent(EntityUid uid, HarpySingerComponent component, DidUnequipEvent args)
{
if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, HarpyWingsTag))
{
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.RArm, true);
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.Tail, true);
}
}
}
9 changes: 9 additions & 0 deletions Content.Shared/DeltaV/Harpy/SharedHarpyVisualsComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using Robust.Shared.Serialization;

namespace Content.Shared.DeltaV.Harpy;

[Serializable, NetSerializable]
public enum HardsuitWings : byte
{
Worn
}
4 changes: 3 additions & 1 deletion Content.Shared/Roles/StartingGearPrototype.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using Content.Shared.DeltaV.Harpy;
using Content.Shared.Preferences;
using Robust.Shared.Prototypes;

Expand Down Expand Up @@ -32,7 +33,8 @@ public string GetGear(string slot, HumanoidCharacterProfile? profile)
{
if (profile != null)
{
if (slot == "jumpsuit" && profile.Clothing == ClothingPreference.Jumpskirt && !string.IsNullOrEmpty(InnerClothingSkirt))
if (slot == "jumpsuit" && profile.Clothing == ClothingPreference.Jumpskirt && !string.IsNullOrEmpty(InnerClothingSkirt)
|| slot == "jumpsuit" && profile.Species == "Harpy" && !string.IsNullOrEmpty(InnerClothingSkirt)) //DeltaV adds this line to prevent Harpies from starting with jumpsuits
return InnerClothingSkirt;
if (slot == "back" && profile.Backpack == BackpackPreference.Satchel && !string.IsNullOrEmpty(Satchel))
return Satchel;
Expand Down
5 changes: 5 additions & 0 deletions Resources/Locale/en-US/deltav/chat/managers/chat_manager.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ chat-speech-verb-felinid-1 = mraows
chat-speech-verb-felinid-2 = mews
chat-speech-verb-felinid-3 = meows
chat-speech-verb-felinid-4 = purrs out

chat-speech-verb-harpy-1 = chirps
chat-speech-verb-harpy-2 = tweets
chat-speech-verb-harpy-3 = caws
chat-speech-verb-harpy-4 = trills
52 changes: 36 additions & 16 deletions Resources/Locale/en-US/deltav/markings/harpy.ftl
Original file line number Diff line number Diff line change
@@ -1,26 +1,32 @@
marking-HarpyWingDefault = Basic Wings
marking-HarpyWingDefault-harpy = Wings

marking-HarpyWing2Tone = Two Tone Wings
marking-HarpyWing2Tone-harpy2tone1 = Top Half
marking-HarpyWing2Tone-harpy2tone2 = Bottom Half
marking-HarpyWingFolded = Folded Wings
marking-HarpyWingFolded-harpyfolded = Wings

marking-HarpyWing3Tone = Three Tone Wings
marking-HarpyWing3Tone-harpy3tone1 = Top Third
marking-HarpyWing3Tone-harpy3tone2 = Middle Third
marking-HarpyWing3tone-harpy3tone3 = Bottom Third
marking-HarpyWingClassic = Classic Wings
marking-HarpyWingClassic-classicharpy = Wings

marking-HarpyWingSpeckled = Speckled Wings
marking-HarpyWingSpeckled-harpyspeckled1 = Main
marking-HarpyWingSpeckled-harpyspeckled2 = Speckles
marking-HarpyWing2ToneClassic = Classic Two Tone Wings
marking-HarpyWing2ToneClassic-harpy2tone1 = Top Half
marking-HarpyWing2ToneClassic-harpy2tone2 = Bottom Half

marking-HarpyWingUndertone = Wings with Undertone
marking-HarpyWingUndertone-harpyundertone1 = Front
marking-HarpyWingUndertone-harpyundertone2 = Back
marking-HarpyWing3ToneClassic = Classic Three Tone Wings
marking-HarpyWing3ToneClassic-harpy3tone1 = Top Third
marking-HarpyWing3ToneClassic-harpy3tone2 = Middle Third
marking-HarpyWing3ToneClassic-harpy3tone3 = Bottom Third

marking-HarpyWingTips = Wings with Feather Tips
marking-HarpyWingTips-harpywingtip1 = Main
marking-HarpyWingTips-harpywingtip2 = Feathertips
marking-HarpyWingSpeckledClassic = Speckled Classic Wings
marking-HarpyWingSpeckledClassic-harpyspeckled1 = Main
marking-HarpyWingSpeckledClassic-harpyspeckled2 = Speckles

marking-HarpyWingUndertoneClassic = Classic Wings with Undertone
marking-HarpyWingUndertoneClassic-harpyundertone1 = Front
marking-HarpyWingUndertoneClassic-harpyundertone2 = Back

marking-HarpyWingTipsClassic = Classic Wings with Feather Tips
marking-HarpyWingTipsClassic-harpywingtip1 = Main
marking-HarpyWingTipsClassic-harpywingtip2 = Feathertips

marking-HarpyEarsDefault = Feather Tufts
marking-HarpyEarsDefault-harpy_ears_default = Tufts
Expand All @@ -30,3 +36,17 @@ marking-HarpyTailPhoenix-phoenix_tail = Tail

marking-HarpyTailRooster = Rooster Tail
marking-HarpyTailRooster-rooster_tail = Tail

marking-HarpyTailFinch = Finch Tail
marking-HarpyTailFinch-finch_tail = Tail

marking-HarpyChestDefault = Wing & Groin Under-Clothes
marking-HarpyChestDefault-upper = Wing Under-Clothes
marking-HarpyChestDefault-lower = Groin Under-Clothes

marking-HarpyLegsDefault = Avian Legs
marking-HarpyLegsDefault-thighs = Thighs

marking-HarpyFeetDefault = Avian Feet
marking-HarpyFeetDefault-feet = Feet
marking-HarpyFeetDefault-talons = Talons
4 changes: 4 additions & 0 deletions Resources/Locale/en-US/deltav/traits/traits.ftl
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
trait-scottish-accent-name = Scottish Accent
trait-scottish-accent-desc = Fer tha folk who come frae Hielan clan.
trait-ultravision-desc = Whether through custom bionic eyes, random mutation,
or being a Harpy, you perceive the world with ultraviolet light.

trait-defaultvision-desc = You lack any vision variation from the norm for a non-human species.

trait-uncloneable-name = Uncloneable
trait-uncloneable-desc = Cannot be cloned
Loading
Loading