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 Species #78

Merged
merged 31 commits into from
Oct 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
686d00e
Funny birb start
VMSolidus Oct 1, 2023
52a85d7
Adding yet another harpy.yml
VMSolidus Oct 1, 2023
c78a978
Adding the traitor item, sans component
VMSolidus Oct 2, 2023
c8eaba2
GUH, EMOTES
VMSolidus Oct 2, 2023
2fb85e9
URIST MCHARPY WORKS
VMSolidus Oct 2, 2023
5f1f206
Rename uplink-catalog.ftl.txt to uplink-catalog.ftl
VMSolidus Oct 2, 2023
49e58cb
Icon Fix
VMSolidus Oct 2, 2023
1e1a3db
Merge branch 'Funny-Birbs' of https://github.com/evilexecutive/Delta-…
VMSolidus Oct 2, 2023
e5911b4
Changing DAW to Synthesizer by Debug's request
VMSolidus Oct 2, 2023
7e6445c
removing percussion so it sounds better
VMSolidus Oct 2, 2023
9ab4fd5
Update implanters.yml
VMSolidus Oct 2, 2023
2589d26
Update uplink_catalog.yml
VMSolidus Oct 2, 2023
271ba35
Merge branch 'master' into Funny-Birbs
VMSolidus Oct 3, 2023
c1b22da
Update speech_emote_sounds.yml
VMSolidus Oct 3, 2023
3f6b1de
Create modifier_sets.yml
VMSolidus Oct 3, 2023
b187c54
Merge branch 'Funny-Birbs' of https://github.com/evilexecutive/Delta-…
VMSolidus Oct 3, 2023
a51f487
More fixins
VMSolidus Oct 4, 2023
811b663
THE WINGS ARE HERE
VMSolidus Oct 6, 2023
55165dc
Fixing harpy wings
VMSolidus Oct 7, 2023
e474a1e
Finally finished with all of the "Natural" sounds, birb sounds next
VMSolidus Oct 8, 2023
49d4e44
Adding default tail.
VMSolidus Oct 10, 2023
14f8b6e
Semifinal commit, all defaults are ready
VMSolidus Oct 11, 2023
7266d55
FINAL COMMIT UNLESS THE LINTERS MURDER ME
VMSolidus Oct 12, 2023
09303a2
Merge branch 'master' into Funny-Birbs
VMSolidus Oct 12, 2023
f284879
Guh?
VMSolidus Oct 13, 2023
adb168d
Merge branch 'Funny-Birbs' of https://github.com/evilexecutive/Delta-…
VMSolidus Oct 13, 2023
fed70a2
Final fix
VMSolidus Oct 13, 2023
0f8d8b7
For reasons I don't know, they didn't have handcuff layers
VMSolidus Oct 13, 2023
19b75d5
Merge branch 'master' into Funny-Birbs
VMSolidus Oct 13, 2023
e61d602
Updating HarpySinger to use microphone as default
VMSolidus Oct 13, 2023
4377106
Confiscating Urist McHarpy's 3rd leg
VMSolidus Oct 13, 2023
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
17 changes: 17 additions & 0 deletions Content.Shared/DeltaV/Harpy/HarpySingerComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;

