Animals make hearts when you pet them (#20859)

This commit is contained in:
Ed 2023-10-13 20:34:18 +03:00 committed by Debug
parent 14cf5a788f
commit 457d6df806
7 changed files with 94 additions and 1 deletions

View File

@ -1,4 +1,5 @@
using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
namespace Content.Server.Interaction.Components;
@ -40,6 +41,18 @@ public sealed partial class InteractionPopupComponent : Component
[DataField("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>
/// Chance that an interaction attempt will succeed.
/// 1 = always play "success" popup and sound.

View File

@ -58,6 +58,9 @@ public sealed class InteractionPopupSystem : EntitySystem
if (component.InteractSuccessSound != null)
sfx = component.InteractSuccessSound.GetSound();
if (component.InteractSuccessSpawn != null)
Spawn(component.InteractSuccessSpawn, Transform(uid).MapPosition);
}
else
{
@ -66,6 +69,9 @@ public sealed class InteractionPopupSystem : EntitySystem
if (component.InteractFailureSound != null)
sfx = component.InteractFailureSound.GetSound();
if (component.InteractFailureSpawn != null)
Spawn(component.InteractFailureSpawn, Transform(uid).MapPosition);
}
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
interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-bat
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg
- type: SentienceTarget
@ -214,6 +215,7 @@
successChance: 0.8
interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/chicken_cluck_happy.ogg
- type: Bloodstream
@ -300,6 +302,7 @@
successChance: 0.9
interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/duck_quack_happy.ogg
- type: Bloodstream
@ -479,6 +482,7 @@
interactDelay: 2 # Avoids overlapping SFX due to spam - these SFX are a little longer than the typical 1 second.
interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/cow_moo.ogg
- type: Perishable
@ -533,6 +537,7 @@
successChance: 0.5
interactSuccessString: petting-success-crab
interactFailureString: petting-failure-crab
interactSuccessSpawn: EffectHearts
- type: Bloodstream
bloodMaxVolume: 50
- type: Tag
@ -608,6 +613,7 @@
successChance: 0.2
interactSuccessString: petting-success-goat
interactFailureString: petting-failure-goat
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/goat_bah.ogg
- type: NpcFactionMember
@ -660,6 +666,7 @@
successChance: 0.1 # Yeah, good luck with that.
interactSuccessString: petting-success-goose
interactFailureString: petting-failure-goose
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/goose_honk.ogg
- type: Bloodstream
@ -1171,6 +1178,7 @@
successChance: 0.3
interactSuccessString: petting-success-reptile
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/lizard_happy.ogg
- type: Bloodstream
@ -1226,6 +1234,7 @@
successChance: 0.3
interactSuccessString: petting-success-generic
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
- type: Bloodstream
bloodMaxVolume: 50
@ -1270,6 +1279,7 @@
successChance: 0.6
interactSuccessString: petting-success-frog
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/frog_ribbit.ogg
- type: Bloodstream
@ -1321,6 +1331,7 @@
successChance: 0.6
interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/parrot_raught.ogg
- type: Bloodstream
@ -1364,6 +1375,7 @@
successChance: 0.5
interactSuccessString: petting-success-bird
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/penguin_squawk.ogg
- type: Tag
@ -1589,6 +1601,7 @@
successChance: 0.6
interactSuccessString: petting-success-reptile
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
- type: Bloodstream
bloodMaxVolume: 50
- type: Damageable
@ -1666,6 +1679,7 @@
successChance: 0.5
interactSuccessString: petting-success-tarantula
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
- type: NoSlip
- type: Spider
- type: IgnoreSpiderWeb
@ -1846,6 +1860,7 @@
successChance: 0.2 # Low when undomesticated.
interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/raccoon_chatter.ogg
- type: Grammar
@ -1902,6 +1917,7 @@
successChance: 0.5
interactSuccessString: petting-success-soft-floofy
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg
- type: Grammar
@ -1963,6 +1979,7 @@
- type: InteractionPopup
interactSuccessString: petting-success-dog
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/small_dog_bark_happy.ogg
- type: Grammar
@ -2113,6 +2130,7 @@
successChance: 0.7
interactSuccessString: petting-success-cat
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/cat_meow.ogg
- type: Grammar
@ -2165,6 +2183,7 @@
successChance: 0.7
interactSuccessString: petting-success-space-cat
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/cat_meow.ogg
- type: Respirator #It just works?
@ -2238,6 +2257,7 @@
successChance: 0.9
interactSuccessString: petting-success-sloth
interactFailureString: petting-failure-sloth
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/sloth_squeak.ogg
- type: Grammar
@ -2295,6 +2315,7 @@
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
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/ferret_happy.ogg
- type: Grammar
@ -2425,6 +2446,7 @@
successChance: 0.4
interactSuccessString: petting-success-hamster
interactFailureString: petting-failure-hamster
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg
- type: Bloodstream
@ -2495,6 +2517,7 @@
successChance: 0.7
interactSuccessString: petting-success-pig
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/pig_oink.ogg
- type: ReplacementAccent

View File

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