Animals make hearts when you pet them (#20859)

This commit is contained in:
Ed
2023-10-13 20:34:18 +03:00
committed by GitHub
parent e6e7d63b84
commit 5fa0e7dd49
7 changed files with 94 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
namespace Content.Server.Interaction.Components; namespace Content.Server.Interaction.Components;
@@ -40,6 +41,18 @@ public sealed partial class InteractionPopupComponent : Component
[DataField("interactFailureSound")] [DataField("interactFailureSound")]
public SoundSpecifier? InteractFailureSound; public SoundSpecifier? InteractFailureSound;
/// <summary>
/// a prototype that will spawn upon successful interaction (as planned only for special effects)
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public EntProtoId? InteractSuccessSpawn;
/// <summary>
/// a prototype that will spawn upon failure interaction (as planned only for special effects)
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public EntProtoId? InteractFailureSpawn;
/// <summary> /// <summary>
/// Chance that an interaction attempt will succeed. /// Chance that an interaction attempt will succeed.
/// 1 = always play "success" popup and sound. /// 1 = always play "success" popup and sound.

View File

@@ -58,6 +58,9 @@ public sealed class InteractionPopupSystem : EntitySystem
if (component.InteractSuccessSound != null) if (component.InteractSuccessSound != null)
sfx = component.InteractSuccessSound.GetSound(); sfx = component.InteractSuccessSound.GetSound();
if (component.InteractSuccessSpawn != null)
Spawn(component.InteractSuccessSpawn, Transform(uid).MapPosition);
} }
else else
{ {
@@ -66,6 +69,9 @@ public sealed class InteractionPopupSystem : EntitySystem
if (component.InteractFailureSound != null) if (component.InteractFailureSound != null)
sfx = component.InteractFailureSound.GetSound(); sfx = component.InteractFailureSound.GetSound();
if (component.InteractFailureSpawn != null)
Spawn(component.InteractFailureSpawn, Transform(uid).MapPosition);
} }
if (component.MessagePerceivedByOthers != null) if (component.MessagePerceivedByOthers != null)

View File

@@ -0,0 +1,16 @@
- type: entity
id: EffectHearts
noSpawn: true
components:
- type: TimedDespawn
lifetime: 0.85
- type: Sprite
noRot: true
drawdepth: Effects
sprite: Effects/hearts.rsi
state: hearts
- type: EffectVisuals
- type: Tag
tags:
- HideContextMenu
- type: AnimationPlayer

View File

