From 7f74203c33abb2b6b0f0f945e97e075bd8698960 Mon Sep 17 00:00:00 2001 From: BIGZi0348 <118811750+bigzi0348@users.noreply.github.com> Date: Sat, 21 Sep 2024 17:10:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B0=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=BE=D1=82=D1=80=D0=B0=D0=B6=D0=B0?= =?UTF-8?q?=D0=B9=D0=BA=D0=B8=20(#6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Ghetto Mirror Shield * Protorypes for ghetto mirrors * locale * idk, works fine on my machine * forsenPls (cherry picked from commit 4505739fd9430bcc578da3dec932d9aa7ca933ca) --- .../Components/DamageableClothingComponent.cs | 25 +++++++ .../DamageableClothingUserComponent.cs | 16 +++++ .../DamageableClothingSystem.cs | 43 ++++++++++++ .../DamageableClothingUserSystem.cs | 46 +++++++++++++ ...clothing-outer-armor-reflective-ghetto.ftl | 2 + .../ru-RU/White/ghetto-mirror-shield.ftl | 2 + .../ClothingOuterArmorReflectiveGhetto.yml | 53 +++++++++++++++ .../Objects/Shields/MirrorShieldGhetto.yml | 62 ++++++++++++++++++ .../Crafting/Graphs/ghettoMirrorShield.yml | 43 ++++++++++++ .../Recipes/Crafting/ghettoMirrorShield.yml | 26 ++++++++ Resources/Prototypes/_White/tags.yml | 4 ++ .../equipped-OUTERCLOTHING.png | Bin 0 -> 576 bytes .../armor_reflect_ghetto.rsi/icon.png | Bin 0 -> 319 bytes .../armor_reflect_ghetto.rsi/inhand-left.png | Bin 0 -> 610 bytes .../armor_reflect_ghetto.rsi/inhand-right.png | Bin 0 -> 607 bytes .../armor_reflect_ghetto.rsi/meta.json | 26 ++++++++ .../Weapons/ghetto_mirror_shield.rsi/icon.png | Bin 0 -> 330 bytes .../ghetto_mirror_shield.rsi/inhand-left.png | Bin 0 -> 758 bytes .../ghetto_mirror_shield.rsi/inhand-right.png | Bin 0 -> 697 bytes .../ghetto_mirror_shield.rsi/meta.json | 22 +++++++ 20 files changed, 370 insertions(+) create mode 100644 Content.Shared/_White/DamageableClothing/Components/DamageableClothingComponent.cs create mode 100644 Content.Shared/_White/DamageableClothing/Components/DamageableClothingUserComponent.cs create mode 100644 Content.Shared/_White/DamageableClothing/DamageableClothingSystem.cs create mode 100644 Content.Shared/_White/DamageableClothing/DamageableClothingUserSystem.cs create mode 100644 Resources/Locale/ru-RU/White/clothing-outer-armor-reflective-ghetto.ftl create mode 100644 Resources/Locale/ru-RU/White/ghetto-mirror-shield.ftl create mode 100644 Resources/Prototypes/_White/Entities/Clothing/OuterClothing/ClothingOuterArmorReflectiveGhetto.yml create mode 100644 Resources/Prototypes/_White/Entities/Objects/Shields/MirrorShieldGhetto.yml create mode 100644 Resources/Prototypes/_White/Recipes/Crafting/Graphs/ghettoMirrorShield.yml create mode 100644 Resources/Prototypes/_White/Recipes/Crafting/ghettoMirrorShield.yml create mode 100644 Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/icon.png create mode 100644 Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/inhand-left.png create mode 100644 Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/inhand-right.png create mode 100644 Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/meta.json create mode 100644 Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/icon.png create mode 100644 Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/inhand-left.png create mode 100644 Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/inhand-right.png create mode 100644 Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/meta.json diff --git a/Content.Shared/_White/DamageableClothing/Components/DamageableClothingComponent.cs b/Content.Shared/_White/DamageableClothing/Components/DamageableClothingComponent.cs new file mode 100644 index 0000000000..ea7dd2c437 --- /dev/null +++ b/Content.Shared/_White/DamageableClothing/Components/DamageableClothingComponent.cs @@ -0,0 +1,25 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; +// WD Engi Exclusive +namespace Content.Shared.DamageableClothing; + +/// +/// This component goes on an equippable item that should take damage while in use. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class DamageableClothingComponent : Component +{ + + /// + /// The entity that's wearing the item. + /// + [ViewVariables, AutoNetworkedField] + public EntityUid? User; + + /// + /// The damage modifier to use on item. + /// + [DataField] + public DamageModifierSet DamageModifier = default!; + +} diff --git a/Content.Shared/_White/DamageableClothing/Components/DamageableClothingUserComponent.cs b/Content.Shared/_White/DamageableClothing/Components/DamageableClothingUserComponent.cs new file mode 100644 index 0000000000..ef78a0b308 --- /dev/null +++ b/Content.Shared/_White/DamageableClothing/Components/DamageableClothingUserComponent.cs @@ -0,0 +1,16 @@ +// WD Engi Exclusive +namespace Content.Shared.DamageableClothing; + +/// +/// This component gets dynamically added to an Entity via the +/// +[RegisterComponent] +public sealed partial class DamageableClothingUserComponent : Component +{ + /// + /// The entity that's also being damaged. + /// + [DataField] + public EntityUid? ItemId; + +} diff --git a/Content.Shared/_White/DamageableClothing/DamageableClothingSystem.cs b/Content.Shared/_White/DamageableClothing/DamageableClothingSystem.cs new file mode 100644 index 0000000000..c32ed9614b --- /dev/null +++ b/Content.Shared/_White/DamageableClothing/DamageableClothingSystem.cs @@ -0,0 +1,43 @@ +using Robust.Shared.Timing; +using Content.Shared.Inventory.Events; +// WD Engi Exclusive +namespace Content.Shared.DamageableClothing; + +public sealed partial class DamageableClothingSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _gameTiming = default!; + + public override void Initialize() + { + base.Initialize(); + InitializeUser(); + + SubscribeLocalEvent(OnEquipped); + SubscribeLocalEvent(OnUnequipped); + SubscribeLocalEvent(OnShutdown); + } + + private void OnEquipped(EntityUid uid, DamageableClothingComponent component, GotEquippedEvent args) + { + if (_gameTiming.ApplyingState) + return; + component.User = args.Equipee; + var userComp = EnsureComp(args.Equipee); + userComp.ItemId = args.Equipment; + } + + private void OnUnequipped(EntityUid uid, DamageableClothingComponent component, GotUnequippedEvent args) + { + RemCompDeferred(args.Equipee); + component.User = null; + } + + private void OnShutdown(EntityUid uid, DamageableClothingComponent component, ComponentShutdown args) + { + if (component.User != null) + { + RemCompDeferred(component.User.Value); + component.User = null; + } + } +} diff --git a/Content.Shared/_White/DamageableClothing/DamageableClothingUserSystem.cs b/Content.Shared/_White/DamageableClothing/DamageableClothingUserSystem.cs new file mode 100644 index 0000000000..7d1f031725 --- /dev/null +++ b/Content.Shared/_White/DamageableClothing/DamageableClothingUserSystem.cs @@ -0,0 +1,46 @@ +using Content.Shared.Damage; +// WD Engi Exclusive +namespace Content.Shared.DamageableClothing; + +public sealed partial class DamageableClothingSystem +{ + [Dependency] private readonly DamageableSystem _damageable = default!; + + private void InitializeUser() + { + SubscribeLocalEvent(OnUserDamageModified); + SubscribeLocalEvent(OnDamageModified); + SubscribeLocalEvent(OnEntityTerminating); + } + + private void OnUserDamageModified(EntityUid uid, DamageableClothingUserComponent component, DamageModifyEvent args) + { + if (TryComp(component.ItemId, out var blocking)) + { + if (args.Damage.GetTotal() <= 0) + return; + + if (!TryComp(component.ItemId, out var dmgComp)) + return; + + var blockFraction = 1; + blockFraction = Math.Clamp(blockFraction, 0, 1); + _damageable.TryChangeDamage(component.ItemId, blockFraction * args.OriginalDamage); + } + } + + private void OnDamageModified(EntityUid uid, DamageableClothingComponent component, DamageModifyEvent args) + { + var modifier = component.DamageModifier; + args.Damage = DamageSpecifier.ApplyModifierSet(args.Damage, modifier); + } + + private void OnEntityTerminating(EntityUid uid, DamageableClothingUserComponent component, ref EntityTerminatingEvent args) + { + if (!TryComp(component.ItemId, out var blockingComponent)) + return; + + RemCompDeferred(uid); + } + +} diff --git a/Resources/Locale/ru-RU/White/clothing-outer-armor-reflective-ghetto.ftl b/Resources/Locale/ru-RU/White/clothing-outer-armor-reflective-ghetto.ftl new file mode 100644 index 0000000000..491be27338 --- /dev/null +++ b/Resources/Locale/ru-RU/White/clothing-outer-armor-reflective-ghetto.ftl @@ -0,0 +1,2 @@ +ent-ClothingOuterArmorReflectiveGhetto = самодельный отражающий жилет + .desc = Два зеркала соединённые проводами для сомнительной защиты от лазеров. diff --git a/Resources/Locale/ru-RU/White/ghetto-mirror-shield.ftl b/Resources/Locale/ru-RU/White/ghetto-mirror-shield.ftl new file mode 100644 index 0000000000..0a5b6a25db --- /dev/null +++ b/Resources/Locale/ru-RU/White/ghetto-mirror-shield.ftl @@ -0,0 +1,2 @@ +ent-MirrorShieldGhetto = самодельный зеркальный щит + .desc = Сделанное на скорую руку зеркало с рукояткой для использования как сомнительная защита от лазеров. diff --git a/Resources/Prototypes/_White/Entities/Clothing/OuterClothing/ClothingOuterArmorReflectiveGhetto.yml b/Resources/Prototypes/_White/Entities/Clothing/OuterClothing/ClothingOuterArmorReflectiveGhetto.yml new file mode 100644 index 0000000000..310aeb1f84 --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Clothing/OuterClothing/ClothingOuterArmorReflectiveGhetto.yml @@ -0,0 +1,53 @@ +- type: entity # WD Engi Exclusive + parent: ClothingOuterArmorBasic + id: ClothingOuterArmorReflectiveGhetto + name: makeshift reflective vest + description: Two mirrors connected by wires for dubious laser protection. + components: + - type: Sprite + sprite: White/Clothing/OuterClothing/armor_reflect_ghetto.rsi + state: icon + - type: Clothing + sprite: White/Clothing/OuterClothing/armor_reflect_ghetto.rsi + - type: Armor + modifiers: + coefficients: + Slash: 0.9 + Heat: 0.7 + - type: Reflect + reflectProb: 0.7 + innate: true + placement: + - Body + reflects: + - Energy + - type: Construction + graph: ClothingOuterArmorReflectiveGhetto + node: vest + - type: DamageableClothing + damageModifier: + coefficients: + Blunt: 2 + Slash: 0.9 + Piercing: 1.5 + Heat: .5 + flatReductions: + Heat: 0.5 + - type: Damageable + damageContainer: Shield + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 60 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + ShardGlass: + min: 3 + max: 5 diff --git a/Resources/Prototypes/_White/Entities/Objects/Shields/MirrorShieldGhetto.yml b/Resources/Prototypes/_White/Entities/Objects/Shields/MirrorShieldGhetto.yml new file mode 100644 index 0000000000..0b30b8833b --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Objects/Shields/MirrorShieldGhetto.yml @@ -0,0 +1,62 @@ +- type: entity # WD Engi Exclusive + name: makeshift mirror shield + parent: BaseItem + id: MirrorShieldGhetto + description: A makeshift mirror with a handle, used as dubious laser protection. + components: + - type: Sprite + sprite: White/Objects/Weapons/ghetto_mirror_shield.rsi + state: icon + - type: Item + sprite: White/Objects/Weapons/ghetto_mirror_shield.rsi + size: Ginormous + - type: Tag + tags: + - MirrorShieldGhetto + - type: Reflect + reflectProb: 0.7 + innate: true + reflects: + - Energy + - type: Blocking + passiveBlockModifier: + coefficients: + Blunt: 2 + Slash: 0.9 + Piercing: 1.5 + Heat: .6 + activeBlockModifier: + coefficients: + Blunt: 2 + Slash: 0.9 + Piercing: 1.5 + Heat: .3 + flatReductions: + Heat: 0.5 + blockSound: !type:SoundPathSpecifier + path: /Audio/Effects/glass_step.ogg + - type: MeleeBlock + - type: Damageable + damageContainer: Shield + - type: Construction + graph: MirrorShieldGhetto + node: shield + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 40 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + ShardGlass: + min: 2 + max: 3 + - type: StaticPrice + price: 50 + - type: DisarmMalus diff --git a/Resources/Prototypes/_White/Recipes/Crafting/Graphs/ghettoMirrorShield.yml b/Resources/Prototypes/_White/Recipes/Crafting/Graphs/ghettoMirrorShield.yml new file mode 100644 index 0000000000..e36d8bf12a --- /dev/null +++ b/Resources/Prototypes/_White/Recipes/Crafting/Graphs/ghettoMirrorShield.yml @@ -0,0 +1,43 @@ +# WD Engi Exclusive +- type: constructionGraph + id: MirrorShieldGhetto + start: start + graph: + - node: start + edges: + - to: shield + steps: + - material: Glass + amount: 5 + doAfter: 3 + - material: Steel + amount: 3 + doAfter: 3 + - node: shield + entity: MirrorShieldGhetto + +- type: constructionGraph + id: ClothingOuterArmorReflectiveGhetto + start: start + graph: + - node: start + edges: + - to: vest + steps: + - material: Cable + amount: 5 + - tag: MirrorShieldGhetto + name: самодельный зеркальный щит + icon: + sprite: White/Objects/Weapons/ghetto_mirror_shield.rsi + state: icon + amount: 1 + - tag: MirrorShieldGhetto + name: самодельный зеркальный щит + icon: + sprite: White/Objects/Weapons/ghetto_mirror_shield.rsi + state: icon + amount: 1 + doAfter: 6 + - node: vest + entity: ClothingOuterArmorReflectiveGhetto diff --git a/Resources/Prototypes/_White/Recipes/Crafting/ghettoMirrorShield.yml b/Resources/Prototypes/_White/Recipes/Crafting/ghettoMirrorShield.yml new file mode 100644 index 0000000000..588f18da36 --- /dev/null +++ b/Resources/Prototypes/_White/Recipes/Crafting/ghettoMirrorShield.yml @@ -0,0 +1,26 @@ +# WD Engi Exclusive +- type: construction + name: самодельный зеркальный щит + id: MirrorShieldGhetto + graph: MirrorShieldGhetto + startNode: start + targetNode: shield + category: construction-category-weapons + objectType: Item + description: Сделанное на скорую руку зеркало с рукояткой для использования как сомнительная защита от лазеров. + icon: + sprite: White/Objects/Weapons/ghetto_mirror_shield.rsi + state: icon + +- type: construction + name: самодельный отражающий жилет + id: ClothingOuterArmorReflectiveGhetto + graph: ClothingOuterArmorReflectiveGhetto + startNode: start + targetNode: vest + category: construction-category-clothing + objectType: Item + description: Два зеркала соединённые проводами для сомнительной защиты от лазеров. + icon: + sprite: White/Clothing/OuterClothing/armor_reflect_ghetto.rsi + state: icon diff --git a/Resources/Prototypes/_White/tags.yml b/Resources/Prototypes/_White/tags.yml index 375c824a14..40e48a923a 100644 --- a/Resources/Prototypes/_White/tags.yml +++ b/Resources/Prototypes/_White/tags.yml @@ -120,3 +120,7 @@ - type: Tag id: VoiceActivatedBombImplant + +# WD Engi Exclusive +- type: Tag + id: MirrorShieldGhetto diff --git a/Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..5572ecd007baf40e76ae752b8bab2fd84ec8756a GIT binary patch literal 576 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zA9%VrhE&XX zJIgTdkb{8h@j#vM7zWNLKF8)23!H8ja7ay`qqtO>&vEl2E>W+;iW$8}SXT%fUFOkd zk)k;7t5ou9d(OlI^ZutBR6L1P0vZkk|59z_CGPo6I`X0UzVx|Y$Lf~IZ~B<~E3&?_ za_XBJt9km5yjH$(SL=JMkkuMgD=71Sn%(co3R(_VxN;wT`Fm?knfFFU&gGAPuKV|E z!BNBbC2Tn*R+Uab;g%vC9$<);a(S4tj%e!OuiCU{#AYNN{eMH z7_M*lQMX@TXjxG0b0!nTN~PmWCaRT6?Mx<`K(_IMRZmV|5EozIc~Y2@dxKrZrCaxM zGS;qqB*s zKac(GZ!5d|@0bf;HZiSvZJpKn<=;2K4V^1Q2<7z8Hf8wXuv)e&r*DSIV-WsA#!u-fM0!kIEYla8F9%)#=$(dMkd_pf|@E)3ou z1pOMD%VW1^{MBmQ`XQ9b@IewIdoQavcaJc$o>;+!h=P?3iD@CV%+FqKK6Xaq_Ahg$ z)ab=I*?0KE`JKcjEv6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/inhand-left.png b/Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..edc2a32edb6151b812471c36d9090080e1daafb3 GIT binary patch literal 610 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|S$Y zr;B4q#hkaZZ1WB|2(;dJTlkcLLvz__RwqF}NB7CxEV<6J3YtPZH-`C5P`f)%$=A=p zT_w!2AzFNL(}O<~<)8w3$zyKcvse647#du+UR?Id1UMlFP3SW9Yn82 zCs@cZeSG`l(GQ+`zt=?Ft6mTj94~oQ^1|D){Wa5rPOaMdZcpjg?XIB??~WS1UVV?r z&@JZty9XQRd^11)-NEHru0ZmUv!81}^GsNEZrxYmRZM%npF6zRT(%>`v?#uD{hD)A z{g1D*$nJY*iO-X`f?@^t3t#r2p5Onk*~W}UiN3% zimk_jydLe1H#2zre*g6YTcd$qJ}cEC^KsSQgHtZ~Mcue>__F7M2m7WYtJe$OD($Yh zTXEYXyqfKZ#O(90Z_W+7X+JUOl(@c9Ry2pB$?Lz{M5iwoa++{7Nl}r-(#rm3#h-fa n-KTSrDB--xZKXHn2mc5|4zCyFD>vp|3hfn&Y7lkceeh~J5@aULkj7{Tg zwZD%Uca{B+(eYi&v@j@cQk}oktxL;nY+8+KBm@sC79SBySj>2XDaV8%x}ldXfqTP6 zh8#vSsRrExZp<54Z)7lRW02-O09C|iccAd9wC6OY1_lGQzH8_2zmNN6czdFX_tVE8 zuQD8X`8ML-`#7Jw&$as-UT^lEVbRp7d?JZ6QpZr*clWoqbFTKYGE6wS>Eq|pXAQWHbHjT(iO!oAcRowfz~N%S`wmV?NX8-^v~F+vcV(&RkslR8YX_$JTRE zyLZR(zj<`$mDY#rY;As%i=S!+h_K4p&A(y#$y5GGP)go{t>h{SM>q;BW&fLBA z+jU!(-zi%^&#g;;&9Ic?!v7sL^0#ll)Dm!dQTzP;{dqtSF|3idc65o-RS$puXz%o& zHG21|J@fRIyezopr E0KL8lL;wH) literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/meta.json b/Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/meta.json new file mode 100644 index 0000000000..61fc5a5260 --- /dev/null +++ b/Resources/Textures/White/Clothing/OuterClothing/armor_reflect_ghetto.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "stepppasha", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/icon.png b/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bc32c7d6a0de6b201b9ec6a04d1e626c938fe8 GIT binary patch literal 330 zcmV-Q0k!^#P)rAPj{cRmaFaJ|TIKjKd&EK4qWmK`$X{XnyRL zh#v6K3VxsY@rz3-p=CUps&{}6@DBjbZx#_z^4@Q9A_4$znkG{%XPpBfgaiQ0yvfHH z*P7!v-UARqNTqO&VHol^CJ6N%AfiLkES^I|5)st}@ZNuHdnrE8Gng6W{rDN+sQXg9 z$f?d&^$Pa7KNGiH!msAQMdxeo7J!=KW`Nq_Y5);=A2gTZF~&R@>i__7TJgO#XQB3j z+z~UMid(t|lsm8(j04nXuIe5zx}k_TECc4uj4U;+W|Tn=?KtPP!^mvMwWIkTQ3vP% c9iTbD3sBX9v%_LrI{*Lx07*qoM6N<$f-S*@n*aa+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/inhand-left.png b/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..ccfebc408cb17bcd08beab31743078d44a07c546 GIT binary patch literal 758 zcmVyx-;_Ta zW1hZSYol}S=~@T@0L(nkoB2z80L7JGVH9jejW`SDve+HjlySrdDU!HvlkQ`9TRx9{??3P@xl>O`V z8Ue5h!nzJ<1)pDgg-;4>0_+jI#Bg8{;9tyq0!e@n0=)N+?@PgZ@6*a~6Q3kV0yyU$ zmRy_p{6A~>Vm9&LAA+nP%>sEg$8l^1pR(_qtGb}Z7h{Z4ZXh{ep65r_){OadZ*3v8 zm5&4DTEJS1d&O2PhO#kjfWKK@SPD1!hGAfx3CK&~d)5HJgb;qIdAGgE@2Btqyu}bp zH3$IHG%eo0u^g`c_Lc$wPxgJnlI?4#@x848d*JQL;jL%|pdskTzZCs=0d^k(Eohuo z=nmMs!JiL0?Gq{=?|?3Vb_cZ41<>w*Ho5@X9neM>fSb@-TiyFB!5BmO9FIrRN=nKB zn?!gOt*!aB5D~yRSA3Hr(GC?N0*vF>+y>`>wYGXHWedcLp_H9h-UV*qr$THNkaPi8 z_5lF_Qf8!gcoRR>2_g>IYkQlcoxTu~B3|0ij4>8JT>NVxBETL88@SqG7oc?lL;}?I z#D;+PzIhsi2$LVBp+HOkX(w>;iwKZsUt%SgPLgoAKtzC)9Z4625Lo!7szI^rC*#>Wfr2M#4{^BSAAkN^Mx07*qoM6N<$g5CsF&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/inhand-right.png b/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..237cb837c318ed51f7014c8ccf886f37a689d2f4 GIT binary patch literal 697 zcmV;q0!ICbP)4|E<2Jyp4uIPLw>kiB1KjEWxD9Zt1K>8mt*_$;Aw=?} zQYvVzlQ!oZ0EoxqvA4Cfnp~D8G2@)Wx~}5t_u^>&2w)CC=DDa`#s$QN?HG5B{Zp5ev1pCzYL+2{bznJSAu^T zLP=MC69CS+<3i^p1Z!>cPk~o{^9neX&npO}YdDoHfWp?cH{{FW(-g?7AnzbTSeB*P z>~9c~NBWiD1i-ezDQ5Iy{x_BVqe^~Do1)W75CEKW0vo~Ov(tN@Y=-W!N~fdW-)@Eg ze6RJdw!^W#wark~cK8$Z@&5>Q0Ne(+)d6rD;8q8~ZGc-H0Ji~dbpYH3xYYr08{k$4 zz-@qA9YD>+rPEeQQN*jRfOkQlic<|B|Id(0RB@^S7-Pt*U>Jr#brOBcO^~_@DEq$! z0A&?WW*?{o5Hmx4QXKoIsD$bYc-JvGRh+&Mx}%e;cM0zjW&hOxs0U9SrwYKk-w&XO zcgqy8);>Lft⪻gL#5aBk! ftqy?O0Jr`F?B+AjExmlI00000NkvXXu0mjf*YZBs literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/meta.json b/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/meta.json new file mode 100644 index 0000000000..cb084b7fa0 --- /dev/null +++ b/Resources/Textures/White/Objects/Weapons/ghetto_mirror_shield.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/Citadel-Station-13/Citadel-Station-13/commit/84223c65f5caf667a84f3c0f49bc2a41cdc6c4e3", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + } + ] +}