From 3b2a6eb27c79c9ca21dfdd50bfe1b7f7bca0c4b3 Mon Sep 17 00:00:00 2001 From: keslik Date: Thu, 26 Dec 2024 15:21:15 +0300 Subject: [PATCH] Add: Reindeer and snowman --- Resources/Locale/ru-RU/_white/new-year.ftl | 5 ++ .../Entities/Objects/Decoration/snowman.yml | 43 ++++++++++++++ .../_White/Entities/Mobs/Animal/mobs.yml | 56 ++++++++++++++++++ .../White/Mobs/Animals/reindeer.rsi/dead.png | Bin 0 -> 1036 bytes .../White/Mobs/Animals/reindeer.rsi/meta.json | 23 +++++++ .../Mobs/Animals/reindeer.rsi/reindeer.png | Bin 0 -> 3753 bytes .../Decoration/NewYear/snowman.rsi/meta.json | 14 +++++ .../NewYear/snowman.rsi/snowman.png | Bin 0 -> 912 bytes 8 files changed, 141 insertions(+) create mode 100644 Resources/Locale/ru-RU/_white/new-year.ftl create mode 100644 Resources/Prototypes/Entities/Objects/Decoration/snowman.yml create mode 100644 Resources/Textures/White/Mobs/Animals/reindeer.rsi/dead.png create mode 100644 Resources/Textures/White/Mobs/Animals/reindeer.rsi/meta.json create mode 100644 Resources/Textures/White/Mobs/Animals/reindeer.rsi/reindeer.png create mode 100644 Resources/Textures/White/Objects/Decoration/NewYear/snowman.rsi/meta.json create mode 100644 Resources/Textures/White/Objects/Decoration/NewYear/snowman.rsi/snowman.png diff --git a/Resources/Locale/ru-RU/_white/new-year.ftl b/Resources/Locale/ru-RU/_white/new-year.ftl new file mode 100644 index 0000000000..600c0197df --- /dev/null +++ b/Resources/Locale/ru-RU/_white/new-year.ftl @@ -0,0 +1,5 @@ +ent-MobReindeer = северный олень + .desc = А где Санта? + +ent-DecorationSnowman = снеговик + .desc = Кажется, он следит за тобой. diff --git a/Resources/Prototypes/Entities/Objects/Decoration/snowman.yml b/Resources/Prototypes/Entities/Objects/Decoration/snowman.yml new file mode 100644 index 0000000000..1b108d59f6 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Decoration/snowman.yml @@ -0,0 +1,43 @@ +- type: entity # WD + parent: BaseStructure + id: DecorationSnowman + name: snowman + description: It seems he is following you. + placement: + mode: AlignTileAny + components: + - type: Physics + bodyType: Static + - type: Transform + noRot: true + - type: Sprite + sprite: White/Objects/Decoration/NewYear/snowman.rsi + state: snowman + noRot: true + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.3 + density: 190 + mask: + - HighImpassable + - type: Damageable + damageContainer: StructuralInorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/Footsteps/snowstep3.ogg + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/star_hit.ogg" diff --git a/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml b/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml index 2da6687b4b..c34526928a 100644 --- a/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml +++ b/Resources/Prototypes/_White/Entities/Mobs/Animal/mobs.yml @@ -78,3 +78,59 @@ - type: FootstepModifier footstepSoundCollection: path: /Audio/Effects/hulk_step.ogg + +- type: entity + name: reindeer + parent: SimpleMobBase + id: MobReindeer + description: Where is Santa? + components: + - type: Sprite + drawdepth: Mobs + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: reindeer + sprite: White/Mobs/Animals/reindeer.rsi + - type: Tag + tags: + - DoorBumpOpener + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.40 + density: 400 + mask: + - MobMask + layer: + - MobLayer + - type: DamageStateVisuals + states: + Alive: + Base: reindeer + Dead: + Base: dead + - type: Butcherable + spawned: + - id: FoodMeat + amount: 5 + - type: InteractionPopup + successChance: 0.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/kangaroo_grunt.ogg + - type: Perishable + molsPerSecondPerUnitMass: 0.0015 + - type: NpcFactionMember + factions: + - Passive + - type: Body + prototype: AnimalRuminant + - type: HTN + rootTask: + task: RuminantCompound diff --git a/Resources/Textures/White/Mobs/Animals/reindeer.rsi/dead.png b/Resources/Textures/White/Mobs/Animals/reindeer.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..cda66cc28508de0755a434dc8ea908063bdca558 GIT binary patch literal 1036 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 TZ!|kz00000NkvXXu0mjf`X*A! literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Decoration/NewYear/snowman.rsi/meta.json b/Resources/Textures/White/Objects/Decoration/NewYear/snowman.rsi/meta.json new file mode 100644 index 0000000000..2d63ead19c --- /dev/null +++ b/Resources/Textures/White/Objects/Decoration/NewYear/snowman.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from ParadiseSS13 at https://github.com/ss220club/Paradise-SS220/blob/master/icons/obj/statue.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "snowman" + } + ] +} diff --git a/Resources/Textures/White/Objects/Decoration/NewYear/snowman.rsi/snowman.png b/Resources/Textures/White/Objects/Decoration/NewYear/snowman.rsi/snowman.png new file mode 100644 index 0000000000000000000000000000000000000000..85340cd3c3cf4de8fd36a8da9f331244233a2aa7 GIT binary patch literal 912 zcmV;B18@9^P)1U1^%;#9Jyd={B@&TXwr$R8{qTrfK@)+1Xi^mX<=ZF%<*DimR%Mq9~ImlTwC$ z48xFyVMzH-n?IIP${&@uKmNxbD(A!usH#e_Si~?4R8{4#Uw#7M*WXSk7K;-TFp&mK z)0B#$u&}UzX`0Oa{xbkS{PAah%m>g=Ita~xuIn-qiBPFja9wv~aoe`3R4VAY9;&lY z4CuNpHBIC7^%cvqcz%9ndwcs++|A7mD=RAqA;@O4RI63?_xA&t82dw{>$=?9+VZ~( zg#w0QaCdhHK(E&WAR3JljYcUH3f$k{lgs7&`9UB88TjZt7K`C|9_4bG&CSg~!0mRM za=FaT&JJ&HZvc3nM<$aQ3L;Pgnx^sc@`C4izR$MpKmh$VGxJVxxm+F@69}MGDh(vi zG>vMtif!AUfVA6fzk5y7czAdKpwsCDf*dPCUDstcoAtjJ7Z-hC!%WjO;GOpQ`FTpE zQlJpWYG8GBmB+_Nve_)nW)pyXK9A>lBoc{%_+GEa)6)||2-eote9fd%sp$cHh_0XV zX0u5?pZ^qpdwa{q#s=|te84Y+AeYMx1rZ3qwrx2#H}}ckY&MC-VngSATO6R(YK=T0 z14VdxdOFmfNF<2I<76_Kfp@ptMF=qvD}-QJ6QKYESt^wpcncv=6vaQ1KY&=4MXS}C z4nU{V89BLLuMa%K?gByx9LM40KOHixTNT<^{j^ii(cAfhRe=LP%SvZbEtyT-nAL=wbI5?01hlhtajzhg(XLolO zMNvM1u`COK^Ye26E-x%65#mw*!L|jFZ+cZ#{uBt;)3hz>rfYxiEqXI mK!#b^!rukp-?T6PYxXz2r2ppm{eVRP0000