@@ -41,6 +41,7 @@
successChance: 0.2 successChance: 0.2
interactSuccessString: petting-success-soft-floofy interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-bat interactFailureString: petting-failure-bat
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg path: /Audio/Animals/fox_squeak.ogg
- type: SentienceTarget - type: SentienceTarget
@@ -204,6 +205,7 @@
successChance: 0.8 successChance: 0.8
interactSuccessString: petting-success-bird interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/chicken_cluck_happy.ogg path: /Audio/Animals/chicken_cluck_happy.ogg
- type: Bloodstream - type: Bloodstream
@@ -290,6 +292,7 @@
successChance: 0.9 successChance: 0.9
interactSuccessString: petting-success-bird interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/duck_quack_happy.ogg path: /Audio/Animals/duck_quack_happy.ogg
- type: Bloodstream - type: Bloodstream
@@ -469,6 +472,7 @@
interactDelay: 2 # Avoids overlapping SFX due to spam - these SFX are a little longer than the typical 1 second. interactDelay: 2 # Avoids overlapping SFX due to spam - these SFX are a little longer than the typical 1 second.
interactSuccessString: petting-success-soft-floofy interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/cow_moo.ogg path: /Audio/Animals/cow_moo.ogg
- type: Perishable - type: Perishable
@@ -523,6 +527,7 @@
successChance: 0.5 successChance: 0.5
interactSuccessString: petting-success-crab interactSuccessString: petting-success-crab
interactFailureString: petting-failure-crab interactFailureString: petting-failure-crab
interactSuccessSpawn: EffectHearts
- type: Bloodstream - type: Bloodstream
bloodMaxVolume: 50 bloodMaxVolume: 50
- type: Tag - type: Tag
@@ -598,6 +603,7 @@
successChance: 0.2 successChance: 0.2
interactSuccessString: petting-success-goat interactSuccessString: petting-success-goat
interactFailureString: petting-failure-goat interactFailureString: petting-failure-goat
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/goat_bah.ogg path: /Audio/Animals/goat_bah.ogg
- type: NpcFactionMember - type: NpcFactionMember
@@ -650,6 +656,7 @@
successChance: 0.1 # Yeah, good luck with that. successChance: 0.1 # Yeah, good luck with that.
interactSuccessString: petting-success-goose interactSuccessString: petting-success-goose
interactFailureString: petting-failure-goose interactFailureString: petting-failure-goose
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/goose_honk.ogg path: /Audio/Animals/goose_honk.ogg
- type: Bloodstream - type: Bloodstream
@@ -1160,6 +1167,7 @@
successChance: 0.3 successChance: 0.3
interactSuccessString: petting-success-reptile interactSuccessString: petting-success-reptile
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/lizard_happy.ogg path: /Audio/Animals/lizard_happy.ogg
- type: Bloodstream - type: Bloodstream
@@ -1215,6 +1223,7 @@
successChance: 0.3 successChance: 0.3
interactSuccessString: petting-success-generic interactSuccessString: petting-success-generic
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
- type: Bloodstream - type: Bloodstream
bloodMaxVolume: 50 bloodMaxVolume: 50
@@ -1259,6 +1268,7 @@
successChance: 0.6 successChance: 0.6
interactSuccessString: petting-success-frog interactSuccessString: petting-success-frog
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/frog_ribbit.ogg path: /Audio/Animals/frog_ribbit.ogg
- type: Bloodstream - type: Bloodstream
@@ -1310,6 +1320,7 @@
successChance: 0.6 successChance: 0.6
interactSuccessString: petting-success-bird interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/parrot_raught.ogg path: /Audio/Animals/parrot_raught.ogg
- type: Bloodstream - type: Bloodstream
@@ -1353,6 +1364,7 @@
successChance: 0.5 successChance: 0.5
interactSuccessString: petting-success-bird interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/penguin_squawk.ogg path: /Audio/Animals/penguin_squawk.ogg
- type: Tag - type: Tag
@@ -1578,6 +1590,7 @@
successChance: 0.6 successChance: 0.6
interactSuccessString: petting-success-reptile interactSuccessString: petting-success-reptile
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
- type: Bloodstream - type: Bloodstream
bloodMaxVolume: 50 bloodMaxVolume: 50
- type: Damageable - type: Damageable
@@ -1655,6 +1668,7 @@
successChance: 0.5 successChance: 0.5
interactSuccessString: petting-success-tarantula interactSuccessString: petting-success-tarantula
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
- type: NoSlip - type: NoSlip
- type: Spider - type: Spider
- type: IgnoreSpiderWeb - type: IgnoreSpiderWeb
@@ -1834,6 +1848,7 @@
successChance: 0.2 # Low when undomesticated. successChance: 0.2 # Low when undomesticated.
interactSuccessString: petting-success-soft-floofy interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/raccoon_chatter.ogg path: /Audio/Animals/raccoon_chatter.ogg
- type: Grammar - type: Grammar
@@ -1890,6 +1905,7 @@
successChance: 0.5 successChance: 0.5
interactSuccessString: petting-success-soft-floofy interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg path: /Audio/Animals/fox_squeak.ogg
- type: Grammar - type: Grammar
@@ -1951,6 +1967,7 @@
- type: InteractionPopup - type: InteractionPopup
interactSuccessString: petting-success-dog interactSuccessString: petting-success-dog
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/small_dog_bark_happy.ogg path: /Audio/Animals/small_dog_bark_happy.ogg
- type: Grammar - type: Grammar
@@ -2100,6 +2117,7 @@
successChance: 0.7 successChance: 0.7
interactSuccessString: petting-success-cat interactSuccessString: petting-success-cat
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/cat_meow.ogg path: /Audio/Animals/cat_meow.ogg
- type: Grammar - type: Grammar
@@ -2152,6 +2170,7 @@
successChance: 0.7 successChance: 0.7
interactSuccessString: petting-success-space-cat interactSuccessString: petting-success-space-cat
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/cat_meow.ogg path: /Audio/Animals/cat_meow.ogg
- type: Respirator #It just works? - type: Respirator #It just works?
@@ -2225,6 +2244,7 @@
successChance: 0.9 successChance: 0.9
interactSuccessString: petting-success-sloth interactSuccessString: petting-success-sloth
interactFailureString: petting-failure-sloth interactFailureString: petting-failure-sloth
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/sloth_squeak.ogg path: /Audio/Animals/sloth_squeak.ogg
- type: Grammar - type: Grammar
@@ -2282,6 +2302,7 @@
interactDelay: 1.5 # Avoids overlapping SFX due to spam - these SFX are a little longer than the typical 1 second. interactDelay: 1.5 # Avoids overlapping SFX due to spam - these SFX are a little longer than the typical 1 second.
interactSuccessString: petting-success-soft-floofy interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/ferret_happy.ogg path: /Audio/Animals/ferret_happy.ogg
- type: Grammar - type: Grammar
@@ -2412,6 +2433,7 @@
successChance: 0.4 successChance: 0.4
interactSuccessString: petting-success-hamster interactSuccessString: petting-success-hamster
interactFailureString: petting-failure-hamster interactFailureString: petting-failure-hamster
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg path: /Audio/Animals/fox_squeak.ogg
- type: Bloodstream - type: Bloodstream
@@ -2482,6 +2504,7 @@
successChance: 0.7 successChance: 0.7
interactSuccessString: petting-success-pig interactSuccessString: petting-success-pig
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/pig_oink.ogg path: /Audio/Animals/pig_oink.ogg
- type: ReplacementAccent - type: ReplacementAccent

