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~@4RIDwu6iW0SET8%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+iV5
zMw(}^O$&g&It66|*2M<4X^B}=i3Sp%<{8pF0|2CXrZo@rHh=`$riC=mPD)TzNb?L)
z5*yTj<2gUoDJXT`fl>s7esD5VWJDhmq9iu{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