From 36db74e7041b2188a95035379c1e896020aba0fe Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 2 Dec 2023 11:56:58 -0500 Subject: [PATCH 1/4] Harpy Rebalance --- .../DeltaV/Harpy/HarpySingerSystem.cs | 25 +++++++++++++ .../Harpy/Components/HarpyVisualSystem.cs | 17 +++++++++ .../Prototypes/DeltaV/Body/Organs/harpy.yml | 34 ++++++++++++++++++ .../DeltaV/Body/Prototypes/harpy.yml | 2 +- .../DeltaV/Entities/Mobs/Player/harpy.yml | 6 ---- .../DeltaV/Entities/Mobs/Species/harpy.yml | 25 +++++++++---- .../DeltaV/Effects/harpysinger.rsi/meta.json | 22 ++++++++++++ .../harpysinger.rsi/singing_music_notes.png | Bin 0 -> 473 bytes 8 files changed, 117 insertions(+), 14 deletions(-) create mode 100644 Content.Shared/DeltaV/Harpy/Components/HarpyVisualSystem.cs create mode 100644 Resources/Prototypes/DeltaV/Body/Organs/harpy.yml create mode 100644 Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Effects/harpysinger.rsi/singing_music_notes.png diff --git a/Content.Server/DeltaV/Harpy/HarpySingerSystem.cs b/Content.Server/DeltaV/Harpy/HarpySingerSystem.cs index 2e0428af19a..21b5b3a2456 100644 --- a/Content.Server/DeltaV/Harpy/HarpySingerSystem.cs +++ b/Content.Server/DeltaV/Harpy/HarpySingerSystem.cs @@ -1,6 +1,8 @@ using Content.Server.Instruments; using Content.Server.Speech.Components; using Content.Server.UserInterface; +using Content.Shared.Instruments; +using Content.Shared.Instruments.UI; using Content.Shared.ActionBlocker; using Content.Shared.Damage; using Content.Shared.Damage.ForceSay; @@ -17,6 +19,7 @@ using Robust.Server.GameObjects; using Robust.Shared.Player; using Robust.Shared.Prototypes; +using Content.Shared.DeltaV.Harpy.Components; namespace Content.Server.DeltaV.Harpy { @@ -27,6 +30,7 @@ public sealed class HarpySingerSystem : EntitySystem [Dependency] private readonly InventorySystem _inventorySystem = default!; [Dependency] private readonly ActionBlockerSystem _blocker = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; public override void Initialize() { @@ -40,6 +44,8 @@ public override void Initialize() SubscribeLocalEvent(OnSleep); SubscribeLocalEvent(OnStatusEffect); SubscribeLocalEvent(OnDamageChanged); + SubscribeLocalEvent(OnBoundUIClosed); + SubscribeLocalEvent(OnBoundUIOpened); // This is intended to intercept the UI event and stop the MIDI UI from opening if the // singer is unable to sing. Thus it needs to run before the ActivatableUISystem. @@ -153,5 +159,24 @@ private void OnInstrumentOpen(EntityUid uid, HarpySingerComponent component, Ope if (args.Handled) _popupSystem.PopupEntity(Loc.GetString("no-sing-while-no-speak"), uid, uid, PopupType.Medium); } + + private void OnBoundUIClosed(EntityUid uid, HarpySingerComponent component, BoundUIClosedEvent args) + { + if (args.UiKey is not InstrumentUiKey) + return; + + TryComp(uid, out AppearanceComponent? appearance); + _appearance.SetData(uid, HarpyVisualLayers.Singing, SingingVisualLayer.False, appearance); + } + + private void OnBoundUIOpened(EntityUid uid, HarpySingerComponent component, BoundUIOpenedEvent args) + { + if (args.UiKey is not InstrumentUiKey) + return; + + TryComp(uid, out AppearanceComponent? appearance); + _appearance.SetData(uid, HarpyVisualLayers.Singing, SingingVisualLayer.True, appearance); + + } } } diff --git a/Content.Shared/DeltaV/Harpy/Components/HarpyVisualSystem.cs b/Content.Shared/DeltaV/Harpy/Components/HarpyVisualSystem.cs new file mode 100644 index 00000000000..f5100e13c7f --- /dev/null +++ b/Content.Shared/DeltaV/Harpy/Components/HarpyVisualSystem.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.DeltaV.Harpy.Components +{ + [Serializable, NetSerializable] + public enum HarpyVisualLayers + { + Singing, + } + + [Serializable, NetSerializable] + public enum SingingVisualLayer + { + True, + False, + } +} diff --git a/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml new file mode 100644 index 00000000000..a4dbd0ceebc --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml @@ -0,0 +1,34 @@ +- type: entity + id: OrganHarpyLungs + parent: BaseHumanOrgan + name: lungs + description: "An advanced pair of avian lungs. Filters oxygen by way of moving air constantly through air sacs." + components: + - type: Sprite + layers: + - state: lung-l + - state: lung-r + - type: Lung + - type: Metabolizer + updateFrequency: 2.0 + removeEmpty: true + solutionOnBody: false + solution: "Lung" + metabolizerTypes: [ Human ] + groups: + - id: Gas + rateModifier: 100.0 + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 10 + Lung: + maxVol: 100.0 + canReact: false + food: + maxVol: 5 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 5 diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml index c5bba3da271..65073a778fa 100644 --- a/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml @@ -19,7 +19,7 @@ - right leg organs: heart: OrganHumanHeart - lungs: OrganHumanLungs + lungs: OrganHarpyLungs stomach: OrganHumanStomach liver: OrganHumanLiver kidneys: OrganHumanKidneys diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml index dd7a921aa96..1f4eb696c65 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml @@ -17,12 +17,6 @@ - type: MobMover - type: InputMover - type: Respirator - damage: - types: - Asphyxiation: 1.15 - damageRecovery: - types: - Asphyxiation: -1.15 - type: Alerts - type: Actions - type: Eye diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml index 94b5c0c9355..7548add4969 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml @@ -76,7 +76,10 @@ - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - map: [ "mask" ] - map: [ "head" ] - + - map: [ "singingLayer" ] + sprite: DeltaV/Effects/harpysinger.rsi + state: singing_music_notes + visible: false - type: HumanoidAppearance species: Harpy - type: Fixtures @@ -84,8 +87,8 @@ fix1: shape: !type:PhysShapeCircle - radius: 0.28 - density: 140 + radius: 0.32 + density: 90 restitution: 0.0 mask: - MobMask @@ -97,12 +100,11 @@ damageModifierSet: Harpy - type: MeleeWeapon soundHit: - collection: Punch + collection: AlienClaw animation: WeaponArcClaw damage: types: - Blunt: 1 - Slash: 5 + Piercing: 5 - type: Speech speechSounds: Alto - type: Vocal @@ -110,7 +112,16 @@ Male: SoundsHarpy Female: SoundsHarpy Unsexed: SoundsHarpy - + - type: GenericVisualizer + visuals: + enum.HarpyVisualLayers.Singing: + singingLayer: + False: {visible: false} + True: {visible: true} + - type: MovementSpeedModifier + baseWalkSpeed: 2.5 + baseSprintSpeed: 5.0 + - type: entity save: false name: Urist McHands diff --git a/Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json b/Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json new file mode 100644 index 00000000000..ecba05e9fb9 --- /dev/null +++ b/Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "copyright": "Edited by Floofers", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "singing_music_notes", + "directions": 1, + "delays": [ + [ + 0.3, + 0.3, + 0.3 + ] + ] + } + ] +} diff --git a/Resources/Textures/DeltaV/Effects/harpysinger.rsi/singing_music_notes.png b/Resources/Textures/DeltaV/Effects/harpysinger.rsi/singing_music_notes.png new file mode 100644 index 0000000000000000000000000000000000000000..9e3b83c77767a5e62549a262419ee23e58a8d8c1 GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pC!3HGX9;gigQjEnx?oJHr&dIz4vMW7Z978f1 z-(IuLJLDk1`e1vYR#%9}Ll(UvW~;1Sdwu;HYG%KUx$GLaLUWNxr^bc=DR-}vOK#*a z32yw(ujBoG@&t`C+s%*Dc?=kKiM-t1UcB>D>T zW@4C8z4X>KzXemI53sz=-ut@zicLAc;&bu6lW+BGo_jayhw1}^%9WZ|mU4(GT}Zrs z^5$Xw^Pic&vF*4O`_+0rLu}U!+XnUiLlvSA&Tc-N_v~WrNB^LAa!%*oUrFP6@I%w* zg@R3EgKUeeTm7al0u}%En-=fy)=M@PwMlO1mG|aukZ$_Tk`*SfGQIGqdGK!iO=X+7 z*%tiG&tPn2x|m;7y1VE0@1Gx{?Hz+SxK_w8zIgTUzx0DP0gqQRO|&`O0&h2RHBCRU zSKXymA()}2%A%H;uU)`mLjQMF1E#!pO0(xXC;r=O{wYlbBtNOyBIT^qr8UNX+QJ1w z3a_8M#w>^ec&~{+`t?=)(Tm1TV2tpkMtG+A`Z8z%*&IL&0+)g(gD6i|KbLh*2~7YL CZo|6( literal 0 HcmV?d00001 From 242ba6d72788ccabd5beffeb4cfe86c575ff10cf Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 2 Dec 2023 12:33:20 -0500 Subject: [PATCH 2/4] Update meta.json Signed-off-by: VMSolidus --- Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json b/Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json index ecba05e9fb9..3c908beb5ee 100644 --- a/Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json +++ b/Resources/Textures/DeltaV/Effects/harpysinger.rsi/meta.json @@ -1,6 +1,6 @@ { "version": 1, - "copyright": "Edited by Floofers", + "copyright": "Made by @ps3moira", "license": "CC-BY-SA-3.0", "size": { "x": 32, From a249446f076d10f98c035312ea1505ee0a6d4a2b Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 2 Dec 2023 12:39:06 -0500 Subject: [PATCH 3/4] Update harpy.yml Signed-off-by: VMSolidus --- Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml index 7548add4969..e91cc714ec1 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml @@ -104,7 +104,7 @@ animation: WeaponArcClaw damage: types: - Piercing: 5 + Slash: 5 - type: Speech speechSounds: Alto - type: Vocal From eaaa04443f56ed40ad3db6bf7f48835053b2bc1d Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 2 Dec 2023 12:50:03 -0500 Subject: [PATCH 4/4] revert piercing and also revert felinid melee by request --- Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml | 2 +- .../Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml index e91cc714ec1..7548add4969 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml @@ -104,7 +104,7 @@ animation: WeaponArcClaw damage: types: - Slash: 5 + Piercing: 5 - type: Speech speechSounds: Alto - type: Vocal diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml index 35c1bc73a0b..9d2ca19e3d2 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml @@ -31,8 +31,8 @@ animation: WeaponArcClaw damage: types: - Blunt: 1 - Slash: 5 + Slash: 4 + Piercing: 1 # - type: DiseaseCarrier # naturalImmunities: # - OwOnavirus