From 257a9db5c163a1c391fc7f639f1e39e81db83c42 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Thu, 17 Nov 2022 18:10:45 -0500 Subject: [PATCH] xenoarch inhands + a few effects (#12655) --- .../Components/IgniteArtifactComponent.cs | 17 ++++ .../RandomInstrumentArtifactComponent.cs | 7 ++ .../Effects/Systems/IgniteArtifactSystem.cs | 43 +++++++++ .../Systems/RandomInstrumentArtifactSystem.cs | 25 +++++ .../RandomArtifactSpriteSystem.cs | 3 + .../Tools/Components/ToolComponent.cs | 3 +- .../en-US/xenoarchaeology/artifact-hints.ftl | 1 + .../Xenoarchaeology/item_artifacts.yml | 4 + .../XenoArch/Effects/normal_effects.yml | 7 ++ .../XenoArch/Effects/utility_effects.yml | 31 ++++++ .../item_artifacts.rsi/ano01-inhand-left.png | Bin 0 -> 327 bytes .../item_artifacts.rsi/ano01-inhand-right.png | Bin 0 -> 310 bytes .../item_artifacts.rsi/ano02-inhand-left.png | Bin 0 -> 463 bytes .../item_artifacts.rsi/ano02-inhand-right.png | Bin 0 -> 477 bytes .../item_artifacts.rsi/ano03-inhand-left.png | Bin 0 -> 385 bytes .../item_artifacts.rsi/ano03-inhand-right.png | Bin 0 -> 388 bytes .../item_artifacts.rsi/ano04-inhand-left.png | Bin 0 -> 256 bytes .../item_artifacts.rsi/ano04-inhand-right.png | Bin 0 -> 261 bytes .../item_artifacts.rsi/ano05-inhand-left.png | Bin 0 -> 463 bytes .../item_artifacts.rsi/ano05-inhand-right.png | Bin 0 -> 465 bytes .../item_artifacts.rsi/ano06-inhand-left.png | Bin 0 -> 476 bytes .../item_artifacts.rsi/ano06-inhand-right.png | Bin 0 -> 482 bytes .../item_artifacts.rsi/ano07-inhand-left.png | Bin 0 -> 640 bytes .../item_artifacts.rsi/ano07-inhand-right.png | Bin 0 -> 654 bytes .../item_artifacts.rsi/ano08-inhand-left.png | Bin 0 -> 648 bytes .../item_artifacts.rsi/ano08-inhand-right.png | Bin 0 -> 664 bytes .../item_artifacts.rsi/ano09-inhand-left.png | Bin 0 -> 578 bytes .../item_artifacts.rsi/ano09-inhand-right.png | Bin 0 -> 582 bytes .../item_artifacts.rsi/ano10-inhand-left.png | Bin 0 -> 540 bytes .../item_artifacts.rsi/ano10-inhand-right.png | Bin 0 -> 551 bytes .../item_artifacts.rsi/ano11-inhand-left.png | Bin 0 -> 534 bytes .../item_artifacts.rsi/ano11-inhand-right.png | Bin 0 -> 544 bytes .../item_artifacts.rsi/meta.json | 90 +++++++++++++++++- 33 files changed, 229 insertions(+), 2 deletions(-) create mode 100644 Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/IgniteArtifactComponent.cs create mode 100644 Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/RandomInstrumentArtifactComponent.cs create mode 100644 Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/IgniteArtifactSystem.cs create mode 100644 Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano01-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano01-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano02-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano02-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano03-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano03-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano04-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano04-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano05-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano05-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano06-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano06-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano07-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano07-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano08-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano08-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano09-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano09-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano10-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano10-inhand-right.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano11-inhand-left.png create mode 100644 Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano11-inhand-right.png diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/IgniteArtifactComponent.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/IgniteArtifactComponent.cs new file mode 100644 index 0000000000..100fb15b63 --- /dev/null +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/IgniteArtifactComponent.cs @@ -0,0 +1,17 @@ +namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; + +/// +/// Artifact that ignites surrounding entities when triggered. +/// +[RegisterComponent] +public sealed class IgniteArtifactComponent : Component +{ + [DataField("range")] + public float Range = 2f; + + [DataField("minFireStack")] + public int MinFireStack = 2; + + [DataField("maxFireStack")] + public int MaxFireStack = 5; +} diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/RandomInstrumentArtifactComponent.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/RandomInstrumentArtifactComponent.cs new file mode 100644 index 0000000000..b268f9907c --- /dev/null +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/RandomInstrumentArtifactComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; + +[RegisterComponent] +public sealed class RandomInstrumentArtifactComponent : Component +{ + +} diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/IgniteArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/IgniteArtifactSystem.cs new file mode 100644 index 0000000000..fa36fae85b --- /dev/null +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/IgniteArtifactSystem.cs @@ -0,0 +1,43 @@ +using System.Linq; +using Content.Server.Atmos.Components; +using Content.Server.Atmos.EntitySystems; +using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; +using Content.Server.Xenoarchaeology.XenoArtifacts.Events; +using Robust.Shared.Random; + +namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems; + +public sealed class IgniteArtifactSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly FlammableSystem _flammable = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnActivate); + } + + private void OnActivate(EntityUid uid, IgniteArtifactComponent component, ArtifactActivatedEvent args) + { + var flammable = GetEntityQuery(); + var targets = new HashSet(); + if (args.Activator != null) + { + targets.Add(args.Activator.Value); + } + else + { + targets = _lookup.GetEntitiesInRange(uid, component.Range); + } + + foreach (var target in targets) + { + if (!flammable.TryGetComponent(target, out var fl)) + continue; + fl.FireStacks += _random.Next(component.MinFireStack, component.MaxFireStack); + _flammable.Ignite(target, fl); + } + } +} diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs new file mode 100644 index 0000000000..25dc9e2ce1 --- /dev/null +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs @@ -0,0 +1,25 @@ +using Content.Server.Instruments; +using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; +using Content.Shared.Instruments; +using Robust.Shared.Random; + +namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems; + +public sealed class RandomInstrumentArtifactSystem : EntitySystem +{ + [Dependency] private readonly InstrumentSystem _instrument = default!; + [Dependency] private readonly IRobustRandom _random = default!; + /// + public override void Initialize() + { + SubscribeLocalEvent(OnStartup); + } + + private void OnStartup(EntityUid uid, RandomInstrumentArtifactComponent component, ComponentStartup args) + { + if (!TryComp(uid, out var instrument)) + return; + + _instrument.SetInstrumentProgram(instrument, (byte) _random.Next(0, 127), 0); + } +} diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/RandomArtifactSpriteSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/RandomArtifactSpriteSystem.cs index 50e2b0ecb3..c3af6a11e2 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/RandomArtifactSpriteSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/RandomArtifactSpriteSystem.cs @@ -1,4 +1,5 @@ using Content.Server.Xenoarchaeology.XenoArtifacts.Events; +using Content.Shared.Item; using Content.Shared.Xenoarchaeology.XenoArtifacts; using Robust.Server.GameObjects; using Robust.Shared.Random; @@ -11,6 +12,7 @@ public sealed class RandomArtifactSpriteSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IGameTiming _time = default!; [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly SharedItemSystem _item = default!; public override void Initialize() { @@ -41,6 +43,7 @@ public sealed class RandomArtifactSpriteSystem : EntitySystem { var randomSprite = _random.Next(component.MinSprite, component.MaxSprite + 1); _appearance.SetData(uid, SharedArtifactsVisuals.SpriteIndex, randomSprite); + _item.SetHeldPrefix(uid, "ano" + randomSprite.ToString("D2")); //set item artifact inhands } private void OnActivated(EntityUid uid, RandomArtifactSpriteComponent component, ArtifactActivatedEvent args) diff --git a/Content.Shared/Tools/Components/ToolComponent.cs b/Content.Shared/Tools/Components/ToolComponent.cs index 200ca6222b..8f4b9c4303 100644 --- a/Content.Shared/Tools/Components/ToolComponent.cs +++ b/Content.Shared/Tools/Components/ToolComponent.cs @@ -1,9 +1,10 @@ using Robust.Shared.Audio; +using Robust.Shared.GameStates; using Robust.Shared.Utility; namespace Content.Shared.Tools.Components { - [RegisterComponent] // TODO move tool system to shared, and make it a friend. + [RegisterComponent, NetworkedComponent] // TODO move tool system to shared, and make it a friend. public sealed class ToolComponent : Component { [DataField("qualities")] diff --git a/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl b/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl index 6ec6b7a6f6..7b97d5e9ec 100644 --- a/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl +++ b/Resources/Locale/en-US/xenoarchaeology/artifact-hints.ftl @@ -14,6 +14,7 @@ artifact-effect-hint-gun = Small entity accelerator artifact-effect-hint-multitool = Utility conglomerate artifact-effect-hint-storage = Internal chamber artifact-effect-hint-drill = Serrated rotator +artifact-effect-hint-soap = Lubricated surface # the triggers should be more obvious than the effects # gives people an idea of what to do: don't be too specific (i.e. no "welders") diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml index 3205a154db..3810ca37a0 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml @@ -29,6 +29,10 @@ - type: Appearance - type: StaticPrice price: 500 + - type: Item + size: 40 + sprite: Objects/Specific/Xenoarchaeology/item_artifacts.rsi + heldPrefix: ano01 - type: entity parent: BaseXenoArtifactItem diff --git a/Resources/Prototypes/XenoArch/Effects/normal_effects.yml b/Resources/Prototypes/XenoArch/Effects/normal_effects.yml index eb2d43f489..2f9d468dcc 100644 --- a/Resources/Prototypes/XenoArch/Effects/normal_effects.yml +++ b/Resources/Prototypes/XenoArch/Effects/normal_effects.yml @@ -299,6 +299,13 @@ - Mold - Amatoxin +- type: artifactEffect + id: EffectIgnite + targetDepth: 3 + effectHint: artifact-effect-hint-release + components: + - type: IgniteArtifact + - type: artifactEffect id: EffectSingulo targetDepth: 100 diff --git a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml index ef16f571c3..376533f0b2 100644 --- a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml +++ b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml @@ -1,5 +1,36 @@ # Utility effects permanently modify the entity in some way when triggered, and they generally make it 'useful' for some purpose, # like turning the artifact into a tool, or gun, or whatever. +- type: artifactEffect + id: EffectRandomInstrument + targetDepth: 2 + effectHint: artifact-effect-hint-mental + permanentComponents: + - type: Instrument + - type: ActivatableUI + inHandsOnly: true + singleUser: true + verbText: verb-instrument-openui + key: enum.InstrumentUiKey.Key + - type: UserInterface + interfaces: + - key: enum.InstrumentUiKey.Key + type: InstrumentBoundUserInterface + - type: RandomInstrumentArtifact + +- type: artifactEffect + id: EffectSlippy + targetDepth: 2 + effectHint: artifact-effect-hint-soap + whitelist: + components: + - Item + permanentComponents: + - type: Slippery + paralyzeTime: 7 + launchForwardsMultiplier: 9.0 + - type: StepTrigger + - type: CollisionWake + enabled: false - type: artifactEffect id: EffectStorage diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano01-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano01-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2de805b9cebdd2f2aecf55c7d1ac14450ac0d04c GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z89iMbLn`LH zy>&MCumMlo!}YGy7hJ#aPq~1%lIN?CSlh(~)0`~>KifGp$fR^Fs?(dq0yKf4!d^bS zB*-iCdn?|&58~8%-WUFzC{Db~nn) z2IT*~UQ+bo;r9GznjXg|*{_-!bnDxMIgVwUKIe0Tj0J%YA;EX|9XosBEt{q4_wzjp z-)BVrni{tDt9qH+oIu({^FG(=?jG-F zvi~$kZ7;*^X0KE7f2PgcI`O0bX{!YVe&HYE^MBeXY@5H^`+rW3?XqewW}s~%_kWx# UzMO47{XEEWPgg&ebxsLQ02*D4e*gdg literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano01-inhand-right.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano01-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..398e5de11f1ea13ec98224c050d765274f2d9ef8 GIT binary patch literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|K6tt~hE&XX zdn=LakO5EIL;sILH%*KFD}Rx?ZTM<_>J%=%*wtnG_&NBzd@f(HpUDE$!tld>`lo|; zi);KfW96pzzr49G@9U$=d0Tb5RZ>G)r9%8PPo6RHz5Fl9vvO@jjobH6b=!`nzUFze z_OQ%Oj?#VYR+TH1c2wVdca~@4&#RIDwu6iW0SET8%l4;DOa65$X^Y(D6{S&kbG>SF z1&^HBmJ;1nA-KQ&Fl)z?M_-~v6(70WiF38M6IGg|dwXm8n*xo5O8=#HoY!Q(6|aBy zWzYQkKV;un+|}GuG=I}>?_US2e{kBy*)lRP91y?D=yE6Da{Zzt9*~Wmu6{1-oD!M< Dwh4t) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano02-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano02-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f8bb6d766e3e17d488c9a1f96632ab16d5b017 GIT binary patch literal 463 zcmV;=0WkiFP)Px$iAh93RCt{2+CgrEFc1aMpQ<xZs|kt0miB=xYA{^8vr zZ%Z|V5CTF7tFAwF09s4@%^{_=zo_hJ32pwpmf+U*!Q~#{UDXwl+I8LHGEXUOnst{g zkaI?i(PbsHgI_vBur+kk6)^AIv_H*OLc8ZvN+v7KGypvhpr4x=+H+8tPI_!y5nq002ovPDHLk FV1h&m)7Ah0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano02-inhand-right.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano02-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..7e79087747774e9a1b7da725231848c6106939b0 GIT binary patch literal 477 zcmV<30V4j1P)Px$mq|oHRCt{2+Dop(APfc2+v@Frk=a8=*#rBR*h4bP8t9;LMDryd^b&NB)IopL zc7Rqj01*)p5fKp)%@L6xBH_Q|NU=B0zm&nMssaGCZF@Md+%#5e?XEc23NR$^y+0RS zW+D>wB6VFiemVenExmWP03s5swJ^rOdw=^Pv~BxBf5FB?1OP(+nu$pPmXco@;4aqU z>u1Mo5#I5grzXEebD7&9hXRzCyygTf7eSK?{aOKlB9d2Hgr;eR$NF!HpWFhzMF`Hh z$9(6f5|L2XwdSR_S;ZxUY?l5Es+${s_GaaZ>M70rZ65Yf_D zJcMwTHaK(aKS_IlnoH1o4`U3hwOOu`9)F3uyI0y(fHA!?T7;|j1WjIh`#F}|=_#Aq ze?Q>o%z}Q#)ywSE3;@2%qG_7px5Aa{RL9Dd{H0R+?*}~U%tDp|WEhi(hzP(3Sz*_7 TO^K}~00000NkvXXu0mjfVgTE| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano03-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano03-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..41586a6d7f4b72466da96d5a9874a61ac29e9aac GIT binary patch literal 385 zcmV-{0e=38P)Px$J4r-ARCt{2+OctiFcik|Cl8P!?ovAgkRlU!3A^?jE|`PbEWrd6W`Izq3q=O- zOOeyXA#gyXr#N^2-<=CMA@SrVH=jiS00000Fi{t(mg7S>>jkR(tC;Q4O|G|ed?>R8 z>O%GXRb>4rlI@&3pDx<9PVOE=o)13@^W*O~Do^{BYf9B@XTJfauD{Kp>#6Z6tgI&P z7jr&cW)(MgTr6fAaIMN!yVgyf>Fv?Eu62W*(3Cda@o&zU-<0)6B-_XPZHV3hmghKj z@c;k-0000003aS8bH_?`{5&z^bF+}4ACUNz__y;lrRv+u_j@Vg^Tp~ywaPy~{$8xK zs6S_wtA=(%^k{4-`xgms+p*`z)|<;L8}#kzuR~wdKR-7AO-c1qH(C5&Te>Mp{vd%w fI1&H=0GRIsfd;2FmB)?^00000NkvXXu0mjfNqMVZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano03-inhand-right.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano03-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..7be971568cb3c0186b1281f62c29ce6179f12086 GIT binary patch literal 388 zcmV-~0ek+5P)Px$K1oDDRCt{2+P!guKoExET@~QK${foD;J_8A2`P3R3aEn^nxFy#QGkh^iNFPD z9ca#$k009tED-NAqZx6Co899e`6L1W0001hh=^p7*|lrvQ(Hgk52WGOkJme`oS&MX z`uQBlBD425k^7a&({`bGVs>~HxqA?Kewpq<LG2!3DAw*^@5RLepq-E^K*YfnS7ve5Q-z|`fj*`YXn|I5p}@(45;`>qJKs>{{2 zs{jB1000000ALZseOX))-pk} zNQT`U!rtYAMQ0PPUD+;p`Q!h2U9q>`nldnGd}NfhFKVvmP<#i{=;`X`vd$@?2>?&a BXg~k} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano04-inhand-right.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano04-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..2163147b7ea17fe1ef9e44113afa410a04003175 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|_ItWGhE&XX zd+Q+YAp;(V!04ndy~Y{MtP!fr3SlQ3v!8YBC{E-39^l#)u(&BCgiqZ$tSg{U8JBKBe`?ztrqoIc=-Dx8ZrU1v&pp0!3$Tn$fiX z)p{lO&A-3iy#LJms`t}igU?ap0XllTAox)(v)j{}t+*e%#9Sk$ceE!Ga?7Ef0{mvv4FO#r!G BW^e!i literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano05-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano05-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..df3c743eda5e8a8d7338d20de1f5bc2ff83635bf GIT binary patch literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zJ3U<-Ln`LH zz2)z9*g=HtLw?umxC4{8x9rj@W?z3{ZpvfUDLSnB0s$}Ag`W^)x%l-4w?`EtzrlG| zt0Vt7m!#Yac=&s*lX2xt_WWHxnFItuAh70~(==n{hqodop(A* z*6_ydKWf4K^M~PW>-N2^)#tim_I95%Rz7Qb=HR1_knZ2BUY7j5Vpj26b?$qf$wuVpQC}e5j32*2< zYRGtPb(&C{&%vU!6gx2=@!Z%LzWEIoC$#tfy#42eAe(8xwZpU6XDNqVOIxmImOe{r zIhUd2v`Y&&+X$`v!S$)^ufN@r3y1hMJAk0-7wf*G4AS-=%sGHD#Ng@b=d#Wzp$P!2 C1I-y{uz?8Mga59!<%|Jh84qGo*~1>R88L_UdFTYJTyQT!QCVSOky$LmQtlE4d%j~P zj;$spy{|sitFQLdv40+E`-iau4E`BUcJk$7ZKza=e|%x4h?T#~-yhYn%=Qs$o_=P$ z+ATg+N31m2W4-pf37!it2YvXlE-7fmdcmo-D@31{XW4}G%5j)$fPzH&&ob&ZQUSf*50lORi?SJy7bL?7cxA@my^)H%d`~*w59bLcr3YJ7~U9rz1$Lyvr`${an^LB{Ts5 DY7EAz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano06-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano06-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..85b5b004faad3139f1d9e609f59a80952f17cde9 GIT binary patch literal 476 zcmV<20VDp2P)Px$mPtfGRCt{2+Ang0Kokb>Z>ytYT8E6_0y#oeRc}z)6XYPd0g4)qzy%^I>#ET4 zuVS;4z%V5+@1xN9elt^1cWz!7%x%^e~;@-iKIW{ zHSq2=t%{#A^LZ)SK1Gjq&~ zfDxJDA$=>)$UwPa<@0Vc$98~uOoIC@Fjr>Sjxc-!*j-a+i!oPjf39{!R$|Hz@91rC z(aFgjfX6uakN5lfNPx$oJmAMRCt{2+A(f}Fcb#h-&IHEEbYdafeYjaojUaf9eaWvgc~r?g(Gl*3>~|5 z%AEam2rr??0pb{A(Emx1B0yk2KVpXmKtx1DL_|bDok8jhGIu+C>g&^kZR6nxl<7Kx zP^OT>@%sLA05nRwJ=LQh9~h}1=H;?~sk9%O(Hach zf6f5g$V;(~4AA~`JKuY-!;{e!EI_im=y{deWZT+nM0~La_!wY3E~a=VaFS zABKpCh=_=Yh$wzOpUQ-K!ZZG<@PMHztcws;YA*rk*52+Jz0g%^Z_m$%s<2~)u2TES zfZ~4v(zWxz0;|+gG_|;aD(ubY4OFGRE48G6;2Xd*VBV)o)2OS|I`V6|4v|Io2Wjs1 z_%t{T)*0mMqY1(jfNg+QIdWNi^#&lw%Lg$F_VU4uMvZ27c{*i-LVFy0;62M*A|i^^ YACuGq?0?F3VE_OC07*qoM6N<$f-SS)s{jB1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano07-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano07-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..a4fd94e7e07baf8d40cb4d981279f17411620343 GIT binary patch literal 640 zcmV-`0)PF9P)Px%I!Q!9RCt{2n!!rLKoEw1MX;qUL=wD6P9e9xfKSjz=rymAw-DdMTk*8y z5)=!zbaRRa*|1Gkw8>6T`hSo^U^3a6%aW@i z?x*|aGg64`0T0hlXC`phan=mX73fgMpy(+O1!1eSe}kPsX+#pRx?NUg1N7zAiC*#f#j^RL`d7gdLI@#*5JCtcgb?y~5fdJU*7>_Kh&Bkc)t|1| ziS^-cFnQca;(h+^+5;46oOt<7E?NPvn>S3yla?BMY&DobCFC+Obr=Aq;|WxeBfh=? z@FkTUs}|Wpt35&DOLY=!fizB_iW~r-iX5uQox>5o#hxHhMGhmK_iY336=2T>0Bu=3 zjgzB&n&3@Bfv=>dae}pa>9t<(3AmaC^|Xge2G7v#G*Cs}N~SJ#-CkYs-U9YqfU7*a zNabtw;!LJ0a%}gzUh5Uv1G>%ye22@Ay*d6lR=3MR)ZCL-j9m#}QcgJmCmlQ?gb+dq aIg(Ees!~*9>PDgf0000Px%NJ&INRCt{2nn7-(FcgM=qDWH&l^B7#saPR)xj;{lBXpZ9^hR8Rd$1eL3b8?n zf)o&Bm04t->kyK*I3|U@PqLH{V)_65{EYAe7=~dOhWV)&?F*~L@*sbYlKAYNvG5r! zv-Tf;KRTc`1!O&KLjYh7ybJdn7XZ-g8$A4az;;&*JlxykIj+#-IWFEFUk}?|A);X> zi*NP~ntgNcF>8Ued5(J$4Kv`~rLwL>BO|)PW(?4{yL3^c15yqs>k8XlAzE2i2>sv= zL%$7C5*wi(bn23s(+7E707nOH(}Mr>jMZX!7~^ix?3+$qas(K3v3(N&u@kgA855+X ztxqJu_K(CA!~^Ku&SgEbvtR$;u-z3W$zrU0G=ZH45bI)t&=2tT@;aKG;HzW3XaGgQ zy4a|XY9MI6%O)r<-!aWTa5Q18&n^tZFbu;m48t%C!!Qgp0N?g~|4?-bS6_?Y3%O1~ z_xa@f<6EvH&y?ycwU6Y6Kq&%Ni{&BogR2!7U+Ihb@f;VP@l+iVs7esD5VWJDhmq9iu{q<_y6X_Ul9nrA5MN=tI=y$kqH&!Uc~ zU3}0tWV?0|N{#@uRIT-nfU>ScxXRZr&17G6*D5G2flJ9w$5Y$7*nGcAl_?xUe>wuD oAXbSVZven1Fbu;m48u%{e+`9V^}B1N;Q#;t07*qoM6N<$f_wrV`Tzg` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano08-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano08-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2367ed750b0b0bc1ce6189cd3b997bdea294a4ff GIT binary patch literal 648 zcmV;30(bq1P)Px%LP3mg@1vN`6|COGds-g;`vP^2m*pQjPf{)@^kN_Y}oRIG*++H zsMqS`MBBmk+ugigt(|P6-|p_%=(Rd0+pwX6G!}uTbPy&RgYhRk0gwua!zgd+1}RT% zt|eJYNtSNTm8Ynw8+2$9JH^KP%PVvNByunXl&7|WPO@}sP$pLE)m|HX51j;P0;b7~ zrpatm=GqTvI2l#=x{1|#MM;)!Z18j#PDYg^OKC9vth{}Fz^4I(a%sn5l=F6W=oyoZ ze!C0b_shU4;FJ~G^o)yD-UNINK;t?ocb@>)+;sw6?E7V$CZM>L-7D|}@C!^+H{f=m z27hr<0X+D6wRU#kuD8Fd@$VBL2!bF8f*=TjAP5hR3;o`;PiRL-`@uzBAX`{U*M4xe zPk7gr`++Qlx#;WjVA+rM15%zk%O^azvK(fT#BD*y@I~NF(PA&(MisW9Xjge^=iCN( z1?-cri;D3j9Ba3;tZwV``O=`u6lHLpn=XBnvDG7>3E;(vGw)(IDF3oMKFQ9fQ)!HY zLM?(e68tTsb|SjIpmA4!g#IFufLjM}YaSv2$G$%_0Z+g+UxwHp(Pc@1bIm|pd_5`% if*=TjAP9o+@O%Tu8_iq*0000Px%Qb|NXRCt{2n!Rp=Fc5%`s!~{xVChmZAvRthYZjCz=!!CS>s)23I(O?>W$hDG zS-SQGvPGQ`3riwpA(J~)hm0X$kO>CeH}PlR`8c29&Hw~KAW;yqCE z_!su^FKl*O1E<4gw>9v(t~`Ie8!z7<2JhzX-F>cmoF*5IkR!Usda)|4ow~ZeNEC!j zj0cV10W!f&=K$D*^fEXFWM9-|4Is;;4e;{)(dY%W2H=;IsnX~H`0+5N=-=k~iw3|S z3xIzkj0G|HH5uf#?&jOi=V+Haf*=TjAP9mW2!bHgGenlC51E~kqF6+AEcr{%b}IXq?rezCd6i6=RCgO%O#!|_Y|hNm zc^~losvbOmqzB;M0VF$T7YD4$O+}f=^VhplBh+SvtEelH_mMuwSko8M1`q=s1}FY) zN1%2^sFE24AyXM=q+$RHyk_~ljm$w9>O)9%pOdZ*%RmMgT7jYI{4X%3ig6vS4Zsin ynwzKja=kY2J2U%cEE_Zkf*=TjAP9mWM!_FijY&>&z3Be{0000Px${7FPXRCt{2+ChrqKokbxKfM*g5QbqIqAS?M|_s3SCfH`#qeB9@|6rqun=+Y+tF*%cqZtQ2bgGcPrsf3Q7o%Zd8dpucw0dOU#9=5HotX2LPya;xy)76aaX8O5pdepO}t^&f*UFSGW_E zPNL;%gY9nr*`W{-5fKp)5fKqlOSit-_PJ0R>ZRz}-hfMd_YQb3!2fy!F6n*mz^UGV zw#i$4?j2~`8*uSBK6?keO##s*R61#F9~V5YUDb(_cmS17Ai4yA#&%a;md56bwRu_o zg$+C_1OV{-q;4KBE5sx}V$4(u(Iu+-6@NyLotMeH6~OieREHYRPs-I;Z@mLaJaDp3 z=)3?n`Q>T@pxaqL$KFUs5BJU&OP#p(PXE=%A?k@+T622SAVEY#L`07L14z%Cc;h?? QnE(I)07*qoM6N<$g4j(5!2kdN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano09-inhand-right.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano09-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f97c8a2362697dc8e09d98816c8b576e9162d9 GIT binary patch literal 582 zcmV-M0=fN(P)Px%07*naRCt{2+A)sWKokbx-)K7|6roj=NGNHRCKc2^!5m@58TK@s!Qu$-1XJ5p z8q;KDX)VjLkfp6BMLZjmc(DxzGUWdnEHO6o#%~PbJ%EUai0FS8#)-N194_I{I7a{w zh&E}K+c$4@Axs!2Ce3mLqTga1tv6z(lQ95bIiDdAeRJ6m#)%0;V>zDz0H%{M)*Ja9 zW3?hibYw(F2Gwd^XS&0(SzV8(^zk0c`K)Q26YPFpDIaKvchqo>w^F`W>`H8( zUyx=wT;2-BuEa|D9-41lUT z-L$4>fRpTXLAHSC2+CjV9arhxw@Bd?yAsM@Ky(BEd&lQ+aup?v6Z3uh z1JlVE%3mN5jbc~g=}{ehZTsAKdQ=b{p(tPR?cwWL%JhRQK$_(!%2xpI*Wr&~)*Hd} z!{n@e3MXCA25+mer`+}T*lc+C^7-Fv*68{*=gQ|09pGBKOcyuPAVEY#L_|IP1h>PT U-lI|T^#A|>07*qoM6N<$g3|sHEC2ui literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano10-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano10-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..b880a0b6111740b16d8acee7d13c5ae9d2ee162b GIT binary patch literal 540 zcmV+%0^|LOP)Px$)=5M`RCt{2+D~f2Ko|w^XSYHSDWyVj)$Y@EPB2H1p25@P3?WDOPB80auPX^C zB2t8|rwcp5KediEpKaj%Kt!EPGLxAxBo81WA|fI^VoO&{Di>0=m{d+|8C13jciKD1 z#5w?2ELTD0eL26KHkA&@#5&)A_4@|X*&HT`ac&e8lggPS#&kBv`h9a$SF5DC_yczU zT$+m?+NT=h#Fj42rQRkJ>p!dMXjYDGBkHp`9vO%&@%V6$*O#Yy-^HYIi{%O?iIL_4 z0O^6!P2VC{%LiPV3kcP8exT6~ z_-!sAR4eiWzsLoIQppc!J$((z1%zsAe&EMkKq&3}fLiaJ%LQCgPwVmnp}Bxir|N2A z@oT&XGqJ88b@!eQ`-We0#t!R9b8*kZ0oI!jyqV;Gjf7i;8(JNrASIWM3iYV$E%|kU eh=_=Y=)6y=quw$AN!>930000Px$;Ymb6RCt{2+Cgf;_}1hY1KU5Q{R zMT+41brHwLRPAUbb<+RaX=2EGGZTlr2M`ev5m9b3U8vYh|N1_zNo=N*>Ed8acjYf$ z-`)WLiP%~s!NuX?D%(rIWV%oj4KSN8vHDo=E)ZHWiub(wSYtL{!bAfcn+1-F%`{F$ z0Vn`X#JbPHiBoY&PyiaI;+FPaJPjZp`Pa91m}r1F6#zi{zJ-yAcIO026S2G5JRTZ| z&Cq##z{~Sf9@lnSXq?L4=%bXWfbGo!7o%Ga4Y8Td=1Yu+25~BA-?sn&?N$>e8iYLh z0P=r;)p`RUe;&9v`@Qa0eC4(8)=Ov)zeA42cJRdFfx0B2_z*A0==I~!l5lF%bI7-i zP|Q#gHyiRbv3W?Zn z>-A_2-b2;B3ct!~B39e2Cbpy20P+9;{A$F?*N9Wmey@wwdV`UPZfhn~)kPL+w_3f_ paTLzl3HE#4S|)*rh=_>(qfhD4-ZH8i%QOH0002ovPDHLkV1iZ316Tk6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano11-inhand-left.png b/Resources/Textures/Objects/Specific/Xenoarchaeology/item_artifacts.rsi/ano11-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3718ea37e804043815f5202cb51f6520c69474 GIT binary patch literal 534 zcmV+x0_pvUP)Px$&`Cr=RCt{2*)dDQKpX||R~2yxBBW&KU{JesY9~KICnrZO*4?RtgOeXXM9{Bb z2iHzcu7coFr-G|9OO!fx-{=f3-31t3h%D}yO7}lA|fIpA|fIb)vew5 z=PAzFS%H^3#|lc@J3L*pmCZyMK=Q<^Tf1@IFXHXt?&bII<4T`+E@NIIi4n40Z^Qr) zg#iks3I;(B%U%J!P8*Kv0RURf3rnvAxV?Y;95>fIn_I?4yO#ThC-KKHLcjYo8iE;0mg}F) zy}7=kzecpLz~$Ld4gm6g5dcsqRq!#4&}yD%S|gpyMw@8zy5{{N`rW6|Z&^+*nQP+) z&?Gnd-*eX7nK6@_77-B<5fKp)5s|UjZ-%++SZRkR)eJM%p$@=KGn~%hHqZ-<%^9W& zTP<&*x>);i+y*V%aXoC;8*voYsOwN~fX!yuRs&5P0J9lRv(-RT2Vgc8g#p~v4ZKGK zTAycfmYikkI@AHMo8dGY4K)2*y>oCJvzpPx$+DSw~RCt{2+A&MRKoke?e{|^(x}>jQ`C<)=Hd<4=U&Di%LY+>_wVk0+ivnp2`)9czw8go+m9G;ua}#rX1H(rj+c*JA}>AXoB*Aj<54V0iI$Ph&heyJ_3D+_qn2m|=Pl_ce@d^O+bdD#*l9YH8)Y&=y9ZS;Ol?r#}UZ*`gC;jcfc%Lto-z6-%bDa7{ iXX+CqA|fK9zrF#ELlEnS#6A810000