Animals make hearts when you pet them (#20859)
This commit is contained in:
parent
14cf5a788f
commit
457d6df806
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 |
|
|
@ -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
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in New Issue