View File

@@ -211,6 +211,7 @@
successChance: 0.9 successChance: 0.9
interactSuccessString: petting-success-bingus interactSuccessString: petting-success-bingus
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/cat_meow.ogg path: /Audio/Animals/cat_meow.ogg
- type: Grammar - type: Grammar
@@ -273,6 +274,7 @@
successChance: 0.5 successChance: 0.5
interactSuccessString: petting-success-dog interactSuccessString: petting-success-dog
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/small_dog_bark_happy.ogg path: /Audio/Animals/small_dog_bark_happy.ogg
- type: Grammar - type: Grammar
@@ -312,6 +314,7 @@
successChance: 1 successChance: 1
interactSuccessString: petting-success-sloth interactSuccessString: petting-success-sloth
interactFailureString: petting-failure-sloth interactFailureString: petting-failure-sloth
interactSuccessSpawn: EffectHearts
- type: Grammar - type: Grammar
attributes: attributes:
proper: true proper: true
@@ -368,6 +371,7 @@
successChance: 0.7 successChance: 0.7
interactSuccessString: petting-success-dog interactSuccessString: petting-success-dog
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/small_dog_bark_happy.ogg path: /Audio/Animals/small_dog_bark_happy.ogg
- type: Grammar - type: Grammar
@@ -389,6 +393,7 @@
successChance: 1.0 # Hey, c'mon, this is Morty we're talking about here. successChance: 1.0 # Hey, c'mon, this is Morty we're talking about here.
interactSuccessString: petting-success-possum interactSuccessString: petting-success-possum
interactFailureString: petting-failure-possum interactFailureString: petting-failure-possum
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/snake_hiss.ogg path: /Audio/Animals/snake_hiss.ogg
- type: Grammar - type: Grammar
@@ -410,6 +415,7 @@
successChance: 0.7 successChance: 0.7
interactSuccessString: petting-success-raccoon interactSuccessString: petting-success-raccoon
interactFailureString: petting-failure-raccoon interactFailureString: petting-failure-raccoon
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/raccoon_chatter.ogg path: /Audio/Animals/raccoon_chatter.ogg
- type: Grammar - type: Grammar
@@ -431,6 +437,7 @@
successChance: 1 successChance: 1
interactSuccessString: petting-success-pig interactSuccessString: petting-success-pig
interactFailureString: petting-failure-pig interactFailureString: petting-failure-pig
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/pig_oink.ogg path: /Audio/Animals/pig_oink.ogg
- type: Grammar - type: Grammar
@@ -452,6 +459,7 @@
successChance: 1 successChance: 1
interactSuccessString: petting-success-soft-floofy interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg path: /Audio/Animals/fox_squeak.ogg
- type: Butcherable - type: Butcherable
@@ -492,6 +500,7 @@
successChance: 1 successChance: 1
interactSuccessString: petting-success-hamster interactSuccessString: petting-success-hamster
interactFailureString: petting-failure-hamster interactFailureString: petting-failure-hamster
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg path: /Audio/Animals/fox_squeak.ogg
- type: Butcherable - type: Butcherable
@@ -518,6 +527,7 @@
successChance: 0.5 # spider is mean successChance: 0.5 # spider is mean
interactSuccessString: petting-success-tarantula interactSuccessString: petting-success-tarantula
interactFailureString: petting-failure-hamster interactFailureString: petting-failure-hamster
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/snake_hiss.ogg path: /Audio/Animals/snake_hiss.ogg
- type: NpcFactionMember - type: NpcFactionMember
@@ -592,7 +602,8 @@
- type: InteractionPopup - type: InteractionPopup
successChance: 0.8 successChance: 0.8
interactSuccessString: petting-success-kangaroo interactSuccessString: petting-success-kangaroo
interactFailureString: petting-failure-kangaroo interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound: interactSuccessSound:
path: /Audio/Animals/kangaroo_grunt.ogg path: /Audio/Animals/kangaroo_grunt.ogg
- type: Grammar - type: Grammar

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

View File

@@ -0,0 +1,24 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Created by TheShuEd (github) for ss14",
"states": [
{
"name": "hearts",
"delays": [
[
0.15,
0.15,
0.15,
0.15,
0.15,
0.15
]
]
}
]
}