namespace Content.Shared.DeltaV.Harpy
{
[RegisterComponent, NetworkedComponent]
public sealed partial class HarpySingerComponent : Component
{
[DataField("midiActionId", serverOnly: true,
customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
public string? MidiActionId = "ActionHarpyPlayMidi";

[DataField("midiAction", serverOnly: true)] // server only, as it uses a server-BUI event !type
public EntityUid? MidiAction;
}
}
27 changes: 27 additions & 0 deletions Content.Shared/DeltaV/Harpy/HarpySingerSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using Content.Shared.Actions;

namespace Content.Shared.DeltaV.Harpy
{
public class HarpySingerSystem : EntitySystem
{
[Dependency] private readonly SharedActionsSystem _actionsSystem = default!;

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

SubscribeLocalEvent<HarpySingerComponent, ComponentStartup>(OnStartup);
SubscribeLocalEvent<HarpySingerComponent, ComponentShutdown>(OnShutdown);
}

private void OnStartup(EntityUid uid, HarpySingerComponent component, ComponentStartup args)
{
_actionsSystem.AddAction(uid, ref component.MidiAction, component.MidiActionId);
}

private void OnShutdown(EntityUid uid, HarpySingerComponent component, ComponentShutdown args)
{
_actionsSystem.RemoveAction(uid, component.MidiAction);
}
}
}
9 changes: 9 additions & 0 deletions Resources/Audio/DeltaV/Voice/Harpy/attributions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
- files: ["caw1.ogg"]
license: "CC-BY-SA-4.0"
copyright: "Original sound by https://xeno-canto.org/756861"
source: "https://xeno-canto.org/756861"

files: ["chirp1.ogg"]
license: "CC-BY-SA-4.0"
copyright: "Original sound by https://xeno-canto.org/797998"
source: "https://xeno-canto.org/797998"
Binary file added Resources/Audio/DeltaV/Voice/Harpy/caw1.ogg
Binary file not shown.
Binary file added Resources/Audio/DeltaV/Voice/Harpy/chirp1.ogg
Binary file not shown.
2 changes: 2 additions & 0 deletions Resources/Audio/DeltaV/Voice/Harpy/license.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
caw1.ogg licensed under CC-BY-SA-4.0 taken from https://xeno-canto.org/756861
chirp1.ogg licensed under CC-BY-SA-4.0 taken from https://xeno-canto.org/797998
5 changes: 5 additions & 0 deletions Resources/Locale/en-US/deltav/markings/harpy.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
marking-HarpyWingDefault = Basic Wings
marking-HarpyEarsDefault = Feather Tufts
marking-HarpyTailSwallow = Swallow Tail
marking-HarpyTailPhoenix = Phoenix Tail
marking-HarpyTailRooster = Rooster Tail
1 change: 1 addition & 0 deletions Resources/Locale/en-US/deltav/species/species.ftl
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
## Species Names

species-name-vulpkanin = Vulpkanin
species-name-harpy = Harpy
50 changes: 50 additions & 0 deletions Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
- type: body
id: Harpy
name: "harpy"
root: torso
slots:
head:
part: HeadHuman
connections:
- torso
organs:
brain: OrganHumanBrain
eyes: OrganHumanEyes
torso:
part: TorsoHuman
connections:
- left arm
- right arm
- left leg
- right leg
organs:
heart: OrganHumanHeart
lungs: OrganHumanLungs
stomach: OrganHumanStomach
liver: OrganHumanLiver
kidneys: OrganHumanKidneys
right arm:
part: RightArmHuman
connections:
- right hand
left arm:
part: LeftArmHuman
connections:
- left hand
right hand:
part: RightHandHuman
left hand:
part: LeftHandHuman
right leg:
part: RightLegHuman
connections:
- right foot
left leg:
part: LeftLegHuman
connections:
- left foot
right foot:
part: RightFootHuman
left foot:
part: LeftFootHuman

2 changes: 1 addition & 1 deletion Resources/Prototypes/DeltaV/Catalog/uplink_catalog.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#- type: listing
#- type: listing
# id: UplinkCyborgBeaconSyndicate
# name: uplink-borg-beacon-name
# description: uplink-borg-beacon-desc
Expand Down
7 changes: 7 additions & 0 deletions Resources/Prototypes/DeltaV/Damage/modifier_sets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,10 @@
id: Vulpkanin
coefficients:
Heat: 1.15

- type: damageModifierSet
id: Harpy
coefficients:
Blunt: 1.15
Slash: 1.15
Piercing: 1.15
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# All the Harpy customization

# Ears Markings
- type: marking
id: HarpyWingDefault
bodyPart: RArm
markingCategory: Arms
speciesRestriction: [Harpy]
sprites:
- sprite: DeltaV/Mobs/Customization/Harpy/harpy_wings_default.rsi
state: harpy

- type: marking
id: HarpyTailSwallow
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Harpy]
sprites:
- sprite: DeltaV/Mobs/Customization/Harpy/harpy_tails.rsi
state: harpy_tail_swallow

- type: marking
id: HarpyEarsDefault
bodyPart: Head
markingCategory: HeadTop
speciesRestriction: [Harpy]
sprites:
- sprite: DeltaV/Mobs/Customization/Harpy/harpy_ears.rsi
state: harpy_ears_default

- type: marking
id: HarpyTailPhoenix
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Harpy]
sprites:
- sprite: DeltaV/Mobs/Customization/Harpy/harpy_tails.rsi
state: phoenix_tail

