Animals make hearts when you pet them (#20859)
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
16
Resources/Prototypes/Entities/Effects/hearts.yml
Normal file
16
Resources/Prototypes/Entities/Effects/hearts.yml
Normal 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
|
||||
@@ -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
|
||||
@@ -204,6 +205,7 @@
|
||||
successChance: 0.8
|
||||
interactSuccessString: petting-success-bird
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/chicken_cluck_happy.ogg
|
||||
- type: Bloodstream
|
||||
@@ -290,6 +292,7 @@
|
||||
successChance: 0.9
|
||||
interactSuccessString: petting-success-bird
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/duck_quack_happy.ogg
|
||||
- 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.
|
||||
interactSuccessString: petting-success-soft-floofy
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/cow_moo.ogg
|
||||
- type: Perishable
|
||||
@@ -523,6 +527,7 @@
|
||||
successChance: 0.5
|
||||
interactSuccessString: petting-success-crab
|
||||
interactFailureString: petting-failure-crab
|
||||
interactSuccessSpawn: EffectHearts
|
||||
- type: Bloodstream
|
||||
bloodMaxVolume: 50
|
||||
- type: Tag
|
||||
@@ -598,6 +603,7 @@
|
||||
successChance: 0.2
|
||||
interactSuccessString: petting-success-goat
|
||||
interactFailureString: petting-failure-goat
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/goat_bah.ogg
|
||||
- type: NpcFactionMember
|
||||
@@ -650,6 +656,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
|
||||
@@ -1160,6 +1167,7 @@
|
||||
successChance: 0.3
|
||||
interactSuccessString: petting-success-reptile
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/lizard_happy.ogg
|
||||
- type: Bloodstream
|
||||
@@ -1215,6 +1223,7 @@
|
||||
successChance: 0.3
|
||||
interactSuccessString: petting-success-generic
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
- type: Bloodstream
|
||||
bloodMaxVolume: 50
|
||||
|
||||
@@ -1259,6 +1268,7 @@
|
||||
successChance: 0.6
|
||||
interactSuccessString: petting-success-frog
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/frog_ribbit.ogg
|
||||
- type: Bloodstream
|
||||
@@ -1310,6 +1320,7 @@
|
||||
successChance: 0.6
|
||||
interactSuccessString: petting-success-bird
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/parrot_raught.ogg
|
||||
- type: Bloodstream
|
||||
@@ -1353,6 +1364,7 @@
|
||||
successChance: 0.5
|
||||
interactSuccessString: petting-success-bird
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/penguin_squawk.ogg
|
||||
- type: Tag
|
||||
@@ -1578,6 +1590,7 @@
|
||||
successChance: 0.6
|
||||
interactSuccessString: petting-success-reptile
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
- type: Bloodstream
|
||||
bloodMaxVolume: 50
|
||||
- type: Damageable
|
||||
@@ -1655,6 +1668,7 @@
|
||||
successChance: 0.5
|
||||
interactSuccessString: petting-success-tarantula
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
- type: NoSlip
|
||||
- type: Spider
|
||||
- type: IgnoreSpiderWeb
|
||||
@@ -1834,6 +1848,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
|
||||
@@ -1890,6 +1905,7 @@
|
||||
successChance: 0.5
|
||||
interactSuccessString: petting-success-soft-floofy
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/fox_squeak.ogg
|
||||
- type: Grammar
|
||||
@@ -1951,6 +1967,7 @@
|
||||
- type: InteractionPopup
|
||||
interactSuccessString: petting-success-dog
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/small_dog_bark_happy.ogg
|
||||
- type: Grammar
|
||||
@@ -2100,6 +2117,7 @@
|
||||
successChance: 0.7
|
||||
interactSuccessString: petting-success-cat
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/cat_meow.ogg
|
||||
- type: Grammar
|
||||
@@ -2152,6 +2170,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?
|
||||
@@ -2225,6 +2244,7 @@
|
||||
successChance: 0.9
|
||||
interactSuccessString: petting-success-sloth
|
||||
interactFailureString: petting-failure-sloth
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/sloth_squeak.ogg
|
||||
- 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.
|
||||
interactSuccessString: petting-success-soft-floofy
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/ferret_happy.ogg
|
||||
- type: Grammar
|
||||
@@ -2412,6 +2433,7 @@
|
||||
successChance: 0.4
|
||||
interactSuccessString: petting-success-hamster
|
||||
interactFailureString: petting-failure-hamster
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/fox_squeak.ogg
|
||||
- type: Bloodstream
|
||||
@@ -2482,6 +2504,7 @@
|
||||
successChance: 0.7
|
||||
interactSuccessString: petting-success-pig
|
||||
interactFailureString: petting-failure-generic
|
||||
interactSuccessSpawn: EffectHearts
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/pig_oink.ogg
|
||||
- type: ReplacementAccent
|
||||
|
||||
@@ -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
|
||||
|
||||
BIN
Resources/Textures/Effects/hearts.rsi/hearts.png
Normal file
BIN
Resources/Textures/Effects/hearts.rsi/hearts.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 734 B |
24
Resources/Textures/Effects/hearts.rsi/meta.json
Normal file
24
Resources/Textures/Effects/hearts.rsi/meta.json
Normal 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
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user