From 9bb62181de5d0dfe74d547e157745bbb09cad84c Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Thu, 19 Oct 2023 06:55:30 +0300 Subject: [PATCH] Added fun: Darts (#20582) * add textures * fix cargo/cargo-fun.ftl * fix cargo/cargo-fun.ftl again * update icons and resize hitbox * really fixed cargo.ftl * fix soundSpecifier * balance changes: solution transfer has been reduced from 2 to 1. Now the transfer does not work on targets wearing anything in the outerclothing slot * add hypodart to uplink * return of darts solution capacity to 2u * Update uplink-catalog.ftl * Update uplink_catalog.yml * Update darts.yml * remove hypodart sprite * Update darts.yml * Update fun.yml * add random popups component, resprite dartboard * localize darts * fix * Update darts.yml --- .../Components/DamageRandomPopupComponent.cs | 13 ++ .../Damage/Systems/DamageRandomPopupSystem.cs | 27 +++ Resources/Locale/en-US/darts/darts-popup.ftl | 6 + .../prototypes/catalog/cargo/cargo-fun.ftl | 7 +- .../catalog/fills/crates/fun-crates.ftl | 3 + .../Prototypes/Catalog/Cargo/cargo_fun.yml | 10 + .../Catalog/Fills/Boxes/general.yml | 27 ++- .../Prototypes/Catalog/Fills/Crates/fun.yml | 17 ++ .../Prototypes/Entities/Objects/Fun/darts.yml | 176 ++++++++++++++++++ .../Objects/Fun/Darts/dart_blue.rsi/icon.png | Bin 0 -> 230 bytes .../Fun/Darts/dart_blue.rsi/inhand-left.png | Bin 0 -> 230 bytes .../Fun/Darts/dart_blue.rsi/inhand-right.png | Bin 0 -> 228 bytes .../Objects/Fun/Darts/dart_blue.rsi/meta.json | 22 +++ .../Fun/Darts/dart_purple.rsi/icon.png | Bin 0 -> 235 bytes .../Fun/Darts/dart_purple.rsi/inhand-left.png | Bin 0 -> 233 bytes .../Darts/dart_purple.rsi/inhand-right.png | Bin 0 -> 231 bytes .../Fun/Darts/dart_purple.rsi/meta.json | 22 +++ .../Objects/Fun/Darts/dart_red.rsi/icon.png | Bin 0 -> 236 bytes .../Fun/Darts/dart_red.rsi/inhand-left.png | Bin 0 -> 233 bytes .../Fun/Darts/dart_red.rsi/inhand-right.png | Bin 0 -> 232 bytes .../Objects/Fun/Darts/dart_red.rsi/meta.json | 22 +++ .../Fun/Darts/dart_yellow.rsi/icon.png | Bin 0 -> 228 bytes .../Fun/Darts/dart_yellow.rsi/inhand-left.png | Bin 0 -> 233 bytes .../Darts/dart_yellow.rsi/inhand-right.png | Bin 0 -> 231 bytes .../Fun/Darts/dart_yellow.rsi/meta.json | 22 +++ .../Objects/Fun/Darts/target.rsi/meta.json | 14 ++ .../Fun/Darts/target.rsi/target_dart.png | Bin 0 -> 872 bytes .../Objects/Storage/boxes.rsi/darts.png | Bin 0 -> 183 bytes .../Objects/Storage/boxes.rsi/meta.json | 5 +- 29 files changed, 389 insertions(+), 4 deletions(-) create mode 100644 Content.Server/Damage/Components/DamageRandomPopupComponent.cs create mode 100644 Content.Server/Damage/Systems/DamageRandomPopupSystem.cs create mode 100644 Resources/Locale/en-US/darts/darts-popup.ftl create mode 100644 Resources/Prototypes/Entities/Objects/Fun/darts.yml create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/icon.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/meta.json create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/icon.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/meta.json create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_red.rsi/icon.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_red.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_red.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_red.rsi/meta.json create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/icon.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/meta.json create mode 100644 Resources/Textures/Objects/Fun/Darts/target.rsi/meta.json create mode 100644 Resources/Textures/Objects/Fun/Darts/target.rsi/target_dart.png create mode 100644 Resources/Textures/Objects/Storage/boxes.rsi/darts.png diff --git a/Content.Server/Damage/Components/DamageRandomPopupComponent.cs b/Content.Server/Damage/Components/DamageRandomPopupComponent.cs new file mode 100644 index 0000000000..bcc7f5684b --- /dev/null +++ b/Content.Server/Damage/Components/DamageRandomPopupComponent.cs @@ -0,0 +1,13 @@ +using Content.Server.Damage.Systems; + +namespace Content.Server.Damage.Components; + +[RegisterComponent, Access(typeof(DamageRandomPopupSystem))] +/// +/// Outputs a random pop-up from the list when an object receives damage +/// +public sealed partial class DamageRandomPopupComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public List Popups = new(); +} diff --git a/Content.Server/Damage/Systems/DamageRandomPopupSystem.cs b/Content.Server/Damage/Systems/DamageRandomPopupSystem.cs new file mode 100644 index 0000000000..8bdbf84147 --- /dev/null +++ b/Content.Server/Damage/Systems/DamageRandomPopupSystem.cs @@ -0,0 +1,27 @@ +using Content.Server.Damage.Components; +using Content.Server.Popups; +using Content.Shared.Damage; +using Robust.Shared.Player; +using Robust.Shared.Random; + +namespace Content.Server.Damage.Systems; + +/// +/// Outputs a random pop-up from the strings list when an object receives damage +/// +public sealed class DamageRandomPopupSystem : EntitySystem +{ + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnDamageChange); + } + + private void OnDamageChange(EntityUid uid, DamageRandomPopupComponent component, DamageChangedEvent args) + { + _popupSystem.PopupEntity(Loc.GetString(_random.Pick(component.Popups)), uid); + } +} diff --git a/Resources/Locale/en-US/darts/darts-popup.ftl b/Resources/Locale/en-US/darts/darts-popup.ftl new file mode 100644 index 0000000000..82bf7fde53 --- /dev/null +++ b/Resources/Locale/en-US/darts/darts-popup.ftl @@ -0,0 +1,6 @@ +darts-popup-bullseye = Bullseye! 50 points! +darts-popup-25 = 25 points +darts-popup-10 = 10 points +darts-popup-5 = 5 points +darts-popup-1 = 1 point +darts-popup-miss = Miss \ No newline at end of file diff --git a/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-fun.ftl b/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-fun.ftl index d4c1d9ddf6..018a44a8aa 100644 --- a/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-fun.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/cargo/cargo-fun.ftl @@ -17,7 +17,10 @@ ent-FunATV = { ent-CrateFunATV } .desc = { ent-CrateFunATV.desc } ent-FunWaterGuns = { ent-CrateFunWaterGuns } - .desc = { ent-CrateFunWaterGuns.desc } + .desc = { ent-CrateFunWaterGuns.desc } ent-FunParty = { ent-CrateFunParty } - .desc = { ent-CrateFunParty.desc } \ No newline at end of file + .desc = { ent-CrateFunParty.desc } + +ent-FunDartsSet = { ent-CrateFunDartsSet } + .desc = { ent-CrateFunDartsSet.desc } diff --git a/Resources/Locale/en-US/prototypes/catalog/fills/crates/fun-crates.ftl b/Resources/Locale/en-US/prototypes/catalog/fills/crates/fun-crates.ftl index 27bc24853c..1e5e069352 100644 --- a/Resources/Locale/en-US/prototypes/catalog/fills/crates/fun-crates.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/fills/crates/fun-crates.ftl @@ -51,3 +51,6 @@ ent-CrateFunBikeHornImplants = Bike Horn Implants ent-CrateFunMysteryFigurines = Mystery Figure Crate .desc = A collection of 10 Mystery Figurine boxes. Duplicates non refundable. + +ent-CrateFunDartsSet = Dartboard Box Set + .desc = A box with everything you need for a fun game of darts. diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml index 5ea658ffe5..e114545b9d 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml @@ -186,4 +186,14 @@ product: CrateFunMysteryFigurines cost: 4000 category: Fun + group: market + +- type: cargoProduct + id: FunDartsSet + icon: + sprite: Objects/Fun/Darts/dart_red.rsi + state: icon + product: CrateFunDartsSet + cost: 900 + category: Fun group: market \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index 78d04343b6..d05dfbb4ed 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -425,4 +425,29 @@ - type: Sprite state: box - type: RadiationBlockingContainer - resistance: 2 \ No newline at end of file + resistance: 2 + +- type: entity + name: darts box + parent: BoxCardboard + id: BoxDarts + description: This box filled with colorful darts. + components: + - type: Item + size: 40 + - type: StorageFill + contents: + - id: Dart + amount: 5 + - id: DartBlue + amount: 5 + - id: DartPurple + amount: 5 + - id: DartYellow + amount: 5 + - type: Storage + capacity: 40 + - type: Sprite + layers: + - state: box + - state: darts \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index 23a178b094..48877fd889 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -290,3 +290,20 @@ - id: MysteryFigureBox amount: 15 prob: 0.05 + +- type: entity + name: Dartboard Box Set + description: A box with everything you need for a fun game of darts. + id: CrateFunDartsSet + parent: CratePlastic + components: + - type: StorageFill + contents: + - id: TargetDarts + amount: 1 + - id: BoxDarts + amount: 1 + - id: BoxDarts + amount: 1 + prob: 0.05 + diff --git a/Resources/Prototypes/Entities/Objects/Fun/darts.yml b/Resources/Prototypes/Entities/Objects/Fun/darts.yml new file mode 100644 index 0000000000..bd4163d974 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Fun/darts.yml @@ -0,0 +1,176 @@ +- type: entity + name: dart + description: light throwing dart for playing darts. Don't get in the eye! + parent: BaseItem + id: Dart + components: + - type: EmbeddableProjectile + minimumSpeed: 3 + removalTime: 0.5 + offset: 0.0,0.0 + - type: ThrowingAngle + angle: 315 + - type: Fixtures + fixtures: + fix1: + shape: !type:PolygonShape + vertices: + - -0.20,0.10 + - -0.10,0.20 + - 0.20,-0.10 + - 0.10,-0.20 + density: 20 + mask: + - ItemMask + restitution: 0.3 + friction: 0.2 + - type: Sprite + sprite: Objects/Fun/Darts/dart_red.rsi + state: icon + - type: MeleeWeapon + damage: + types: + Piercing: 2 + angle: 0 + animation: WeaponArcThrust + soundHit: + path: /Audio/Weapons/pierce.ogg + - type: DamageOtherOnHit + damage: + types: + Piercing: 4 + - type: Item + size: 2 + sprite: Objects/Fun/Darts/dart_red.rsi + - type: ItemCooldown + - type: SolutionContainerManager + solutions: + melee: + maxVol: 2 + - type: MeleeChemicalInjector + solution: melee + - type: RefillableSolution + solution: melee + - type: InjectableSolution + solution: melee + - type: SolutionInjectOnCollide + transferAmount: 2 + blockSlots: OUTERCLOTHING + - type: SolutionTransfer + maxTransferAmount: 2 + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 #excess damage avoids cost of spawning entities. + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + PartRodMetal1: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 1 + fillBaseName: dart + +- type: entity + parent: Dart + id: DartBlue + components: + - type: Sprite + sprite: Objects/Fun/Darts/dart_blue.rsi + - type: Item + sprite: Objects/Fun/Darts/dart_blue.rsi + +- type: entity + parent: Dart + id: DartPurple + components: + - type: Sprite + sprite: Objects/Fun/Darts/dart_purple.rsi + - type: Item + sprite: Objects/Fun/Darts/dart_purple.rsi + +- type: entity + parent: Dart + id: DartYellow + components: + - type: Sprite + sprite: Objects/Fun/Darts/dart_yellow.rsi + - type: Item + sprite: Objects/Fun/Darts/dart_yellow.rsi + +- type: entity + name: dartboard + id: TargetDarts + parent: BaseStructureDynamic + description: A target for playing darts. + components: + - type: Sprite + sprite: Objects/Fun/Darts/target.rsi + state: target_dart + noRot: true + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 50 + mask: + - FullTileMask + layer: + - WallLayer + - type: InteractionOutline + - type: Physics + - type: Damageable + - type: DamageRandomPopup + popups: + - darts-popup-bullseye + - darts-popup-25 + - darts-popup-10 + - darts-popup-10 + - darts-popup-5 + - darts-popup-5 + - darts-popup-5 + - darts-popup-1 + - darts-popup-1 + - darts-popup-1 + - darts-popup-miss + - darts-popup-miss + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 500 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank: + min: 5 + max: 5 + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/tree_fell.ogg + - !type:DoActsBehavior + acts: [ "Destruction" ] diff --git a/Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/icon.png b/Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2a1cfdbb2b1564a7c9c7a5f3792eb2ed0b5fdab3 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}3p`yMLn2y} z6C_v{Cy4Yk1sZUjV3@Oc*}vt}B7L4@{L(w*XzIRU!lDTMz2E*v8#1!BeU_J)C&d+T zxbBkEgG*=9+#ZI@OSHt-CV;?%b#IqOg-qc2aw+@2@tWDc=LfkP1ik9GeN2eQslVR9 zCRb1Gw9Y0WMV^>hH_xo7`o?+Alv2EM=F7*j9D+fOQhYA#RK-85qL1 W=_qh}vYP_k%HZkh=d#Wzp$Py$+g4Nn literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/inhand-left.png b/Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..21a72d130376f7c29180606ee7ff4cb2da51f41b GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|7I?ZihE&XX zd&`io$v}ej!J`&y>F>!8dE^dWJi6LK+I`)jYk}eHSq2TC)bDTKURn9_+bkiVwga;t zfBp2QyiN7l6Z;ygIkT;DIEz1vbDxNf-+FjPQSkct@7RlimzPNdzx$Q-G4<_BnOCAY zlgzz1XFuC>SAMr%;`^UKLx6xo^;Jw<(46DTUH%&zJYCJS=)Yt{=#-r`!CoF_l?)7v Zsu<0^t^bxj3JwIR_H^}gS?83{1ORWETdDv6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/inhand-right.png b/Resources/Textures/Objects/Fun/Darts/dart_blue.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..6913eafd629c3488a58f8ed3bda3246e968b6978 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|=6Sj}hE&XX zduz8~lY;=mg~J?0M!%F7vUwY*Y!ppCJ|XOc-Vw1GkHgq&_3zL9+p=4e5vVET%H8L0 zXMe1YStL~cz4CNz^qnIYf9yTPHsQA!@99~eEKFTLKEA?pdREc>YkIo(3igKHje1+N za8Z}-Q31L0;TaPz{sfuA!0pZ@T0e>o3Z)1)gK z=5Gh7`gnbPJP-fA|4WWYylS}X-XE-+J&AYP+GTM+4Y=G6 gY5-l;kjKElb4#~dWsb}Vpo1AaUHx3vIVCg!0FK96>;M1& literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/inhand-left.png b/Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..21066439d1e2bbbb0f8354efb720c2dc315a3d5c GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|7JIrlhE&XX zd&`io$w7qW!qKit1zOTs-h7WTb9`3luI%O9zTk<-t*C~B45$3>y)HMNnPWa%2&nPE z?9(s5{V8u#efGq@#wzAX>J6c1&*tka$Xm5W`d7%4r@vm-EjV%d3UBSI*;>&xH-A>} ze&sSdDZRACw|Lw4m6bc5SKH{`&8Q zwX$>dLqaw#mpJtJCzq~~l|9fHAeiHFPSf^{&A-f@|5@yf8}|O^SYFn3xpK<>ynFkB a(m(GRXW9JUyD$1WNU^7@pUXO@geCx1=U$%x literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/meta.json b/Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/meta.json new file mode 100644 index 0000000000..a219ffdd17 --- /dev/null +++ b/Resources/Textures/Objects/Fun/Darts/dart_purple.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by TheShuEd (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Fun/Darts/dart_red.rsi/icon.png b/Resources/Textures/Objects/Fun/Darts/dart_red.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1fdb737923da81901c89f55ca4f0d12bf68771a4 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}%RF5iLn2y} z6C_v{Cy4Yk1sZUjU~qrS^gsBtj#`n)NsszPvy>w|0{2`s{J8(q_jI27?~M&kXw)rg z`@5vI;rqXzJ>`~5CEgWz85#h=oec%cEkq|1_>2=G! zSA=iyyr-d>GwX9%ep&3Hd!HFW#xMwYUD;W4>WPh=+OPSIhVh~Tf6pISwdl;#*+EX5 dPBJqHT;-0vZ5R65eR(fPwWq6}%Q~loCIE%vUvvNf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Darts/dart_red.rsi/inhand-right.png b/Resources/Textures/Objects/Fun/Darts/dart_red.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..392b36fcc5a3168bb0ca0ec7fe0c36e6c812ba74 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|7J0fjhE&XX zduuOmQ-A=&gLYZ(2^S2R)`}KeEMeVfX2ig%Y{0^~&OvSt+uwcv^u7n*Tgn2|RW@Em$XBqe&(FjS9oeC3g73cH9Qxp_4?_HOONiZ-|oD< ztYlw6;L&+W9R1I=x14zK2WSk)Bq7V?Up9RHvHa;j;Xh{>zWr04b4%0jdEmcYmH(L- b7@kx!mmjwamCU-l0HoT})z4*}Q$iB}>JwbE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Darts/dart_red.rsi/meta.json b/Resources/Textures/Objects/Fun/Darts/dart_red.rsi/meta.json new file mode 100644 index 0000000000..a219ffdd17 --- /dev/null +++ b/Resources/Textures/Objects/Fun/Darts/dart_red.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by TheShuEd (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/icon.png b/Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3e4754c2398b11e208dfdfbf4d3706e0599ca0fd GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}^E_P~Ln2y} z6C_v{Cy4Yk1sZUjVAvj(_HX&LNS`MeL0gy1Q;zTmtl4G#ZT})p`NOw&^YE;i_J2j9 zeWqeU)UFvH|IPI0`F_48DFFy7Hrvn63UoBGxGVen|Nq5j{!g)Lni%B%;q*rXj!r|v z4huik(>j}k6nSP$(@XpF;|2HO-Qia}`9&JIEX%Z3%4L+RloLBZ3yMWtHGr@aN?BujQ4MJKx260W~t@ z%U!?x`M%_|8I%8icv%p~m*_oXcKxP?MXNTidl?+Z_j>v7#yv7Y*T1Y>@hazI>i5rv zSF~@au$Zo_dh|VFfeeazKXF+Es~QL{(JtwjP+a{|I!me1D}2J)l|Is dgpr}+6{{nY+Yepid3QjnJzf1=);T3K0RZ$uTvGr5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/inhand-right.png b/Resources/Textures/Objects/Fun/Darts/dart_yellow.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..fbbfe1e5a8b884eeceb0ca2daa77c8e7baf6143e GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|7J9lkhE&XX zduy*?QveUcgLdr$Y(9q+{0?Yb<2lG97Ba83$H|j--2vMUxnH%lML#tsPXX#;;4|TU z`|IovUA@50P9fn!+#ZRVv=*^LFOPx&B1uF+R9J=WR!wUYQ4~GZ;Gzli11ceff`&Fs6iQ1`C={`D8k&uP{Du}J8zG^! zLP6-FZAhS-Z1gt-#!Y05P(&zL#8S|Nwy01w1O;tiri(HGbuJ!6qN}vix}+h!=o23Eqv$f$ZuVr zFpzJr4I#868TMogGO`63aZeF(PZ0p%^LgR(c~K4|uvp%AtQ8)%4$$d|yc|ft=ko#p zy2JIHC(qm<2S`L-6S0!Y003eI8EGNJoUn7j;sAeoGvb~iPD({a&Lgjh$ZH}K=oS_M zr4Jtg*q@%j=bgt&Dud_TvlNXOQbDns3UET)Q$${CoNhIfLTPi9Sx>f0(FkG%*=<;~ zu97B#?v11|1z_#~2zMB#sQ@Wf#74Ak(&K`RWOT2wxH*a`fLYF`CB8X|ye2|XR0s<{ zSc7U?Kr`eu5pxHPai?%y1IcIv*|XfzY4e(h@SQ!Df52KRZ3{T8RJ&@bic?KPS_oMR zs@V2UlO3OG%Mx)R-kWO`@+S`3q13vLF-6f8{#QBzeWVsiNi zLL~>Gl7phC?8hTkkS+bcrm9$)4mt|3wPkC4L4W)D4R%Whcv3x&9&g=xYN^|6Lu{`U zYt%zp2r+Hk(!C=-C6&DPOY{|7hdSPc~_0LKFRqXKwaf!}QH-^5R@r>^E8p!lW$0000|aAO@hX$^U5cECdqENYWUHfnVGry)Aw{9DfO}-877#~Y%&ZC(<($+ UBFraG16t1D>FVdQ&MBb@0MQdZ!T