- type: marking
id: HarpyTailRooster
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Harpy]
sprites:
- sprite: DeltaV/Mobs/Customization/Harpy/harpy_tails.rsi
state: rooster_tail
35 changes: 35 additions & 0 deletions Resources/Prototypes/DeltaV/Entities/Mobs/Player/harpy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
- type: entity
save: false
name: Urist McHarpy
parent: MobHarpyBase
id: MobHarpy
components:
- type: CombatMode
- type: InteractionPopup
successChance: 1
interactSuccessString: hugging-success-generic
interactSuccessSound: /Audio/Effects/thudswoosh.ogg
messagePerceivedByOthers: hugging-success-generic-others
- type: MindContainer
showExamineInfo: true
- type: Input
context: "human"
- type: MobMover
- type: InputMover
- type: Respirator
damage:
types:
Asphyxiation: 1.15
damageRecovery:
types:
Asphyxiation: -1.15
- type: Alerts
- type: Actions
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: NpcFactionMember
factions:
- NanoTrasen
# - type: PotentialPsionic
161 changes: 161 additions & 0 deletions Resources/Prototypes/DeltaV/Entities/Mobs/Species/harpy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
- type: entity
save: false
name: Urist McHarpy
parent: BaseMobHuman
id: MobHarpyBase
abstract: true
components:
- type: HarpySinger
- type: Instrument
allowPercussion: false
program: 52
- type: UserInterface
interfaces:
- key: enum.InstrumentUiKey.Key
type: InstrumentBoundUserInterface
- type: Sprite
scale: 0.9, 0.9
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- map: [ "underpants" ]
- map: [ "undershirt" ]
- map: [ "socks" ]
- map: [ "jumpsuit" ]
- map: ["enum.HumanoidVisualLayers.LFoot"]
- map: ["enum.HumanoidVisualLayers.RFoot"]
- map: ["enum.HumanoidVisualLayers.LHand"]
- map: ["enum.HumanoidVisualLayers.RHand"]
- map: [ "enum.HumanoidVisualLayers.Handcuffs" ]
color: "#ffffff"
sprite: Objects/Misc/handcuffs.rsi
state: body-overlay-2
visible: false
- map: [ "id" ]
- map: [ "gloves" ]
- map: [ "shoes" ]
- map: [ "ears" ]
- map: [ "outerClothing" ]
- map: [ "eyes" ]
- map: [ "belt" ]
- map: [ "neck" ]
- map: [ "back" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
- map: [ "enum.HumanoidVisualLayers.Tail" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: [ "clownedon" ] # Dynamically generated
sprite: "Effects/creampie.rsi"
state: "creampie_human"
visible: false
# Yes, RArm has to be down here
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.Hair" ]
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
- map: [ "mask" ]
- map: [ "head" ]

- type: HumanoidAppearance
species: Harpy
- type: Fixtures
fixtures: # TODO: This needs a second fixture just for mob collisions.
fix1:
shape:
!type:PhysShapeCircle
radius: 0.28
density: 140
restitution: 0.0
mask:
- MobMask
layer:
- MobLayer
- type: Body
prototype: Harpy
- type: Damageable
damageModifierSet: Harpy
- type: MeleeWeapon
soundHit:
collection: Punch
animation: WeaponArcClaw
damage:
types:
Blunt: 1
Slash: 5
- type: Speech
speechSounds: Alto
- type: Vocal
sounds:
Male: SoundsHarpy
Female: SoundsHarpy
Unsexed: SoundsHarpy

- type: entity
save: false
name: Urist McHands
parent: MobHumanDummy
id: MobHarpyDummy
noSpawn: true
description: A dummy Harpy meant to be used in character setup.
components:
- type: HumanoidAppearance
species: Harpy
- type: Sprite
scale: 0.9, 0.9
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- map: [ "underpants" ]
- map: [ "undershirt" ]
- map: [ "socks" ]
- map: [ "jumpsuit" ]
- map: ["enum.HumanoidVisualLayers.LFoot"]
- map: ["enum.HumanoidVisualLayers.RFoot"]
- map: ["enum.HumanoidVisualLayers.LHand"]
- map: ["enum.HumanoidVisualLayers.RHand"]
- map: [ "id" ]
- map: [ "gloves" ]
- map: [ "shoes" ]
- map: [ "ears" ]
- map: [ "outerClothing" ]
- map: [ "eyes" ]
- map: [ "belt" ]
- map: [ "neck" ]
- map: [ "back" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
- map: [ "enum.HumanoidVisualLayers.Tail" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: [ "clownedon" ] # Dynamically generated
sprite: "Effects/creampie.rsi"
state: "creampie_human"
visible: false
# Yes, RArm has to be down here
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.Hair" ]
- map: [ "mask" ]
- map: [ "head" ]

- type: entity
id: ActionHarpyPlayMidi
name: Play MIDI
description: Sing your heart out!
noSpawn: true
components:
- type: InstantAction
checkCanInteract: false
icon: DeltaV/Interface/Actions/harpy_sing.png
event: !type:OpenUiActionEvent
key: enum.InstrumentUiKey.Key
Loading
Loading