From 27a162ea69175729aa228ee11b2194d325f524b6 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Wed, 27 Sep 2023 12:44:27 +0100
Subject: [PATCH 001/112] Created Bounty System Test Level
---
.../.idea/.idea.EndlessVendetta/.idea/.gitignore | 13 +++++++++++++
.../.idea/.idea.EndlessVendetta/.idea/encodings.xml | 4 ++++
.../.idea.EndlessVendetta/.idea/indexLayout.xml | 8 ++++++++
.../.idea/.idea.EndlessVendetta/.idea/vcs.xml | 6 ++++++
.../Content/Levels/BountySystemTestLevel.umap | 3 +++
.../Architecture/Floor_400x400.uasset | 4 ++--
.../0/35/GNWDM49ITFAL99MAPU63KW.uasset | 3 +++
.../0/9Q/BGN44FCVKAUBI74L0PVJFH.uasset | 3 +++
.../0/N7/I6SI61JAJULQZ8KSYNC7V4.uasset | 3 +++
.../1/OG/60Y1DLNNKXGJ816DWXWR4K.uasset | 3 +++
.../1/WB/Q6U5CZJDM49ZZNLD2B3UZ4.uasset | 3 +++
.../2/0X/FHOYQRCBJ9TSY34PR9YG9K.uasset | 3 +++
.../2/EG/J1DWWT3IWLXFAZ4ST6V4ZS.uasset | 3 +++
.../2/KW/P7HO2KS2H3F9KY2UWEMFSW.uasset | 3 +++
.../2/OE/7WS9WIEXMH5U64C0ZXVHDG.uasset | 3 +++
.../2/U9/CEJXWHF4HZOWAJH0Z9DVXF.uasset | 3 +++
.../2/UJ/OE9CR46TEW4L20164ZOYX9.uasset | 3 +++
.../3/0N/O2LCQ39RFAI1HX77K8TT52.uasset | 3 +++
.../3/4F/8S26VJON8I4V3TGO6PH8SW.uasset | 3 +++
.../3/MG/Q97N1TH047UOIJQK4OEQ5P.uasset | 3 +++
.../3/XR/86ZFQ3D80QB5U0HXZMZRGT.uasset | 3 +++
.../4/80/Z3VOE7HM87EM9Q66BHOTNC.uasset | 3 +++
.../4/G9/R30GSAVEHD5O8OMLN42SQH.uasset | 3 +++
.../4/LR/K1RHQ8GO0CIBCOJ2CQ7VBC.uasset | 3 +++
.../4/ML/607V0BD8JKYMIZZNQFWT2P.uasset | 3 +++
.../4/TC/55207AXCWRBDEIQMVAL73E.uasset | 3 +++
.../4/Y1/CVW9DVNZATUQ7W422U0IDZ.uasset | 3 +++
.../5/0F/NWBXM8ZFAWQ9K0C9AYA4E9.uasset | 3 +++
.../5/W2/NP5W2WCJMUV9NOZ8VBFC5X.uasset | 3 +++
.../6/1E/Z18X6DQ1RLUHH8APD8MK7W.uasset | 3 +++
.../6/9B/3CEIJDHVWAVHQMIEAN91R7.uasset | 3 +++
.../6/AF/I5Q6J2LIS5W4WR5VI62AUG.uasset | 3 +++
.../6/AK/W7ZHA42P7DRNS3O3QN8BSU.uasset | 3 +++
.../6/PD/CPMXMJW3VW3GEW6AKWR5GJ.uasset | 3 +++
.../7/55/DJOXM0EW53J6H228XSA0N1.uasset | 3 +++
.../7/6H/PL136XXOA5LKR53PXV3BUN.uasset | 3 +++
.../7/HR/WN4SY5WWOIF8QI91SK7CTH.uasset | 3 +++
.../7/K9/0J1KOMY2RH63G5MV4DPJZ1.uasset | 3 +++
.../8/9I/F6ZJ66HW9CDSFFSIQKWXDI.uasset | 3 +++
.../8/E9/H5X3629C3DOMFX077AZFMW.uasset | 3 +++
.../8/IE/ULZSRX1AMEI6J5HUXG0SSV.uasset | 3 +++
.../8/IM/FJ6HRZ9HXPG7XMNJXX9XE0.uasset | 3 +++
.../8/OV/F9IKRV0GCX552V3AOWFU4C.uasset | 3 +++
.../8/TB/7E3XSFVKXJH71BWPQK7DE7.uasset | 3 +++
.../8/TM/XCQ9IRO5QUOT8DURISJJX0.uasset | 3 +++
.../9/22/540LIYPKX7RW44ULUEHGHE.uasset | 3 +++
.../9/J0/NAURUIYIL4FWMCLRWUDE1X.uasset | 3 +++
.../A/F8/VBWZ0ZW0LJXN6633VM36TB.uasset | 3 +++
.../A/I4/GYPPACX2Q6XUN509PQXXUB.uasset | 3 +++
.../B/99/HIHVSRNPR1359HYG9VQ4S9.uasset | 3 +++
.../B/M4/WDZ38E5FQFNLQ3W08AD74K.uasset | 3 +++
.../C/C8/V93JCJG5GNPG3OANIVPEU2.uasset | 3 +++
.../C/IY/1DYGNRS7MUF1969G9AKFEQ.uasset | 3 +++
.../C/R8/1FYI4WVBKRV7XPNB9SF85N.uasset | 3 +++
.../C/TJ/KML81PLR61JZQ25ZCRTOHM.uasset | 3 +++
.../C/X1/J1KYK53FD26XTDA5AYVCA5.uasset | 3 +++
.../D/C5/GO9F5BX1OG0G37W9TQNCJF.uasset | 3 +++
.../D/JF/YGMLISQYZUYCOFWGX11BA5.uasset | 3 +++
.../D/KB/OJ5NYYQG4LT79W8I5I6MS3.uasset | 3 +++
.../E/13/WANY5DUXOHAN9B8VO419ZD.uasset | 3 +++
.../E/72/2Q6FTG9QBV70Q6RY0KMH00.uasset | 3 +++
.../E/C9/PUEF3SDZX6YW93741SQAXO.uasset | 3 +++
.../E/F1/UO65QKXRP70QKOKHZSMZ1F.uasset | 3 +++
.../E/MX/T78JL0KEIV77Y3QP6GYB54.uasset | 3 +++
.../E/XX/PPC77XHOJNZW9PWV5OHH00.uasset | 3 +++
.../0/TQ/3ACFHBDWFABKU596RXRO53.uasset | 3 +++
.../1/30/W9Z34RUFOXLO8DC8TGLS52.uasset | 3 +++
.../3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset | 3 +++
.../4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset | 3 +++
.../4/OR/RK9JDE40KKJZQWFMFL26I5.uasset | 3 +++
.../5/3P/SF481C8C6IO4CAHI6873XE.uasset | 3 +++
.../7/IO/6Y51GE24EVFOHXCG615BY1.uasset | 3 +++
.../D/WD/LGTPJJO55ED5H60IZ3025H.uasset | 3 +++
73 files changed, 237 insertions(+), 2 deletions(-)
create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/.gitignore
create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/encodings.xml
create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/indexLayout.xml
create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/vcs.xml
create mode 100644 EndlessVendetta/Content/Levels/BountySystemTestLevel.umap
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/35/GNWDM49ITFAL99MAPU63KW.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/9Q/BGN44FCVKAUBI74L0PVJFH.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/N7/I6SI61JAJULQZ8KSYNC7V4.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/OG/60Y1DLNNKXGJ816DWXWR4K.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/WB/Q6U5CZJDM49ZZNLD2B3UZ4.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/0X/FHOYQRCBJ9TSY34PR9YG9K.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/EG/J1DWWT3IWLXFAZ4ST6V4ZS.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/KW/P7HO2KS2H3F9KY2UWEMFSW.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/OE/7WS9WIEXMH5U64C0ZXVHDG.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/U9/CEJXWHF4HZOWAJH0Z9DVXF.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/UJ/OE9CR46TEW4L20164ZOYX9.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/0N/O2LCQ39RFAI1HX77K8TT52.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/4F/8S26VJON8I4V3TGO6PH8SW.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/MG/Q97N1TH047UOIJQK4OEQ5P.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/XR/86ZFQ3D80QB5U0HXZMZRGT.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/80/Z3VOE7HM87EM9Q66BHOTNC.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/G9/R30GSAVEHD5O8OMLN42SQH.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/LR/K1RHQ8GO0CIBCOJ2CQ7VBC.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/ML/607V0BD8JKYMIZZNQFWT2P.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/TC/55207AXCWRBDEIQMVAL73E.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/Y1/CVW9DVNZATUQ7W422U0IDZ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/0F/NWBXM8ZFAWQ9K0C9AYA4E9.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/W2/NP5W2WCJMUV9NOZ8VBFC5X.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/1E/Z18X6DQ1RLUHH8APD8MK7W.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/9B/3CEIJDHVWAVHQMIEAN91R7.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AF/I5Q6J2LIS5W4WR5VI62AUG.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AK/W7ZHA42P7DRNS3O3QN8BSU.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/PD/CPMXMJW3VW3GEW6AKWR5GJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/55/DJOXM0EW53J6H228XSA0N1.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/6H/PL136XXOA5LKR53PXV3BUN.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/HR/WN4SY5WWOIF8QI91SK7CTH.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/K9/0J1KOMY2RH63G5MV4DPJZ1.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/9I/F6ZJ66HW9CDSFFSIQKWXDI.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/E9/H5X3629C3DOMFX077AZFMW.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IE/ULZSRX1AMEI6J5HUXG0SSV.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IM/FJ6HRZ9HXPG7XMNJXX9XE0.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/OV/F9IKRV0GCX552V3AOWFU4C.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TB/7E3XSFVKXJH71BWPQK7DE7.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TM/XCQ9IRO5QUOT8DURISJJX0.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/22/540LIYPKX7RW44ULUEHGHE.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/J0/NAURUIYIL4FWMCLRWUDE1X.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/F8/VBWZ0ZW0LJXN6633VM36TB.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/I4/GYPPACX2Q6XUN509PQXXUB.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/99/HIHVSRNPR1359HYG9VQ4S9.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/M4/WDZ38E5FQFNLQ3W08AD74K.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/C8/V93JCJG5GNPG3OANIVPEU2.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/IY/1DYGNRS7MUF1969G9AKFEQ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/R8/1FYI4WVBKRV7XPNB9SF85N.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/TJ/KML81PLR61JZQ25ZCRTOHM.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/X1/J1KYK53FD26XTDA5AYVCA5.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/C5/GO9F5BX1OG0G37W9TQNCJF.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/JF/YGMLISQYZUYCOFWGX11BA5.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/KB/OJ5NYYQG4LT79W8I5I6MS3.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/13/WANY5DUXOHAN9B8VO419ZD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/72/2Q6FTG9QBV70Q6RY0KMH00.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/C9/PUEF3SDZX6YW93741SQAXO.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/F1/UO65QKXRP70QKOKHZSMZ1F.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/MX/T78JL0KEIV77Y3QP6GYB54.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/XX/PPC77XHOJNZW9PWV5OHH00.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/.gitignore b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/.gitignore
new file mode 100644
index 00000000..f4076847
--- /dev/null
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/contentModel.xml
+/.idea.EndlessVendetta.iml
+/modules.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/encodings.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/encodings.xml
new file mode 100644
index 00000000..df87cf95
--- /dev/null
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/indexLayout.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/indexLayout.xml
new file mode 100644
index 00000000..7b08163c
--- /dev/null
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/vcs.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/vcs.xml
new file mode 100644
index 00000000..6c0b8635
--- /dev/null
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EndlessVendetta/Content/Levels/BountySystemTestLevel.umap b/EndlessVendetta/Content/Levels/BountySystemTestLevel.umap
new file mode 100644
index 00000000..d3a27dd4
--- /dev/null
+++ b/EndlessVendetta/Content/Levels/BountySystemTestLevel.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:08b2531ae6806a5368e1a7a237d570a505db2ebeacac6f84152ce3d5578eb2ba
+size 19390
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index d7e5048f..e3a82355 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4affdcf4a4ad958c59cf0f89fc2b9cd113305262e46a5221a577ae9b2fa83055
-size 14831
+oid sha256:c37220dc1a6682fd8e949470980677a49dab396cf3cf2b7c66e37adb26f36006
+size 14829
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/35/GNWDM49ITFAL99MAPU63KW.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/35/GNWDM49ITFAL99MAPU63KW.uasset
new file mode 100644
index 00000000..f3727df6
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/35/GNWDM49ITFAL99MAPU63KW.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b1e97718185deed3628398f359d1a192db85830f3c92ee0a48d5b6f72ed3aa27
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/9Q/BGN44FCVKAUBI74L0PVJFH.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/9Q/BGN44FCVKAUBI74L0PVJFH.uasset
new file mode 100644
index 00000000..2be1cdc9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/9Q/BGN44FCVKAUBI74L0PVJFH.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71b64dfa91b49a183aa417117f119b337f29d42bce45289965db69b32b76978c
+size 4596
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/N7/I6SI61JAJULQZ8KSYNC7V4.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/N7/I6SI61JAJULQZ8KSYNC7V4.uasset
new file mode 100644
index 00000000..4e23e931
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/0/N7/I6SI61JAJULQZ8KSYNC7V4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9cecec1b3f8ce3dfec6c2709e1418978cd5d719c1062ad5e37f6680e8871fe4e
+size 4775
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/OG/60Y1DLNNKXGJ816DWXWR4K.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/OG/60Y1DLNNKXGJ816DWXWR4K.uasset
new file mode 100644
index 00000000..8a4237f0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/OG/60Y1DLNNKXGJ816DWXWR4K.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:36e178d04426aa3e95de5fe1aa9e1aca57e8251e9923add81957248992e85833
+size 4773
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/WB/Q6U5CZJDM49ZZNLD2B3UZ4.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/WB/Q6U5CZJDM49ZZNLD2B3UZ4.uasset
new file mode 100644
index 00000000..df4a45a5
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/1/WB/Q6U5CZJDM49ZZNLD2B3UZ4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eeef04e445c50c3e53e213f3153ec535b36bc6397fa99e0bc3b0802ed820a196
+size 4498
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/0X/FHOYQRCBJ9TSY34PR9YG9K.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/0X/FHOYQRCBJ9TSY34PR9YG9K.uasset
new file mode 100644
index 00000000..ec892978
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/0X/FHOYQRCBJ9TSY34PR9YG9K.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a8341222c00795e6c7a8d378f249f3575589539229c271519348fd72d9896b7
+size 4019
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/EG/J1DWWT3IWLXFAZ4ST6V4ZS.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/EG/J1DWWT3IWLXFAZ4ST6V4ZS.uasset
new file mode 100644
index 00000000..909d830d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/EG/J1DWWT3IWLXFAZ4ST6V4ZS.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74b0fa5e10f6d25fdcd091a4754ae28353053bb66e7f2480f5ab160846bf4be1
+size 4594
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/KW/P7HO2KS2H3F9KY2UWEMFSW.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/KW/P7HO2KS2H3F9KY2UWEMFSW.uasset
new file mode 100644
index 00000000..aa92c9a4
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/KW/P7HO2KS2H3F9KY2UWEMFSW.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5df5c017c3ae8e66034b98e7bda11c5539ace60a7b6ebca0c5d2df1e7df327f8
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/OE/7WS9WIEXMH5U64C0ZXVHDG.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/OE/7WS9WIEXMH5U64C0ZXVHDG.uasset
new file mode 100644
index 00000000..3d6f1823
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/OE/7WS9WIEXMH5U64C0ZXVHDG.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a8802432593f8e5db500b17aaddd8ffa6667f8428a43921e74020a41ee792df1
+size 4775
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/U9/CEJXWHF4HZOWAJH0Z9DVXF.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/U9/CEJXWHF4HZOWAJH0Z9DVXF.uasset
new file mode 100644
index 00000000..4f82a862
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/U9/CEJXWHF4HZOWAJH0Z9DVXF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a30219e61435d2a0b638f57ad1a724caa4ce8c5de97940443f43c630160d8b3
+size 4847
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/UJ/OE9CR46TEW4L20164ZOYX9.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/UJ/OE9CR46TEW4L20164ZOYX9.uasset
new file mode 100644
index 00000000..97ecaea3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/2/UJ/OE9CR46TEW4L20164ZOYX9.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:59a498180c2d57f773d606e7cfbafce5622f5bc5769bc044c2bb205c49d7a7b0
+size 4880
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/0N/O2LCQ39RFAI1HX77K8TT52.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/0N/O2LCQ39RFAI1HX77K8TT52.uasset
new file mode 100644
index 00000000..3e4143f7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/0N/O2LCQ39RFAI1HX77K8TT52.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:83620ce3f94dd5aabb7cd42c1215c3372d8b4c42b08f9229f9ceeb79344fd96c
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/4F/8S26VJON8I4V3TGO6PH8SW.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/4F/8S26VJON8I4V3TGO6PH8SW.uasset
new file mode 100644
index 00000000..5fc33af2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/4F/8S26VJON8I4V3TGO6PH8SW.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44087fa6b7f3de690d493409baa7da7049eb85822bc6cb06b41cdb284e994359
+size 4743
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/MG/Q97N1TH047UOIJQK4OEQ5P.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/MG/Q97N1TH047UOIJQK4OEQ5P.uasset
new file mode 100644
index 00000000..5e38b19d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/MG/Q97N1TH047UOIJQK4OEQ5P.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:264292b2b52f10f2e57869e2d40f2d2fa458574d144e69142b943d8c66a0f61a
+size 4773
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/XR/86ZFQ3D80QB5U0HXZMZRGT.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/XR/86ZFQ3D80QB5U0HXZMZRGT.uasset
new file mode 100644
index 00000000..80b9f64c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/3/XR/86ZFQ3D80QB5U0HXZMZRGT.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e2d7bedbfe607cdf91529ac872ca1ba931b49221223dbce71fdd6aaf148ab02d
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/80/Z3VOE7HM87EM9Q66BHOTNC.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/80/Z3VOE7HM87EM9Q66BHOTNC.uasset
new file mode 100644
index 00000000..8e2c42c0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/80/Z3VOE7HM87EM9Q66BHOTNC.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:49450719bb5f72be9c82cb53ac0b7ee22a0935eefc31961557398b967ae48b8e
+size 4773
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/G9/R30GSAVEHD5O8OMLN42SQH.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/G9/R30GSAVEHD5O8OMLN42SQH.uasset
new file mode 100644
index 00000000..159ef7c7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/G9/R30GSAVEHD5O8OMLN42SQH.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7fa8d449239d03325948b2524a156b1fccf27c1bca0d4307cc0bef8e8a35f661
+size 4773
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/LR/K1RHQ8GO0CIBCOJ2CQ7VBC.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/LR/K1RHQ8GO0CIBCOJ2CQ7VBC.uasset
new file mode 100644
index 00000000..f91d353e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/LR/K1RHQ8GO0CIBCOJ2CQ7VBC.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a03bfafbbabd6bc905cf9ac7b04975e41a14708842800cfa5f493f6891399e2
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/ML/607V0BD8JKYMIZZNQFWT2P.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/ML/607V0BD8JKYMIZZNQFWT2P.uasset
new file mode 100644
index 00000000..e9541db7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/ML/607V0BD8JKYMIZZNQFWT2P.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4a6ed00a7fdedef013163bc3c365e5898c483ad349d5edc918ad6f8acd6d6103
+size 4486
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/TC/55207AXCWRBDEIQMVAL73E.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/TC/55207AXCWRBDEIQMVAL73E.uasset
new file mode 100644
index 00000000..24f7e651
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/TC/55207AXCWRBDEIQMVAL73E.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e3df538e65dcdfe19ea78c3737258e6af6313fe93102e1678236b347c48b71d6
+size 2502
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/Y1/CVW9DVNZATUQ7W422U0IDZ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/Y1/CVW9DVNZATUQ7W422U0IDZ.uasset
new file mode 100644
index 00000000..b8472760
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/4/Y1/CVW9DVNZATUQ7W422U0IDZ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a8c38b64a2707875c03514fb65aa2910471978ff1f57d33257880a273596834a
+size 3651
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/0F/NWBXM8ZFAWQ9K0C9AYA4E9.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/0F/NWBXM8ZFAWQ9K0C9AYA4E9.uasset
new file mode 100644
index 00000000..379b934d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/0F/NWBXM8ZFAWQ9K0C9AYA4E9.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0513a2fdf9c45342e7156ae7e467334b779cad0408d1cdfb41b7068b07db048f
+size 4601
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/W2/NP5W2WCJMUV9NOZ8VBFC5X.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/W2/NP5W2WCJMUV9NOZ8VBFC5X.uasset
new file mode 100644
index 00000000..25dccee5
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/5/W2/NP5W2WCJMUV9NOZ8VBFC5X.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:41b16314ef8a65243eb88ed7856756d019db3717683cff520b717765f6e4d2af
+size 4773
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/1E/Z18X6DQ1RLUHH8APD8MK7W.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/1E/Z18X6DQ1RLUHH8APD8MK7W.uasset
new file mode 100644
index 00000000..74674679
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/1E/Z18X6DQ1RLUHH8APD8MK7W.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5719a0f764ec0381598f793f7caf06b0e81bfe62774ee18631cc96fa03ea6dc4
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/9B/3CEIJDHVWAVHQMIEAN91R7.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/9B/3CEIJDHVWAVHQMIEAN91R7.uasset
new file mode 100644
index 00000000..bb21c666
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/9B/3CEIJDHVWAVHQMIEAN91R7.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78294ec7406cd39bc8930d0f73db1aefca736d05e6ddf7d960433cf2740dfcd5
+size 4847
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AF/I5Q6J2LIS5W4WR5VI62AUG.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AF/I5Q6J2LIS5W4WR5VI62AUG.uasset
new file mode 100644
index 00000000..229ef4fb
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AF/I5Q6J2LIS5W4WR5VI62AUG.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d233615b6d9a06acd2dbe3653f5b456e1be7556ed8a62284ee23ec1c7cfd1f31
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AK/W7ZHA42P7DRNS3O3QN8BSU.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AK/W7ZHA42P7DRNS3O3QN8BSU.uasset
new file mode 100644
index 00000000..616c1f84
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/AK/W7ZHA42P7DRNS3O3QN8BSU.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a035b11357b9e0e22046672f13d5723a4a1c57a2d6dc701134594951a7ad2fa0
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/PD/CPMXMJW3VW3GEW6AKWR5GJ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/PD/CPMXMJW3VW3GEW6AKWR5GJ.uasset
new file mode 100644
index 00000000..79eb40aa
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/6/PD/CPMXMJW3VW3GEW6AKWR5GJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9520e2c292dd45a4d34d86b5bc5bbf7b74385ecd62a5408085f6d8cdd673a980
+size 4661
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/55/DJOXM0EW53J6H228XSA0N1.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/55/DJOXM0EW53J6H228XSA0N1.uasset
new file mode 100644
index 00000000..8ffd9a97
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/55/DJOXM0EW53J6H228XSA0N1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:102d2e672a9a7bb71d03b9b6a5516bf2c2e114b107104589998f760e0e22c11f
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/6H/PL136XXOA5LKR53PXV3BUN.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/6H/PL136XXOA5LKR53PXV3BUN.uasset
new file mode 100644
index 00000000..b394dfa9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/6H/PL136XXOA5LKR53PXV3BUN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40a80e94c218ce2e5aa484dd715f5b7212a4d0f76eb2544bbbd37b2e00cc3ea2
+size 4846
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/HR/WN4SY5WWOIF8QI91SK7CTH.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/HR/WN4SY5WWOIF8QI91SK7CTH.uasset
new file mode 100644
index 00000000..5f303842
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/HR/WN4SY5WWOIF8QI91SK7CTH.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:228a818727a5d46b1bceba92eb75fc0138eaddec1aed7ac710bed1efd4e1d95c
+size 2454
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/K9/0J1KOMY2RH63G5MV4DPJZ1.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/K9/0J1KOMY2RH63G5MV4DPJZ1.uasset
new file mode 100644
index 00000000..d1e79cf3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/7/K9/0J1KOMY2RH63G5MV4DPJZ1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b74d53dc3396b7bf64aec6498eeb0d2b0847bf474f51d0207dc837b7454d1aea
+size 4773
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/9I/F6ZJ66HW9CDSFFSIQKWXDI.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/9I/F6ZJ66HW9CDSFFSIQKWXDI.uasset
new file mode 100644
index 00000000..df741df0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/9I/F6ZJ66HW9CDSFFSIQKWXDI.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76df75214f9ae0ccdfdb7fa0a947e7c60b074df3bddec657df6394504e27fa87
+size 4599
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/E9/H5X3629C3DOMFX077AZFMW.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/E9/H5X3629C3DOMFX077AZFMW.uasset
new file mode 100644
index 00000000..2ce669ec
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/E9/H5X3629C3DOMFX077AZFMW.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c13c418a6e5ef1f3fb2f2cbe7e3fc3e0dffb84f107d0febfd399d677108875da
+size 4710
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IE/ULZSRX1AMEI6J5HUXG0SSV.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IE/ULZSRX1AMEI6J5HUXG0SSV.uasset
new file mode 100644
index 00000000..449033ee
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IE/ULZSRX1AMEI6J5HUXG0SSV.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9a649a73a9849dd0b38d19f50dc89ab1258982c07b784970b78d34d9100e66c
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IM/FJ6HRZ9HXPG7XMNJXX9XE0.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IM/FJ6HRZ9HXPG7XMNJXX9XE0.uasset
new file mode 100644
index 00000000..fd18ac04
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/IM/FJ6HRZ9HXPG7XMNJXX9XE0.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a6d9636f6401f5b548255d956ca34f5c159817691951cfc805160a7403ea270
+size 4710
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/OV/F9IKRV0GCX552V3AOWFU4C.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/OV/F9IKRV0GCX552V3AOWFU4C.uasset
new file mode 100644
index 00000000..42665482
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/OV/F9IKRV0GCX552V3AOWFU4C.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4d4c47a3b5b5623450b037ad152de90a2d548e5d38942ffcb61f9ba415655032
+size 4775
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TB/7E3XSFVKXJH71BWPQK7DE7.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TB/7E3XSFVKXJH71BWPQK7DE7.uasset
new file mode 100644
index 00000000..d161de91
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TB/7E3XSFVKXJH71BWPQK7DE7.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:851b94848f43a4cd6bad00686a04305d4fbc9b6cb68b346f7aa78bc111d8dce4
+size 3657
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TM/XCQ9IRO5QUOT8DURISJJX0.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TM/XCQ9IRO5QUOT8DURISJJX0.uasset
new file mode 100644
index 00000000..3590e68f
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/8/TM/XCQ9IRO5QUOT8DURISJJX0.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c35efd60e7d360558b5189aa81060ef9af187ea1153c54565b3437d31df98f0
+size 4598
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/22/540LIYPKX7RW44ULUEHGHE.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/22/540LIYPKX7RW44ULUEHGHE.uasset
new file mode 100644
index 00000000..376c9810
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/22/540LIYPKX7RW44ULUEHGHE.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5b7f296da12963ba4910485a6492c067dc454e77a28dadaff20d44d697059ae0
+size 4598
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/J0/NAURUIYIL4FWMCLRWUDE1X.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/J0/NAURUIYIL4FWMCLRWUDE1X.uasset
new file mode 100644
index 00000000..8fbae906
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/9/J0/NAURUIYIL4FWMCLRWUDE1X.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:02ae5a0f6f1b670c8cd9259880fd62bed9db13b75e30109a8eea4ffe2c3bca28
+size 5371
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/F8/VBWZ0ZW0LJXN6633VM36TB.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/F8/VBWZ0ZW0LJXN6633VM36TB.uasset
new file mode 100644
index 00000000..e04c23c3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/F8/VBWZ0ZW0LJXN6633VM36TB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:87c0c75e225c71ba0ea0a65874e5b863944c41e02bba7d2af2fde1a84aadc72d
+size 4712
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/I4/GYPPACX2Q6XUN509PQXXUB.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/I4/GYPPACX2Q6XUN509PQXXUB.uasset
new file mode 100644
index 00000000..f6c04b0c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/A/I4/GYPPACX2Q6XUN509PQXXUB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6321bd12e6718e0dc77b2d83ab64ce337d9ccbae036c04ffca4440bd2151a4a8
+size 4847
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/99/HIHVSRNPR1359HYG9VQ4S9.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/99/HIHVSRNPR1359HYG9VQ4S9.uasset
new file mode 100644
index 00000000..f6552999
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/99/HIHVSRNPR1359HYG9VQ4S9.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:86824e8bff939dab04f169c970d8516dbbc8c1462b531b9d0d385e6ee646d351
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/M4/WDZ38E5FQFNLQ3W08AD74K.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/M4/WDZ38E5FQFNLQ3W08AD74K.uasset
new file mode 100644
index 00000000..4820ed56
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/B/M4/WDZ38E5FQFNLQ3W08AD74K.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:10e9c8b331c7e39000e9e1be1e8497cf20e21321591f282fbb088f9c39d03291
+size 4750
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/C8/V93JCJG5GNPG3OANIVPEU2.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/C8/V93JCJG5GNPG3OANIVPEU2.uasset
new file mode 100644
index 00000000..09957a2e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/C8/V93JCJG5GNPG3OANIVPEU2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62e247610e993dae8a228e98be8fd5d5b7d0cae3470f00274b7b4edf7c90c035
+size 4653
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/IY/1DYGNRS7MUF1969G9AKFEQ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/IY/1DYGNRS7MUF1969G9AKFEQ.uasset
new file mode 100644
index 00000000..be7af589
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/IY/1DYGNRS7MUF1969G9AKFEQ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:426622e0d16acd8195c950af262884c25b5878785435d57188a8f0067194c447
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/R8/1FYI4WVBKRV7XPNB9SF85N.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/R8/1FYI4WVBKRV7XPNB9SF85N.uasset
new file mode 100644
index 00000000..2997e54c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/R8/1FYI4WVBKRV7XPNB9SF85N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b38458ec107ff72a0770fe43aeaab2f8b9f5e93c0b6ff9ae3efbca63dc251b3a
+size 4775
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/TJ/KML81PLR61JZQ25ZCRTOHM.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/TJ/KML81PLR61JZQ25ZCRTOHM.uasset
new file mode 100644
index 00000000..3c8f1a1c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/TJ/KML81PLR61JZQ25ZCRTOHM.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:825d2d3a4266fc8c9cb3caab90f332e327fb9a1d5ad4dcaecafc55cb41e30b92
+size 12506
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/X1/J1KYK53FD26XTDA5AYVCA5.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/X1/J1KYK53FD26XTDA5AYVCA5.uasset
new file mode 100644
index 00000000..a82f4d9e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/X1/J1KYK53FD26XTDA5AYVCA5.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4e1f4dd6dad0f55fcc1c479d0cd59fcd1e2845f2276a65652e47169a636b31f5
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/C5/GO9F5BX1OG0G37W9TQNCJF.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/C5/GO9F5BX1OG0G37W9TQNCJF.uasset
new file mode 100644
index 00000000..2ac08f13
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/C5/GO9F5BX1OG0G37W9TQNCJF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cdb84f5781f4fd2c47400bb270d794a6d16ec858bf9af297471446d9620d75fd
+size 3637
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/JF/YGMLISQYZUYCOFWGX11BA5.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/JF/YGMLISQYZUYCOFWGX11BA5.uasset
new file mode 100644
index 00000000..ffdb22d9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/JF/YGMLISQYZUYCOFWGX11BA5.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b3a2799d8af52c79cbc5e178653d65bac68fde63e7fa18436ac0cbfbaffd04df
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/KB/OJ5NYYQG4LT79W8I5I6MS3.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/KB/OJ5NYYQG4LT79W8I5I6MS3.uasset
new file mode 100644
index 00000000..03b63281
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/D/KB/OJ5NYYQG4LT79W8I5I6MS3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea74791fd8856cbebbe60ca5574563dea9998ae98cf3ea204d691c99e2193d0b
+size 4750
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/13/WANY5DUXOHAN9B8VO419ZD.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/13/WANY5DUXOHAN9B8VO419ZD.uasset
new file mode 100644
index 00000000..070cfeaf
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/13/WANY5DUXOHAN9B8VO419ZD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:37a8f63c87e5e66bd83953c692b83605d10a046f85ede974f253cd50523bdab6
+size 5274
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/72/2Q6FTG9QBV70Q6RY0KMH00.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/72/2Q6FTG9QBV70Q6RY0KMH00.uasset
new file mode 100644
index 00000000..220c2524
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/72/2Q6FTG9QBV70Q6RY0KMH00.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0b8255d19a25b2a422f2bc6bc5bf38f3f910b89f0701a8353d77d08d228d2c1f
+size 4752
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/C9/PUEF3SDZX6YW93741SQAXO.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/C9/PUEF3SDZX6YW93741SQAXO.uasset
new file mode 100644
index 00000000..f8cdee67
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/C9/PUEF3SDZX6YW93741SQAXO.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f753a2468824b16930329099d1d086f24f83cd972c27c9538d6fbf1564f3473
+size 4601
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/F1/UO65QKXRP70QKOKHZSMZ1F.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/F1/UO65QKXRP70QKOKHZSMZ1F.uasset
new file mode 100644
index 00000000..40c2ae15
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/F1/UO65QKXRP70QKOKHZSMZ1F.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7952a3fc61719f0b4a6ab11a7975136e58873cd15c51ccaf3de7f55ff27af84
+size 3866
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/MX/T78JL0KEIV77Y3QP6GYB54.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/MX/T78JL0KEIV77Y3QP6GYB54.uasset
new file mode 100644
index 00000000..f1f517bc
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/MX/T78JL0KEIV77Y3QP6GYB54.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:09a9cf559b65797287c43acf8f41b8a709a0c7fa18f3295c14f4a6465cf06f6a
+size 4601
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/XX/PPC77XHOJNZW9PWV5OHH00.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/XX/PPC77XHOJNZW9PWV5OHH00.uasset
new file mode 100644
index 00000000..44d364a0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/E/XX/PPC77XHOJNZW9PWV5OHH00.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a7a355d2b9e10bd064b3f8d6a8e5989c3f5f61e7e601b95f418d179740baade
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset
new file mode 100644
index 00000000..052f4dbc
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a79b1aa4df4ba710fb0c190153eca14aafc650f2283ab6f75fdef50ec8187457
+size 2266
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset
new file mode 100644
index 00000000..fb35d4ae
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9983df2ebcf1a8ea3b0984d5a69729548ac7b6e738d1bb05a4422a57087faf5
+size 2266
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset
new file mode 100644
index 00000000..ffee1d42
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:655a0e0a9a85c00698ba8db09c5273a150c8751bb22ae98951aceca46be08e61
+size 2268
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset
new file mode 100644
index 00000000..dddfcf3e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce01ca0c1ff2b1b33409de4eb58726f2666d8d6448567a5b0625d7b79e1438fd
+size 2266
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset
new file mode 100644
index 00000000..f16bdbc9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:32078880cc6806c270d8d27d528e43c3fc80cba4665271bb3ac2af6f7953ce72
+size 2266
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset
new file mode 100644
index 00000000..e193b09f
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57788d46a02cc5322526c77cd47d5cd75659ffc5c327293a7caa8d3f9457b944
+size 2272
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset
new file mode 100644
index 00000000..27ff8b05
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:547a9c620a0f9ad81097e2593122e87fecc7a71aac871bc70801ec438da613e0
+size 2280
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset
new file mode 100644
index 00000000..acf08f54
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1c1adbd3bf1a497e1cdc01c183a824327dee8588e190117f15951d7aca76a44b
+size 2268
From 720620b7d04e9a459f1da8d5106ae24968976a24 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Wed, 27 Sep 2023 13:32:15 +0100
Subject: [PATCH 002/112] Added GunMechanic tester level
Added gun mechanic tester level to start working on the basic gun mechanics in a seperated level
---
.../.idea/indexLayout.xml | 4 ++-
.../.idea.EndlessVendetta.dir/.idea/vcs.xml | 7 ++++
EndlessVendetta/Config/DefaultEngine.ini | 4 +--
.../FirstPerson/Maps/GunMechanicTester.umap | 3 ++
.../Architecture/Floor_400x400.uasset | 4 +--
.../0/25/17SUOAG1ZXCXS8NCT6BX1J.uasset | 3 ++
.../0/GK/2Y8SXHNN2DD2HWUFT5W8WJ.uasset | 3 ++
.../0/IZ/XQW4EUO3VZ41RD1M86T11D.uasset | 3 ++
.../0/X0/A8AJ030WDFS3UX0CDW7NQT.uasset | 3 ++
.../1/CZ/T22L35O6ZL5DC7H1KAS12V.uasset | 3 ++
.../1/EX/M4NUWNTSMSB30D92R0JNVH.uasset | 3 ++
.../1/ZI/R1ZA0YHAVRKP938ICPJNTS.uasset | 3 ++
.../2/OY/NWUJZZF3O1FRAXABLHEC7A.uasset | 3 ++
.../2/ZT/CS7AJMMD9W67X2ZP1JTMDY.uasset | 3 ++
.../3/2S/VMP9PWZPQHZL0PQ6M3P46T.uasset | 3 ++
.../4/MA/A156FPMZYSJI32UUV5KAUD.uasset | 3 ++
.../4/O7/Y27SOAR2KGMJHHHD7QG9W3.uasset | 3 ++
.../4/P4/6UW1DVWYFFIZTMUG9V8YCE.uasset | 3 ++
.../4/SX/ZQBKEDB8JW6BYC09LYGEGM.uasset | 3 ++
.../4/WG/SUVM1JZ0PVCC7SNBKLONYJ.uasset | 3 ++
.../4/YT/5VDYD721E8OB69DHUVNW4O.uasset | 3 ++
.../5/66/WQ2W64S04PNZLE92TJRS11.uasset | 3 ++
.../5/AC/1Z9VIJ2JRVY0MQQ44OF11V.uasset | 3 ++
.../5/C2/79BVTOH23GR8N0SWG6GWWW.uasset | 3 ++
.../5/DI/05W7546RV25UV9MUAZJUW8.uasset | 3 ++
.../5/XV/QS5R65LII0DY9AY8BZX62U.uasset | 3 ++
.../6/0M/M2D0X7GYI4FK051TQ36XEU.uasset | 3 ++
.../6/1X/M9YEJR335ZC5O8CL7YMOHP.uasset | 3 ++
.../6/2C/Q7P1X4BLFUTW8VRW3P7RIB.uasset | 3 ++
.../6/TX/BTC9S0W28D5I25IOL56715.uasset | 3 ++
.../6/XS/WL0ZK548OH4TTOZX0S761Y.uasset | 3 ++
.../6/YZ/8IO3NK6CAJNBOCZAR2BZPG.uasset | 3 ++
.../7/B5/TD7932XGOMQQH3EN17E3ZB.uasset | 3 ++
.../7/BL/5QFMPQA4LA59B0C1K7VEUO.uasset | 3 ++
.../8/GE/SFWEJY7HPPETIYTKPNF2PM.uasset | 3 ++
.../8/HC/5I57CIXRPQ6ES1G8NUV4AG.uasset | 3 ++
.../8/I6/GW76OI4EC3GFQC5NOD09UZ.uasset | 3 ++
.../8/IZ/57UNOHSEA89PDKIFF498WP.uasset | 3 ++
.../8/OE/2U43UZHFR9OAOPQP4TQBB4.uasset | 3 ++
.../8/OX/CSW98GYLISUMWC9Q0DOGEL.uasset | 3 ++
.../8/PC/IBGC4ILAFO0EI86PK0LA5R.uasset | 3 ++
.../8/RL/6H17UR2CPP4I0BW6W3N1FP.uasset | 3 ++
.../9/UY/QODPAS7H93ZRX0HZSVXGFI.uasset | 3 ++
.../9/V0/K6EQUGOEAMS93X1F5D1MHF.uasset | 3 ++
.../9/VR/NNCUWMLACWHDW29WII4SD7.uasset | 3 ++
.../9/VS/DCB65WIYSZJZJOCI6WSJ9Q.uasset | 3 ++
.../9/W0/UE1P9W899X3GCWVKMDDSGK.uasset | 3 ++
.../A/61/IQXXIOWP1L9O63YAABFG27.uasset | 3 ++
.../A/S6/727VECD7OCUDIZ2GHRBJJ3.uasset | 3 ++
.../B/LW/P5662X206J8FK010FEDYJH.uasset | 3 ++
.../C/05/HA4J5CS0609L7XWM1WR2F7.uasset | 3 ++
.../C/BN/CVBE6G5FCQBP7JH4WABUQD.uasset | 3 ++
.../C/O1/KOEM67VWDH98WGOAJBI4E2.uasset | 3 ++
.../D/F4/GUJDQQXQ025WJJ6RLE0SSF.uasset | 3 ++
.../D/KR/WJ92O3G9AE40MUVIPW466O.uasset | 3 ++
.../D/P4/4NNEH19QJ3ARXX12O9TPD1.uasset | 3 ++
.../D/PI/JNOQ11LVO9MVMU7H8GL3D7.uasset | 3 ++
.../D/V3/7KJ2D3EDU8FL3HZEPRM5FK.uasset | 3 ++
.../E/6M/TFDPLCSP2249C7MMH6Q6IJ.uasset | 3 ++
.../E/7O/DU906LIBS2H7DIXZOXTLI5.uasset | 3 ++
.../E/CF/03RTKZM37AOGZ60H864CDB.uasset | 3 ++
.../E/F0/WXXA0FYBUVM9150G6DL079.uasset | 3 ++
.../E/I2/594QUZU1UVGU5T002GJSWF.uasset | 3 ++
.../0/37/3XN21XBZV427UIXTUT8H9W.uasset | 3 ++
.../1/KK/5N51OQ0EA6OYJSFQZZMEN8.uasset | 3 ++
.../3/PO/7NO7RHQONSP3PXZM34SO4K.uasset | 3 ++
.../4/0M/WY2357UKBHUI8P5RHRK2DZ.uasset | 3 ++
.../4/CY/PA7VG9UZWHLZTEZL7VUBI9.uasset | 3 ++
.../5/YT/BWXH8AQGEZZOD1E6ZNPXSC.uasset | 3 ++
.../7/8N/ZRFPBTO989XQKP7T5RS7KK.uasset | 3 ++
.../D/KZ/6W87MJLX6NJ5XR8ELXDNYK.uasset | 3 ++
.../HoloLens/Config/HoloLensEngine.ini | 32 +++++++++++++++++++
72 files changed, 247 insertions(+), 5 deletions(-)
create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml
create mode 100644 EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/25/17SUOAG1ZXCXS8NCT6BX1J.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/GK/2Y8SXHNN2DD2HWUFT5W8WJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/IZ/XQW4EUO3VZ41RD1M86T11D.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/X0/A8AJ030WDFS3UX0CDW7NQT.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/CZ/T22L35O6ZL5DC7H1KAS12V.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/EX/M4NUWNTSMSB30D92R0JNVH.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/ZI/R1ZA0YHAVRKP938ICPJNTS.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/OY/NWUJZZF3O1FRAXABLHEC7A.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/ZT/CS7AJMMD9W67X2ZP1JTMDY.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/3/2S/VMP9PWZPQHZL0PQ6M3P46T.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/MA/A156FPMZYSJI32UUV5KAUD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/O7/Y27SOAR2KGMJHHHD7QG9W3.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/P4/6UW1DVWYFFIZTMUG9V8YCE.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/SX/ZQBKEDB8JW6BYC09LYGEGM.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/WG/SUVM1JZ0PVCC7SNBKLONYJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/YT/5VDYD721E8OB69DHUVNW4O.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/66/WQ2W64S04PNZLE92TJRS11.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/AC/1Z9VIJ2JRVY0MQQ44OF11V.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/C2/79BVTOH23GR8N0SWG6GWWW.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/DI/05W7546RV25UV9MUAZJUW8.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/XV/QS5R65LII0DY9AY8BZX62U.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/0M/M2D0X7GYI4FK051TQ36XEU.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/1X/M9YEJR335ZC5O8CL7YMOHP.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/2C/Q7P1X4BLFUTW8VRW3P7RIB.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/TX/BTC9S0W28D5I25IOL56715.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/XS/WL0ZK548OH4TTOZX0S761Y.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/YZ/8IO3NK6CAJNBOCZAR2BZPG.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/B5/TD7932XGOMQQH3EN17E3ZB.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/BL/5QFMPQA4LA59B0C1K7VEUO.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/GE/SFWEJY7HPPETIYTKPNF2PM.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/HC/5I57CIXRPQ6ES1G8NUV4AG.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/I6/GW76OI4EC3GFQC5NOD09UZ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/IZ/57UNOHSEA89PDKIFF498WP.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OE/2U43UZHFR9OAOPQP4TQBB4.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OX/CSW98GYLISUMWC9Q0DOGEL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/PC/IBGC4ILAFO0EI86PK0LA5R.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/RL/6H17UR2CPP4I0BW6W3N1FP.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/UY/QODPAS7H93ZRX0HZSVXGFI.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/V0/K6EQUGOEAMS93X1F5D1MHF.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VR/NNCUWMLACWHDW29WII4SD7.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VS/DCB65WIYSZJZJOCI6WSJ9Q.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/W0/UE1P9W899X3GCWVKMDDSGK.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/61/IQXXIOWP1L9O63YAABFG27.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/S6/727VECD7OCUDIZ2GHRBJJ3.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/B/LW/P5662X206J8FK010FEDYJH.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/05/HA4J5CS0609L7XWM1WR2F7.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/BN/CVBE6G5FCQBP7JH4WABUQD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/O1/KOEM67VWDH98WGOAJBI4E2.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/F4/GUJDQQXQ025WJJ6RLE0SSF.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/KR/WJ92O3G9AE40MUVIPW466O.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/P4/4NNEH19QJ3ARXX12O9TPD1.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/PI/JNOQ11LVO9MVMU7H8GL3D7.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/V3/7KJ2D3EDU8FL3HZEPRM5FK.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/6M/TFDPLCSP2249C7MMH6Q6IJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/7O/DU906LIBS2H7DIXZOXTLI5.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/CF/03RTKZM37AOGZ60H864CDB.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/F0/WXXA0FYBUVM9150G6DL079.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/I2/594QUZU1UVGU5T002GJSWF.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/0/37/3XN21XBZV427UIXTUT8H9W.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/1/KK/5N51OQ0EA6OYJSFQZZMEN8.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/3/PO/7NO7RHQONSP3PXZM34SO4K.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/0M/WY2357UKBHUI8P5RHRK2DZ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/CY/PA7VG9UZWHLZTEZL7VUBI9.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/5/YT/BWXH8AQGEZZOD1E6ZNPXSC.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/7/8N/ZRFPBTO989XQKP7T5RS7KK.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/D/KZ/6W87MJLX6NJ5XR8ELXDNYK.uasset
create mode 100644 EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/indexLayout.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/indexLayout.xml
index 7b08163c..5c30a127 100644
--- a/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/indexLayout.xml
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/indexLayout.xml
@@ -1,7 +1,9 @@
-
+
+ ../../Endless-Vendetta
+
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml
new file mode 100644
index 00000000..62bd7a01
--- /dev/null
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EndlessVendetta/Config/DefaultEngine.ini b/EndlessVendetta/Config/DefaultEngine.ini
index b419691f..1c20f465 100644
--- a/EndlessVendetta/Config/DefaultEngine.ini
+++ b/EndlessVendetta/Config/DefaultEngine.ini
@@ -4,14 +4,14 @@
+EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore)))
[/Script/EngineSettings.GameMapsSettings]
-EditorStartupMap=/Game/FirstPerson/Maps/FirstPersonMap.FirstPersonMap
+EditorStartupMap=/Game/FirstPerson/Maps/GunMechanicTester.GunMechanicTester
LocalMapOptions=
TransitionMap=
bUseSplitscreen=True
TwoPlayerSplitscreenLayout=Horizontal
ThreePlayerSplitscreenLayout=FavorTop
GameInstanceClass=/Script/Engine.GameInstance
-GameDefaultMap=/Game/FirstPerson/Maps/FirstPersonMap.FirstPersonMap
+GameDefaultMap=/Game/FirstPerson/Maps/GunMechanicTester.GunMechanicTester
ServerDefaultMap=/Engine/Maps/Entry
GlobalDefaultGameMode=/Script/EndlessVendetta.EndlessVendettaGameMode
GlobalDefaultServerGameMode=None
diff --git a/EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap b/EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap
new file mode 100644
index 00000000..503b25b8
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee182b80d3a23ed532f8e4efed1b99c1c648c6076e3e6d72b75e8a511784ff06
+size 19378
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index d7e5048f..db9c31d9 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4affdcf4a4ad958c59cf0f89fc2b9cd113305262e46a5221a577ae9b2fa83055
-size 14831
+oid sha256:c4714323c517973cefc36046bc8310e35417fac27e8b323667e4a46c5c09ba5f
+size 14803
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/25/17SUOAG1ZXCXS8NCT6BX1J.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/25/17SUOAG1ZXCXS8NCT6BX1J.uasset
new file mode 100644
index 00000000..7c8720d9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/25/17SUOAG1ZXCXS8NCT6BX1J.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:772087796135600b11d143dec0c8996663a3f6185c09c7d50e09e235b06a8ff4
+size 4791
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/GK/2Y8SXHNN2DD2HWUFT5W8WJ.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/GK/2Y8SXHNN2DD2HWUFT5W8WJ.uasset
new file mode 100644
index 00000000..eefd8c77
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/GK/2Y8SXHNN2DD2HWUFT5W8WJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:db94b82619e2d3184e577effce11d85cd85c4085e59d3aed9dc9223f33bc0c24
+size 4502
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/IZ/XQW4EUO3VZ41RD1M86T11D.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/IZ/XQW4EUO3VZ41RD1M86T11D.uasset
new file mode 100644
index 00000000..061cd85a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/IZ/XQW4EUO3VZ41RD1M86T11D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:28ffaa0dfb2279028ea95ca7fe6117646211631961efb80ea958393a8595b96d
+size 4791
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/X0/A8AJ030WDFS3UX0CDW7NQT.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/X0/A8AJ030WDFS3UX0CDW7NQT.uasset
new file mode 100644
index 00000000..3dbc6545
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/X0/A8AJ030WDFS3UX0CDW7NQT.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:91f151f31ecf16ac36949ff0dc58e7978690b14334ab19dcf8027e38c6e8c393
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/CZ/T22L35O6ZL5DC7H1KAS12V.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/CZ/T22L35O6ZL5DC7H1KAS12V.uasset
new file mode 100644
index 00000000..728f0e59
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/CZ/T22L35O6ZL5DC7H1KAS12V.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e0ec1b5b73477f139a5d856e771bd2f669107ac5ff461949b66e592da9e07d37
+size 5290
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/EX/M4NUWNTSMSB30D92R0JNVH.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/EX/M4NUWNTSMSB30D92R0JNVH.uasset
new file mode 100644
index 00000000..572e71f7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/EX/M4NUWNTSMSB30D92R0JNVH.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:29caa0da6bdd9417b18be98e65a66216d98444b61dbf953eb500de819c3bd79d
+size 4614
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/ZI/R1ZA0YHAVRKP938ICPJNTS.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/ZI/R1ZA0YHAVRKP938ICPJNTS.uasset
new file mode 100644
index 00000000..bffedc24
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/ZI/R1ZA0YHAVRKP938ICPJNTS.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ff14ad93ec55ab54346e62619514158d4678cfee8c6a4209e442121fa6c526aa
+size 4729
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/OY/NWUJZZF3O1FRAXABLHEC7A.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/OY/NWUJZZF3O1FRAXABLHEC7A.uasset
new file mode 100644
index 00000000..d0b38dd7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/OY/NWUJZZF3O1FRAXABLHEC7A.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d048f3006b00b67988036379aac8d53857a86cca76875ec474ad9514e9d7ec46
+size 4862
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/ZT/CS7AJMMD9W67X2ZP1JTMDY.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/ZT/CS7AJMMD9W67X2ZP1JTMDY.uasset
new file mode 100644
index 00000000..c2d59190
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/2/ZT/CS7AJMMD9W67X2ZP1JTMDY.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb1e64afb18b4af3a116d28b4fe40b5d323f39e7ab3980a45fbd8116187653dd
+size 4789
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/3/2S/VMP9PWZPQHZL0PQ6M3P46T.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/3/2S/VMP9PWZPQHZL0PQ6M3P46T.uasset
new file mode 100644
index 00000000..ca4f715d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/3/2S/VMP9PWZPQHZL0PQ6M3P46T.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0daaff5f052e6904f6480a0b8a098dda84245d0938e2eb34681cbe0553a0943d
+size 4863
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/MA/A156FPMZYSJI32UUV5KAUD.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/MA/A156FPMZYSJI32UUV5KAUD.uasset
new file mode 100644
index 00000000..48cde451
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/MA/A156FPMZYSJI32UUV5KAUD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d0762dbc6e2e881d2d49b47d833c54c27bb49f133f658f8165d92ce4646e333
+size 4729
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/O7/Y27SOAR2KGMJHHHD7QG9W3.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/O7/Y27SOAR2KGMJHHHD7QG9W3.uasset
new file mode 100644
index 00000000..a6d592c0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/O7/Y27SOAR2KGMJHHHD7QG9W3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa2295694fced0a5cc7b080338a5b2ce91a4ebb5d4890316be1f97634f9c4672
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/P4/6UW1DVWYFFIZTMUG9V8YCE.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/P4/6UW1DVWYFFIZTMUG9V8YCE.uasset
new file mode 100644
index 00000000..bfcc37b3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/P4/6UW1DVWYFFIZTMUG9V8YCE.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bdef15fb4b4c6e554d6f589a302f9d7fc94fa89f737d6fc5bd0ba7b8655944a6
+size 4669
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/SX/ZQBKEDB8JW6BYC09LYGEGM.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/SX/ZQBKEDB8JW6BYC09LYGEGM.uasset
new file mode 100644
index 00000000..6c063ebf
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/SX/ZQBKEDB8JW6BYC09LYGEGM.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3001b834af86196fa34a8a49bdfb1fd0312e4d98adec67150ff821172326b029
+size 4614
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/WG/SUVM1JZ0PVCC7SNBKLONYJ.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/WG/SUVM1JZ0PVCC7SNBKLONYJ.uasset
new file mode 100644
index 00000000..1561f0ea
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/WG/SUVM1JZ0PVCC7SNBKLONYJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:02796000b6265968a6b8ffae771f4812693ee26f02eeec837b542009bd1322da
+size 3667
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/YT/5VDYD721E8OB69DHUVNW4O.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/YT/5VDYD721E8OB69DHUVNW4O.uasset
new file mode 100644
index 00000000..613ed0c9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/YT/5VDYD721E8OB69DHUVNW4O.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6473828270e4cab01ef58d338bac0f29fd17a9799240829a0a7a8105829db28d
+size 4863
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/66/WQ2W64S04PNZLE92TJRS11.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/66/WQ2W64S04PNZLE92TJRS11.uasset
new file mode 100644
index 00000000..bf328d07
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/66/WQ2W64S04PNZLE92TJRS11.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c0a6632bc47ea3532b227a9c73be3abf44ba8c13524f182a86eac6206d0b1b9
+size 4615
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/AC/1Z9VIJ2JRVY0MQQ44OF11V.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/AC/1Z9VIJ2JRVY0MQQ44OF11V.uasset
new file mode 100644
index 00000000..45dca1c2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/AC/1Z9VIJ2JRVY0MQQ44OF11V.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:db8a881ef81bbe3d2523d1342e2c6167330c82c631a73da2e5ebf14d4b947924
+size 4731
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/C2/79BVTOH23GR8N0SWG6GWWW.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/C2/79BVTOH23GR8N0SWG6GWWW.uasset
new file mode 100644
index 00000000..ecca0351
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/C2/79BVTOH23GR8N0SWG6GWWW.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:328fd51d3c7fefdbdda511f05cb29f849da14631cab1e07a5d7da3c01450ba25
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/DI/05W7546RV25UV9MUAZJUW8.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/DI/05W7546RV25UV9MUAZJUW8.uasset
new file mode 100644
index 00000000..e6f47978
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/DI/05W7546RV25UV9MUAZJUW8.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c8a526d758028a5796590075ec8f3a3547fa1bd7e534d09ce96ef1bc39f4e4b
+size 4789
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/XV/QS5R65LII0DY9AY8BZX62U.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/XV/QS5R65LII0DY9AY8BZX62U.uasset
new file mode 100644
index 00000000..7bba47a9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/5/XV/QS5R65LII0DY9AY8BZX62U.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b48a16b8b6333b89850703fc602a5e9559b70797977af0fe3aaa71884c7ca0ed
+size 4728
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/0M/M2D0X7GYI4FK051TQ36XEU.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/0M/M2D0X7GYI4FK051TQ36XEU.uasset
new file mode 100644
index 00000000..57b5b2f9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/0M/M2D0X7GYI4FK051TQ36XEU.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:604f2b1a4e7d98e8ebb0cbd3ca6d77a6330db9af1f245c4c30dd157f4184eca8
+size 4863
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/1X/M9YEJR335ZC5O8CL7YMOHP.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/1X/M9YEJR335ZC5O8CL7YMOHP.uasset
new file mode 100644
index 00000000..eb164855
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/1X/M9YEJR335ZC5O8CL7YMOHP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ad254157b98fa2f4b255e4b553c078efbf6e1bd2f3e4bff473c79b774ff91a4
+size 4789
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/2C/Q7P1X4BLFUTW8VRW3P7RIB.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/2C/Q7P1X4BLFUTW8VRW3P7RIB.uasset
new file mode 100644
index 00000000..0eb7832b
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/2C/Q7P1X4BLFUTW8VRW3P7RIB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c4c589fbdfb25dbacfef760367c2290c24030b1ebbdebd9700f3df55e1ea630
+size 4791
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/TX/BTC9S0W28D5I25IOL56715.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/TX/BTC9S0W28D5I25IOL56715.uasset
new file mode 100644
index 00000000..fa64ab8e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/TX/BTC9S0W28D5I25IOL56715.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:39162e6e995a0f6846b1a806d1fa532ddc0af51fc910ab83b5c988fc591f91ff
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/XS/WL0ZK548OH4TTOZX0S761Y.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/XS/WL0ZK548OH4TTOZX0S761Y.uasset
new file mode 100644
index 00000000..d321c2d9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/XS/WL0ZK548OH4TTOZX0S761Y.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9573fa0ad445694cf7b7cd8da62fe41785b828dc0285a311d019238c537731e9
+size 4896
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/YZ/8IO3NK6CAJNBOCZAR2BZPG.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/YZ/8IO3NK6CAJNBOCZAR2BZPG.uasset
new file mode 100644
index 00000000..5c2307a8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/6/YZ/8IO3NK6CAJNBOCZAR2BZPG.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a87ed8f1f5fe8a44a98efa0ebe6035b2ca4b3d18b2b31385bf26ac82454b56af
+size 4789
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/B5/TD7932XGOMQQH3EN17E3ZB.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/B5/TD7932XGOMQQH3EN17E3ZB.uasset
new file mode 100644
index 00000000..6352cf1a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/B5/TD7932XGOMQQH3EN17E3ZB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a588b9debbb5cb4b0993f0a2c70154f1b3a64ef5f3e30bf098654b99b6d6c912
+size 4617
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/BL/5QFMPQA4LA59B0C1K7VEUO.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/BL/5QFMPQA4LA59B0C1K7VEUO.uasset
new file mode 100644
index 00000000..fba7167a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/BL/5QFMPQA4LA59B0C1K7VEUO.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04956fe8b0d34aedf19481f08808a9511672cecf78fff03a25286afb6d9e0989
+size 3673
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/GE/SFWEJY7HPPETIYTKPNF2PM.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/GE/SFWEJY7HPPETIYTKPNF2PM.uasset
new file mode 100644
index 00000000..d4ccc8e7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/GE/SFWEJY7HPPETIYTKPNF2PM.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d088e9ded09de57825efd00a1dfd9dfcf70ecf41bf52cfbb22e6a6923a61eb8f
+size 4612
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/HC/5I57CIXRPQ6ES1G8NUV4AG.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/HC/5I57CIXRPQ6ES1G8NUV4AG.uasset
new file mode 100644
index 00000000..fa5251b8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/HC/5I57CIXRPQ6ES1G8NUV4AG.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0e2042529db332f272a83fb75c975b0b746a93b65b7c59ebec1322a6a6a4a6f3
+size 3882
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/I6/GW76OI4EC3GFQC5NOD09UZ.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/I6/GW76OI4EC3GFQC5NOD09UZ.uasset
new file mode 100644
index 00000000..e1a57512
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/I6/GW76OI4EC3GFQC5NOD09UZ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8236b7774ea3bc2df89973ae76d388c267a477e2bc429be2b6251abd3f256eb
+size 3653
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/IZ/57UNOHSEA89PDKIFF498WP.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/IZ/57UNOHSEA89PDKIFF498WP.uasset
new file mode 100644
index 00000000..6537afc1
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/IZ/57UNOHSEA89PDKIFF498WP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:195d6b5599f369be818715ee9736c4f93b34d51b5a275454ed4bb2c6dff4d984
+size 4789
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OE/2U43UZHFR9OAOPQP4TQBB4.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OE/2U43UZHFR9OAOPQP4TQBB4.uasset
new file mode 100644
index 00000000..6de004d9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OE/2U43UZHFR9OAOPQP4TQBB4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:da4966141ff18d3a6ab047b056fbd366fae00ad0b857fb0e7e21202e5029e1d8
+size 4791
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OX/CSW98GYLISUMWC9Q0DOGEL.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OX/CSW98GYLISUMWC9Q0DOGEL.uasset
new file mode 100644
index 00000000..c5979f74
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/OX/CSW98GYLISUMWC9Q0DOGEL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:53266eb9f08b264b3a9db089cda463a9ebd396367e568011a16dc85004b326be
+size 4731
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/PC/IBGC4ILAFO0EI86PK0LA5R.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/PC/IBGC4ILAFO0EI86PK0LA5R.uasset
new file mode 100644
index 00000000..87df4385
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/PC/IBGC4ILAFO0EI86PK0LA5R.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44170b8a086a754d9e5fd6816b30c3d11bc1566d767a565ad45237864185512f
+size 12522
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/RL/6H17UR2CPP4I0BW6W3N1FP.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/RL/6H17UR2CPP4I0BW6W3N1FP.uasset
new file mode 100644
index 00000000..06199b95
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/8/RL/6H17UR2CPP4I0BW6W3N1FP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e3cd19f4063687eb134743c5aceef5d12d07604ddc4fcf77d1639b3e5d827b05
+size 4514
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/UY/QODPAS7H93ZRX0HZSVXGFI.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/UY/QODPAS7H93ZRX0HZSVXGFI.uasset
new file mode 100644
index 00000000..e615df1d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/UY/QODPAS7H93ZRX0HZSVXGFI.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a172d6f6a9e3e3960b61096ed6405dd64c5743d1c6bf77bda4f3644919eea40a
+size 4766
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/V0/K6EQUGOEAMS93X1F5D1MHF.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/V0/K6EQUGOEAMS93X1F5D1MHF.uasset
new file mode 100644
index 00000000..a1c6b01e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/V0/K6EQUGOEAMS93X1F5D1MHF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ce2aa5690a328158325c461e7a5340a842c1ca48c77a1a0910e31d070c091f4
+size 4729
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VR/NNCUWMLACWHDW29WII4SD7.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VR/NNCUWMLACWHDW29WII4SD7.uasset
new file mode 100644
index 00000000..6a2c1c54
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VR/NNCUWMLACWHDW29WII4SD7.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a352e5ac99d32233102874586a68a2db307013046a7f9f6c7dee3030a830be37
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VS/DCB65WIYSZJZJOCI6WSJ9Q.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VS/DCB65WIYSZJZJOCI6WSJ9Q.uasset
new file mode 100644
index 00000000..3af2dbba
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/VS/DCB65WIYSZJZJOCI6WSJ9Q.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dc0ce36ca9b14bb6f9b4b82209d1f4195687b2a4e64e10908ba9d760d2fe8283
+size 4677
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/W0/UE1P9W899X3GCWVKMDDSGK.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/W0/UE1P9W899X3GCWVKMDDSGK.uasset
new file mode 100644
index 00000000..c44aed95
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/9/W0/UE1P9W899X3GCWVKMDDSGK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7d568d84d5ef1400bac810a93a13b9c6392d2a1daafcd89c102aaf048540025
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/61/IQXXIOWP1L9O63YAABFG27.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/61/IQXXIOWP1L9O63YAABFG27.uasset
new file mode 100644
index 00000000..b0bb4c10
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/61/IQXXIOWP1L9O63YAABFG27.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be3da3da4cc97d2f91b8dd035ac121485d0adc76e07ea0ef50f30837bc309462
+size 4731
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/S6/727VECD7OCUDIZ2GHRBJJ3.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/S6/727VECD7OCUDIZ2GHRBJJ3.uasset
new file mode 100644
index 00000000..043c1384
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/A/S6/727VECD7OCUDIZ2GHRBJJ3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e5f7f07c79a66cedbc507b0f685429d46d4af28e33621bbad4db575d16908384
+size 4766
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/B/LW/P5662X206J8FK010FEDYJH.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/B/LW/P5662X206J8FK010FEDYJH.uasset
new file mode 100644
index 00000000..18c91a74
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/B/LW/P5662X206J8FK010FEDYJH.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ff30bcf6f78115ab555efca0b66c0f721e67ac028440835f4206f9c5a9aea1f
+size 4731
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/05/HA4J5CS0609L7XWM1WR2F7.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/05/HA4J5CS0609L7XWM1WR2F7.uasset
new file mode 100644
index 00000000..517d6f97
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/05/HA4J5CS0609L7XWM1WR2F7.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eaa7c4a2c74573f6188bf9e4387a80b302b6fbafe128e8cb2a698a74dcdce5d5
+size 4617
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/BN/CVBE6G5FCQBP7JH4WABUQD.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/BN/CVBE6G5FCQBP7JH4WABUQD.uasset
new file mode 100644
index 00000000..00bca627
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/BN/CVBE6G5FCQBP7JH4WABUQD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a8c8a0a9339cb5b646e24a50e6ad75ee7a1f42c2dfd9a796e6566e12cc178ad
+size 4726
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/O1/KOEM67VWDH98WGOAJBI4E2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/O1/KOEM67VWDH98WGOAJBI4E2.uasset
new file mode 100644
index 00000000..c283936d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/C/O1/KOEM67VWDH98WGOAJBI4E2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b06fbd6495607b48f5588b850821d47e150309705a9e1e441047fa112583ef8
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/F4/GUJDQQXQ025WJJ6RLE0SSF.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/F4/GUJDQQXQ025WJJ6RLE0SSF.uasset
new file mode 100644
index 00000000..d2305d87
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/F4/GUJDQQXQ025WJJ6RLE0SSF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9adbfc289e3c12328c60346a2be7212627f7039f4b981bb3d1667bce98e2bb03
+size 4789
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/KR/WJ92O3G9AE40MUVIPW466O.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/KR/WJ92O3G9AE40MUVIPW466O.uasset
new file mode 100644
index 00000000..b4b5a7a0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/KR/WJ92O3G9AE40MUVIPW466O.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e65faeb7c028363dc6ea103f12f3482b8c2f7f4ac1f9c7105bdaf4bd8132283
+size 4759
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/P4/4NNEH19QJ3ARXX12O9TPD1.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/P4/4NNEH19QJ3ARXX12O9TPD1.uasset
new file mode 100644
index 00000000..3270c30a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/P4/4NNEH19QJ3ARXX12O9TPD1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:845d6f6da7e9aae85f618875158a2e29fc35eb04e0cfb40740f5ae8350d5e5da
+size 4617
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/PI/JNOQ11LVO9MVMU7H8GL3D7.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/PI/JNOQ11LVO9MVMU7H8GL3D7.uasset
new file mode 100644
index 00000000..051dd363
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/PI/JNOQ11LVO9MVMU7H8GL3D7.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:36141b38a7562ac85281cb7bf6ef96c2de58aabc5af2f6a7d2da1b1d1b0c78cb
+size 4726
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/V3/7KJ2D3EDU8FL3HZEPRM5FK.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/V3/7KJ2D3EDU8FL3HZEPRM5FK.uasset
new file mode 100644
index 00000000..2cb2d663
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/D/V3/7KJ2D3EDU8FL3HZEPRM5FK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:da709a0f422af8d01b7b449c8033dbe4df951cc9348af4d5a63441af4bd42119
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/6M/TFDPLCSP2249C7MMH6Q6IJ.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/6M/TFDPLCSP2249C7MMH6Q6IJ.uasset
new file mode 100644
index 00000000..2c71f1c2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/6M/TFDPLCSP2249C7MMH6Q6IJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a862a44cdf94e3167c6363d616cee7b94db044c26e447ca7bc35917a6df3fe1e
+size 4610
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/7O/DU906LIBS2H7DIXZOXTLI5.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/7O/DU906LIBS2H7DIXZOXTLI5.uasset
new file mode 100644
index 00000000..76c533ec
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/7O/DU906LIBS2H7DIXZOXTLI5.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:05ffc30cc78438cf473263d6c484f94f97f171750f21993ad8ae249c92a1587c
+size 4768
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/CF/03RTKZM37AOGZ60H864CDB.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/CF/03RTKZM37AOGZ60H864CDB.uasset
new file mode 100644
index 00000000..69e94ea3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/CF/03RTKZM37AOGZ60H864CDB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a62286ccd54254e959243a70f36f6a487c98c853ff584dbcade3709a72f393e1
+size 2470
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/F0/WXXA0FYBUVM9150G6DL079.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/F0/WXXA0FYBUVM9150G6DL079.uasset
new file mode 100644
index 00000000..fe7e2271
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/F0/WXXA0FYBUVM9150G6DL079.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2d7cae3562b1a8e70bb189432d5e5b5684f3dd4961c9203c946a0d7c2d1e883
+size 2518
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/I2/594QUZU1UVGU5T002GJSWF.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/I2/594QUZU1UVGU5T002GJSWF.uasset
new file mode 100644
index 00000000..e3eb69b2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/E/I2/594QUZU1UVGU5T002GJSWF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ad1ba263bc6beb6df6704bc9dbdd290fbbdf0cc7b46534f9ca0a1982a10e302e
+size 4035
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/0/37/3XN21XBZV427UIXTUT8H9W.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/0/37/3XN21XBZV427UIXTUT8H9W.uasset
new file mode 100644
index 00000000..85889a04
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/0/37/3XN21XBZV427UIXTUT8H9W.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1504fa2b263e776ab8e1a9fb5108fe45893a98c120f686e960491515ca912f74
+size 2286
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/1/KK/5N51OQ0EA6OYJSFQZZMEN8.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/1/KK/5N51OQ0EA6OYJSFQZZMEN8.uasset
new file mode 100644
index 00000000..0a5dae60
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/1/KK/5N51OQ0EA6OYJSFQZZMEN8.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1cb7cc553e0aabffceddc6ce3cfa95e4f49672cac565d60a3f7055324a3ff160
+size 2290
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/3/PO/7NO7RHQONSP3PXZM34SO4K.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/3/PO/7NO7RHQONSP3PXZM34SO4K.uasset
new file mode 100644
index 00000000..7369763e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/3/PO/7NO7RHQONSP3PXZM34SO4K.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e7a188a39e6e8a9d36bca995ff417b8068850986a95262e5d8d8df143855c6b
+size 2298
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/0M/WY2357UKBHUI8P5RHRK2DZ.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/0M/WY2357UKBHUI8P5RHRK2DZ.uasset
new file mode 100644
index 00000000..e44f8133
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/0M/WY2357UKBHUI8P5RHRK2DZ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40b8a99a5f17375390374165be7325c0c7b41d0733228f3c0ad031410f5bf6c5
+size 2284
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/CY/PA7VG9UZWHLZTEZL7VUBI9.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/CY/PA7VG9UZWHLZTEZL7VUBI9.uasset
new file mode 100644
index 00000000..20deb822
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/4/CY/PA7VG9UZWHLZTEZL7VUBI9.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8682a7fae586f4559213c1b7911028aba67b9e307197049e1065ee2d6eb92aba
+size 2284
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/5/YT/BWXH8AQGEZZOD1E6ZNPXSC.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/5/YT/BWXH8AQGEZZOD1E6ZNPXSC.uasset
new file mode 100644
index 00000000..783f8418
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/5/YT/BWXH8AQGEZZOD1E6ZNPXSC.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:100ee8544e63be62122c3a7bd70a2d860a522384f77f13712dfe55e3e72971d8
+size 2286
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/7/8N/ZRFPBTO989XQKP7T5RS7KK.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/7/8N/ZRFPBTO989XQKP7T5RS7KK.uasset
new file mode 100644
index 00000000..d6ee501c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/7/8N/ZRFPBTO989XQKP7T5RS7KK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74973ca24943e6b3c1f032eebf19fbe885ff4bd80c55c19b6b32392c8176baf5
+size 2284
diff --git a/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/D/KZ/6W87MJLX6NJ5XR8ELXDNYK.uasset b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/D/KZ/6W87MJLX6NJ5XR8ELXDNYK.uasset
new file mode 100644
index 00000000..ebfd6ce4
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/FirstPerson/Maps/GunMechanicTester/D/KZ/6W87MJLX6NJ5XR8ELXDNYK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:00adfd4b0eba1f7ae121b2d50b5022b23fdd698d6d8014eea3bc725d676737e5
+size 2284
diff --git a/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini b/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
new file mode 100644
index 00000000..57b268f3
--- /dev/null
+++ b/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
@@ -0,0 +1,32 @@
+
+
+[/Script/HoloLensPlatformEditor.HoloLensTargetSettings]
+bBuildForEmulation=False
+bBuildForDevice=True
+bUseNameForLogo=True
+bBuildForRetailWindowsStore=False
+bAutoIncrementVersion=False
+bShouldCreateAppInstaller=False
+AppInstallerInstallationURL=
+HoursBetweenUpdateChecks=0
+bEnablePIXProfiling=False
+TileBackgroundColor=(B=64,G=0,R=0,A=255)
+SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255)
++PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=())
+TargetDeviceFamily=Windows.Holographic
+MinimumPlatformVersion=
+MaximumPlatformVersionTested=10.0.22621.0
+MaxTrianglesPerCubicMeter=500.000000
+SpatialMeshingVolumeSize=20.000000
+CompilerVersion=Default
+Windows10SDKVersion=10.0.18362.0
++CapabilityList=internetClientServer
++CapabilityList=privateNetworkClientServer
++Uap2CapabilityList=spatialPerception
+bSetDefaultCapabilities=False
+SpatializationPlugin=
+SourceDataOverridePlugin=
+ReverbPlugin=
+OcclusionPlugin=
+SoundCueCookQualityIndex=-1
+
From a8c66b20467f40650a7cc511577a9661bbb4e570 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Wed, 27 Sep 2023 13:45:21 +0100
Subject: [PATCH 003/112] Added all basic weapon needed classes
---
.../EndlessVendetta/BaseWeaponClass.cpp | 26 ++++++++++++++
.../Source/EndlessVendetta/BaseWeaponClass.h | 25 +++++++++++++
.../Source/EndlessVendetta/PistolClass.cpp | 26 ++++++++++++++
.../Source/EndlessVendetta/PistolClass.h | 25 +++++++++++++
.../EndlessVendetta/WeaponInventory.cpp | 35 +++++++++++++++++++
.../Source/EndlessVendetta/WeaponInventory.h | 26 ++++++++++++++
.../EndlessVendetta/WeaponItemClass.cpp | 26 ++++++++++++++
.../Source/EndlessVendetta/WeaponItemClass.h | 25 +++++++++++++
8 files changed, 214 insertions(+)
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/PistolClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/PistolClass.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
new file mode 100644
index 00000000..ade25671
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "BaseWeaponClass.h"
+
+
+// Sets default values
+ABaseWeaponClass::ABaseWeaponClass()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+}
+
+// Called when the game starts or when spawned
+void ABaseWeaponClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void ABaseWeaponClass::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
new file mode 100644
index 00000000..57604d02
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
@@ -0,0 +1,25 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "WeaponItemClass.h"
+#include "BaseWeaponClass.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API ABaseWeaponClass : public AWeaponItemClass
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ ABaseWeaponClass();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/PistolClass.cpp b/EndlessVendetta/Source/EndlessVendetta/PistolClass.cpp
new file mode 100644
index 00000000..c40b9fdc
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/PistolClass.cpp
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "PistolClass.h"
+
+
+// Sets default values
+APistolClass::APistolClass()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+}
+
+// Called when the game starts or when spawned
+void APistolClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void APistolClass::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/PistolClass.h b/EndlessVendetta/Source/EndlessVendetta/PistolClass.h
new file mode 100644
index 00000000..4ad676b2
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/PistolClass.h
@@ -0,0 +1,25 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "BaseWeaponClass.h"
+#include "PistolClass.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API APistolClass : public ABaseWeaponClass
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ APistolClass();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
new file mode 100644
index 00000000..14c10a17
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
@@ -0,0 +1,35 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "WeaponInventory.h"
+
+
+// Sets default values for this component's properties
+UWeaponInventory::UWeaponInventory()
+{
+ // Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
+ // off to improve performance if you don't need them.
+ PrimaryComponentTick.bCanEverTick = true;
+
+ // ...
+}
+
+
+// Called when the game starts
+void UWeaponInventory::BeginPlay()
+{
+ Super::BeginPlay();
+
+ // ...
+
+}
+
+
+// Called every frame
+void UWeaponInventory::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
+{
+ Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
+
+ // ...
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
new file mode 100644
index 00000000..5ac32b02
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Components/ActorComponent.h"
+#include "WeaponInventory.generated.h"
+
+
+UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
+class ENDLESSVENDETTA_API UWeaponInventory : public UActorComponent
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this component's properties
+ UWeaponInventory();
+
+protected:
+ // Called when the game starts
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
new file mode 100644
index 00000000..90d8f5ac
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "WeaponItemClass.h"
+
+
+// Sets default values
+AWeaponItemClass::AWeaponItemClass()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+}
+
+// Called when the game starts or when spawned
+void AWeaponItemClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void AWeaponItemClass::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
new file mode 100644
index 00000000..e7042620
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
@@ -0,0 +1,25 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Actor.h"
+#include "WeaponItemClass.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API AWeaponItemClass : public AActor
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ AWeaponItemClass();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+};
From 51cc5b893067d734d54825aa44e22fa5f9089812 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Wed, 27 Sep 2023 14:09:45 +0100
Subject: [PATCH 004/112] Added Empty Bounty System Classes
---
.../Architecture/Floor_400x400.uasset | 4 +--
EndlessVendetta/EndlessVendetta.uproject | 5 +++-
.../BountySystem/BountyClass.cpp | 27 +++++++++++++++++++
.../BountySystem/BountyClass.h | 26 ++++++++++++++++++
.../BountySystem/BountyDirector.cpp | 27 +++++++++++++++++++
.../BountySystem/BountyDirector.h | 26 ++++++++++++++++++
.../BountySystem/CheckpointClass.cpp | 27 +++++++++++++++++++
.../BountySystem/CheckpointClass.h | 26 ++++++++++++++++++
.../BountySystem/SideBountyClass.cpp | 5 ++++
.../BountySystem/SideBountyClass.h | 17 ++++++++++++
10 files changed, 187 insertions(+), 3 deletions(-)
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index e3a82355..b62ede04 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c37220dc1a6682fd8e949470980677a49dab396cf3cf2b7c66e37adb26f36006
-size 14829
+oid sha256:1b95b1625b69860032c6a30ad9af83d68e7c0214b449e5355e3affa071fa6230
+size 14831
diff --git a/EndlessVendetta/EndlessVendetta.uproject b/EndlessVendetta/EndlessVendetta.uproject
index 02d42dff..4717d351 100644
--- a/EndlessVendetta/EndlessVendetta.uproject
+++ b/EndlessVendetta/EndlessVendetta.uproject
@@ -7,7 +7,10 @@
{
"Name": "EndlessVendetta",
"Type": "Runtime",
- "LoadingPhase": "Default"
+ "LoadingPhase": "Default",
+ "AdditionalDependencies": [
+ "Engine"
+ ]
}
],
"Plugins": [
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp
new file mode 100644
index 00000000..c497cd67
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp
@@ -0,0 +1,27 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "BountyClass.h"
+
+// Sets default values
+ABountyClass::ABountyClass()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+}
+
+// Called when the game starts or when spawned
+void ABountyClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void ABountyClass::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
new file mode 100644
index 00000000..d56e3d21
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Actor.h"
+#include "BountyClass.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API ABountyClass : public AActor
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ ABountyClass();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
new file mode 100644
index 00000000..67e12786
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
@@ -0,0 +1,27 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "BountyDirector.h"
+
+// Sets default values
+ABountyDirector::ABountyDirector()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+}
+
+// Called when the game starts or when spawned
+void ABountyDirector::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void ABountyDirector::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
new file mode 100644
index 00000000..7192ce21
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Actor.h"
+#include "BountyDirector.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API ABountyDirector : public AActor
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ ABountyDirector();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.cpp
new file mode 100644
index 00000000..630725e4
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.cpp
@@ -0,0 +1,27 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "CheckpointClass.h"
+
+// Sets default values
+ACheckpointClass::ACheckpointClass()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+}
+
+// Called when the game starts or when spawned
+void ACheckpointClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void ACheckpointClass::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
new file mode 100644
index 00000000..d8e09c23
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Actor.h"
+#include "CheckpointClass.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API ACheckpointClass : public AActor
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ ACheckpointClass();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
new file mode 100644
index 00000000..9cb7eb8b
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
@@ -0,0 +1,5 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "SideBountyClass.h"
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h
new file mode 100644
index 00000000..460bb922
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h
@@ -0,0 +1,17 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "BountyClass.h"
+#include "SideBountyClass.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API ASideBountyClass : public ABountyClass
+{
+ GENERATED_BODY()
+
+};
From 44e0a6bc2d1943d05bb4296ceb6e2c3a68b29742 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Wed, 27 Sep 2023 14:47:50 +0100
Subject: [PATCH 005/112] Implemented Checkpoint Class Functionality
---
.../BountySystem/CheckpointClass.h | 54 +++++++++++++++++--
1 file changed, 49 insertions(+), 5 deletions(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
index d8e09c23..c182b8cb 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
@@ -6,21 +6,65 @@
#include "GameFramework/Actor.h"
#include "CheckpointClass.generated.h"
+DECLARE_DYNAMIC_MULTICAST_DELEGATE(FCompletedCheckpoint);
+
UCLASS()
class ENDLESSVENDETTA_API ACheckpointClass : public AActor
{
GENERATED_BODY()
+
+ // ------ Properties set from Editor ------
+ UPROPERTY(EditDefaultsOnly, Category = "Checkpoint")
+ FString CheckpointDescription;
+ UPROPERTY(EditDefaultsOnly, Category = "Checkpoint")
+ FVector WaypointLoc;
+ UPROPERTY(EditDefaultsOnly, Category = "Checkpoint")
+ UTexture2D* WaypointIcon;
+ UPROPERTY(EditDefaultsOnly, Category = "Checkpoint")
+ FTransform CheckpointSpawnTransform;
+ // ----------------------------------------
-public:
- // Sets default values for this actor's properties
- ACheckpointClass();
+ UFUNCTION(BlueprintCallable, Category = "Checkpoint")
+ void BroadcastCompletion()
+ {
+ CompletedCheckpoint.Broadcast();
+ }
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
+
+public:
+ FCompletedCheckpoint CompletedCheckpoint;
-public:
+ UPROPERTY(BlueprintReadOnly, Category = "Checkpoint")
+ bool Active = false;
+
+ // ------ Getters for CP Properties ------
+ FString GetCheckpointDesc()
+ {
+ return CheckpointDescription;
+ }
+ FVector GetWaypointLoc()
+ {
+ return WaypointLoc;
+ }
+ UTexture2D* GetWaypointIcon()
+ {
+ return WaypointIcon;
+ }
+ FTransform GetCheckpointSpawnTransform()
+ {
+ return CheckpointSpawnTransform;
+ }
+ // ---------------------------------------
+
+ // Sets default values for this actor's properties
+ ACheckpointClass();
+
// Called every frame
- virtual void Tick(float DeltaTime) override;
+ virtual void Tick(float DeltaTime) override;
+
+
};
From 10eb04fa77b6cc3c612d9730e4bd4197dbab76cb Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Wed, 27 Sep 2023 15:01:42 +0100
Subject: [PATCH 006/112] Added BP of weapon and setup BP pickup components +
Added input action
---
.../FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset | 4 ++--
.../FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 3 +++
.../Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset | 3 +++
.../Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset | 3 +++
EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset | 4 ++--
.../Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset | 3 +++
6 files changed, 16 insertions(+), 4 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 701e0537..690d04ef 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bedfc53528df762af9be906a8707ddff7568baf324a5d7df56d6bdfe1575ee3d
-size 23020
+oid sha256:2d5de8f4e27f1e085417782dd7729fc662c3ab813afabba992a0bfe6ad51573c
+size 35545
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
new file mode 100644
index 00000000..0aef22ed
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a4dfbc572d0f67be5a3c6898946ce7fce2895174236407ce9910f99c59690367
+size 28778
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
new file mode 100644
index 00000000..16d0e458
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f562f592d0a4fc6f34c7deb5c861593a1b7282f786b19b3789fbac2bee01c7a1
+size 29063
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset
new file mode 100644
index 00000000..d06772c3
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d0c07e01e5199aaa3d4e7fb5dc36733918e91aa93620cbef070e2472021315d4
+size 1672
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
index 81354aec..4568b732 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6faeeff3129efe33b48bd11297efb307a7bbcc6c98d6fc8da4742c0759a7e2ea
-size 12793
+oid sha256:7d38ac187045f18e01436a5d90333878b3490d25037c84c712f943cb34f785bb
+size 14484
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
new file mode 100644
index 00000000..9414b284
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df93071fd48bde5bf300bdb99470e05451e488b38627fbf6b22212b3c03e0fd3
+size 5061
From 09b22ff33ddc7ce33f7731dfe93294e2e0dc141d Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Wed, 27 Sep 2023 15:02:06 +0100
Subject: [PATCH 007/112] Added BaseWeaponClass, WeaponInventory,
WeaponItemClass, Character basic functionality
---
.../Source/EndlessVendetta/BaseWeaponClass.cpp | 2 ++
.../Source/EndlessVendetta/BaseWeaponClass.h | 18 ++++++++++++++++++
.../EndlessVendettaCharacter.cpp | 8 ++++++++
.../EndlessVendetta/EndlessVendettaCharacter.h | 10 ++++++++++
.../Source/EndlessVendetta/WeaponInventory.cpp | 13 +++++++++++--
.../Source/EndlessVendetta/WeaponInventory.h | 18 ++++++++++++++++++
.../Source/EndlessVendetta/WeaponItemClass.cpp | 15 +++++++++++++++
.../Source/EndlessVendetta/WeaponItemClass.h | 10 ++++++++++
8 files changed, 92 insertions(+), 2 deletions(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
index ade25671..3d2bf453 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
@@ -3,6 +3,8 @@
#include "BaseWeaponClass.h"
+#include "Components/CapsuleComponent.h"
+
// Sets default values
ABaseWeaponClass::ABaseWeaponClass()
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
index 57604d02..32225fe0 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
@@ -6,6 +6,8 @@
#include "WeaponItemClass.h"
#include "BaseWeaponClass.generated.h"
+class UCapsuleComponent;
+
UCLASS()
class ENDLESSVENDETTA_API ABaseWeaponClass : public AWeaponItemClass
{
@@ -22,4 +24,20 @@ protected:
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
+
+ UPROPERTY(EditAnywhere)
+ FName WeaponName;
+
+ UPROPERTY(EditAnywhere)
+ int WeaponDamage;
+
+ UPROPERTY(EditAnywhere)
+ float FireRate;
+
+ UPROPERTY(EditAnywhere)
+ int MagazineSize;
+
+ UPROPERTY(EditAnywhere)
+ UTexture2D* WeaponImage;
+
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 59310e24..f9dc4927 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -69,6 +69,9 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
//Looking
EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Look);
+
+ //Weapon Switching
+ EnhancedInputComponent->BindAction(WeaponEquipAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::WeaponEquip);
}
}
@@ -99,6 +102,11 @@ void AEndlessVendettaCharacter::Look(const FInputActionValue& Value)
}
}
+void AEndlessVendettaCharacter::WeaponEquip()
+{
+ UE_LOG(LogTemp, Display, TEXT("EQUIPPING WEAPONS"));
+}
+
void AEndlessVendettaCharacter::SetHasRifle(bool bNewHasRifle)
{
bHasRifle = bNewHasRifle;
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 667db81c..c9405896 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -7,6 +7,7 @@
#include "InputActionValue.h"
#include "EndlessVendettaCharacter.generated.h"
+class UWeaponInventory;
class UInputComponent;
class USkeletalMeshComponent;
class USceneComponent;
@@ -39,6 +40,10 @@ class AEndlessVendettaCharacter : public ACharacter
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
class UInputAction* MoveAction;
+ /** Weapon Equip Action */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
+ class UInputAction* WeaponEquipAction;
+
public:
AEndlessVendettaCharacter();
@@ -71,6 +76,8 @@ protected:
/** Called for looking input */
void Look(const FInputActionValue& Value);
+ void WeaponEquip();
+
protected:
// APawn interface
virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override;
@@ -82,6 +89,9 @@ public:
/** Returns FirstPersonCameraComponent subobject **/
UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; }
+private:
+ UWeaponInventory* WeaponInventory;
+
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
index 14c10a17..97262c6c 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
@@ -3,6 +3,8 @@
#include "WeaponInventory.h"
+#include "WeaponItemClass.h"
+
// Sets default values for this component's properties
UWeaponInventory::UWeaponInventory()
@@ -10,8 +12,7 @@ UWeaponInventory::UWeaponInventory()
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
// off to improve performance if you don't need them.
PrimaryComponentTick.bCanEverTick = true;
-
- // ...
+
}
@@ -33,3 +34,11 @@ void UWeaponInventory::TickComponent(float DeltaTime, ELevelTick TickType, FActo
// ...
}
+//Called from blueprints from the player
+void UWeaponInventory::WeaponPickup(AActor* WeaponPickedUp)
+{
+ AWeaponItemClass* WeaponItemClass = Cast(WeaponPickedUp);
+ WeaponsArray.Add(WeaponItemClass);
+ WeaponPickedUp->Destroy();
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
index 5ac32b02..b060d0ac 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
@@ -7,6 +7,8 @@
#include "WeaponInventory.generated.h"
+class AWeaponItemClass;
+
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class ENDLESSVENDETTA_API UWeaponInventory : public UActorComponent
{
@@ -20,7 +22,23 @@ protected:
// Called when the game starts
virtual void BeginPlay() override;
+ UPROPERTY(VisibleAnywhere, Category = "Weapon System")
+ TArray WeaponsArray;
+
public:
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
+
+ //Using a getter to get the protected weaponsArray
+ UFUNCTION()
+ TArray GetWeaponArray() const { return WeaponsArray; }
+
+ //Using a Setter to set the protected weapons array to the getter
+ UFUNCTION()
+ void SetArray(const TArray weaponArray) { WeaponsArray = weaponArray; }
+
+private:
+ //Called from blueprints from the player
+ UFUNCTION(BlueprintCallable)
+ void WeaponPickup(AActor* WeaponPickedUp);
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
index 90d8f5ac..d1e399a7 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
@@ -24,3 +24,18 @@ void AWeaponItemClass::Tick(float DeltaTime)
Super::Tick(DeltaTime);
}
+//Called from WeaponInventory actor component class
+void AWeaponItemClass::Equip(ABaseWeaponClass* PickedUpWeapon)
+{
+ //get the weapons in the array from component
+ //whatever input is being pressed add that to the player socket
+ //if there is no gun simply add it to the socket
+ //if there is a weapon remove from socket and add the requested one
+}
+
+//Called from WeaponInventory actor component class
+void AWeaponItemClass::Unequip(ABaseWeaponClass* PickedUpWeapon)
+{
+ //same as equip but
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
index e7042620..a1ad01bf 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
@@ -6,6 +6,8 @@
#include "GameFramework/Actor.h"
#include "WeaponItemClass.generated.h"
+class ABaseWeaponClass;
+
UCLASS()
class ENDLESSVENDETTA_API AWeaponItemClass : public AActor
{
@@ -22,4 +24,12 @@ protected:
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
+
+private:
+
+ UFUNCTION()
+ void Equip(ABaseWeaponClass* PickedUpWeapon);
+
+ UFUNCTION()
+ void Unequip(ABaseWeaponClass* PickedUpWeapon);
};
From 52af66afecb1daf6c51aeefa2c756785bf60c2ee Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Wed, 27 Sep 2023 16:43:33 +0100
Subject: [PATCH 008/112] Implemented Bounty Class Functionality
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-
.../BountySystem/BountyClass.cpp | 107 ++++++++++++++-
.../BountySystem/BountyClass.h | 128 +++++++++++++++++-
3 files changed, 229 insertions(+), 10 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 701e0537..161871e8 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bedfc53528df762af9be906a8707ddff7568baf324a5d7df56d6bdfe1575ee3d
-size 23020
+oid sha256:97d5406f3cd7dcb656b8f29ebc71700d765f690ece26250ae04a0de9b2e19ce1
+size 22718
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp
index c497cd67..ae8fbd8d 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.cpp
@@ -11,17 +11,120 @@ ABountyClass::ABountyClass()
}
-// Called when the game starts or when spawned
void ABountyClass::BeginPlay()
{
Super::BeginPlay();
+
+ SpawnCheckpoints();
}
-// Called every frame
void ABountyClass::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
+void ABountyClass::SpawnCheckpoints()
+{
+ // Spawn all checkpoints associated with this bounty and store them in order
+ FActorSpawnParameters SpawnParameters;
+ SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+
+ for(TSubclassOf CheckpointClass : CheckpointsToSpawn)
+ {
+ if (CheckpointClass == nullptr)
+ {
+ // An unassigned checkpoint class can lead to undefined behaviour, hence the fatal log
+ UE_LOG(LogTemp, Fatal, TEXT("A checkpoint class wasn't set for %s"), *BountyTitle);
+ return;
+ }
+
+ FVector Loc = CheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetLocation();
+ FRotator Rot = CheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetRotation().Rotator();
+ ACheckpointClass* SpawnedCheckpoint = Cast(GetWorld()->SpawnActor(CheckpointClass, Loc, Rot, SpawnParameters));
+ BountyCheckpoints.Add(SpawnedCheckpoint);
+ }
+
+ // Activate the first checkpoint and listen for its completion
+ BountyCheckpoints[0]->Active = true;
+ BountyCheckpoints[0]->CompletedCheckpoint.AddDynamic(this, &ABountyClass::IncrementBountyCheckpoint);
+}
+
+void ABountyClass::IncrementBountyCheckpoint()
+{
+ // Broadcast that the first Checkpoint has been completed so that side bounties can be destroyed
+ if (!BountyStarted)
+ {
+ BountyStarted = true;
+ CompletedFirstCheckpoint.Broadcast();
+ }
+
+ // Bounty Completion Condition
+ if (BountyCheckpoints.Num() <= MinCPsRequiredForCompletion)
+ {
+ Completed = true;
+ BountyCheckpoints[0]->Active = false;
+ BountyCheckpoints[0]->Destroy();
+ BountyCheckpoints.RemoveAt(0);
+ UE_LOG(LogTemp, Warning, TEXT(" You've Completed the Bounty!! Well done"));
+ return;
+ }
+
+ if (BountyCheckpoints[0] == nullptr)
+ {
+ UE_LOG(LogTemp, Fatal, TEXT("Missing checkpoint in bounty checkpoints, could've failed to spawn or cast"));
+ return;
+ }
+
+ // Destroy Actor and Shrink Array
+ BountyCheckpoints[0]->Active = false;
+ BountyCheckpoints[0]->Destroy();
+ BountyCheckpoints.RemoveAt(0);
+
+ // Set the new checkpoint in pos 0 to be active and listen for it's completion
+ BountyCheckpoints[0]->Active = true;
+ BountyCheckpoints[0]->CompletedCheckpoint.AddDynamic(this, &ABountyClass::IncrementBountyCheckpoint);
+
+}
+
+void ABountyClass::CollectRewards_Implementation()
+{
+ UE_LOG(LogTemp, Warning, TEXT("The player has gained $%d for completing the bounty!"), RewardMoney);
+}
+
+void ABountyClass::UpdateBountyCheckpoints(TMap> ReplacementCheckpoints)
+{
+ if (ReplacementCheckpoints.IsEmpty())
+ {
+ UE_LOG(LogTemp, Warning, TEXT("No Replacement Steps found"));
+ return;
+ }
+
+ FActorSpawnParameters SpawnParameters;
+ SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+
+ for (auto ReplacementCheckpoint : ReplacementCheckpoints)
+ {
+ BountyCheckpoints[ReplacementCheckpoint.Key]->Destroy();
+ ReplacementCheckpointClass = ReplacementCheckpoint.Value;
+
+ FVector Loc = ReplacementCheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetLocation();
+ FRotator Rot = ReplacementCheckpointClass.GetDefaultObject()->GetCheckpointSpawnTransform().GetRotation().Rotator();
+ ACheckpointClass* SpawnedCheckpoint = Cast(GetWorld()->SpawnActor(ReplacementCheckpoint.Value, Loc, Rot, SpawnParameters));
+
+ if (SpawnedCheckpoint == nullptr)
+ {
+ UE_LOG(LogTemp, Fatal, TEXT("The new checkpoint hasn't spawned in properly or can't be cast to"));
+ return;
+ }
+
+ BountyCheckpoints[ReplacementCheckpoint.Key] = SpawnedCheckpoint;
+ if (ReplacementCheckpoint.Key == 0)
+ {
+ BountyCheckpoints[ReplacementCheckpoint.Key]->Active = true;
+ BountyCheckpoints[ReplacementCheckpoint.Key]->CompletedCheckpoint.AddDynamic(this, &ABountyClass::IncrementBountyCheckpoint);
+ }
+ }
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
index d56e3d21..9dfb87e1 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
@@ -3,24 +3,140 @@
#pragma once
#include "CoreMinimal.h"
+#include "CheckpointClass.h"
#include "GameFramework/Actor.h"
#include "BountyClass.generated.h"
+DECLARE_DYNAMIC_MULTICAST_DELEGATE(FCompletedFirstCheckpoint)
+
UCLASS()
class ENDLESSVENDETTA_API ABountyClass : public AActor
{
GENERATED_BODY()
+
+ // Used to temp store value of incoming replacement checkpoint class
+ TSubclassOf ReplacementCheckpointClass;
-public:
- // Sets default values for this actor's properties
- ABountyClass();
+ bool BountyStarted = false;
protected:
+ // ------- Properties Set in Editor --------------
+ UPROPERTY(EditDefaultsOnly, Category = "Bounty")
+ TArray> CheckpointsToSpawn;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Bounty")
+ int RewardMoney = 0;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Bounty")
+ FString BountyTitle;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Bounty")
+ FString BountyDesc;
+ // -----------------------------------------------
+
+ bool Completed = false;
+
+ /**
+ * Default is 2 as final step in most Bounties is to return to ship,
+ * which can't be completed. Change to 1 if that's not the case.
+ */
+ int MinCPsRequiredForCompletion = 2;
+
+ // Spawned in Checkpoints for this Bounty
+ TArray BountyCheckpoints;
+
+ // Spawns and stores this Bounties Checkpoints in order
+ void SpawnCheckpoints();
+
// Called when the game starts or when spawned
virtual void BeginPlay() override;
-public:
- // Called every frame
- virtual void Tick(float DeltaTime) override;
+
+public:
+ // Broadcast when first checkpoint from this bounty is completed
+ FCompletedFirstCheckpoint CompletedFirstCheckpoint;
+ // ------ Getters for Bounty and Checkpoint Properties ------
+ bool IsCompleted()
+ {
+ return Completed;
+ }
+
+ FString GetBountyTitle()
+ {
+ return BountyTitle;
+ }
+
+ FString GetBountyDesc()
+ {
+ return BountyDesc;
+ }
+
+ FVector GetCheckpointLocation()
+ {
+ if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr)
+ {
+ return FVector(0, 0, 0);
+ }
+
+ return BountyCheckpoints[0]->GetCheckpointSpawnTransform().GetLocation();
+ }
+
+ FVector GetActiveWaypointLocation()
+ {
+ if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr)
+ {
+ return FVector(0, 0, 0);
+ }
+
+ return BountyCheckpoints[0]->GetWaypointLoc();
+ }
+
+ UTexture2D* GetActiveWaypointIcon()
+ {
+ if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr)
+ {
+ return nullptr;
+ }
+
+ return BountyCheckpoints[0]->GetWaypointIcon();
+ }
+
+ FString GetCheckpointDescription()
+ {
+ if (BountyCheckpoints.IsEmpty() || BountyCheckpoints[0] == nullptr)
+ {
+ return FString("No more Bounty checkpoints, check BountyClass.h GetCheckpointDescription()");
+ }
+
+ return BountyCheckpoints[0]->GetCheckpointDesc();
+ }
+ // ----------------------------------------------------------
+
+ // Sets default values for this actor's properties
+ ABountyClass();
+
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+ // Called when a checkpoint is completed, handles moving onto next checkpoint and discarding the old one
+ UFUNCTION()
+ virtual void IncrementBountyCheckpoint();
+
+ // Collect Money in C++, any other special reward will be implemented in BP if neccessary
+ UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
+ void CollectRewards();
+
+ void DestroyReturnToShipStep()
+ {
+ if (BountyCheckpoints.Num() > 1)
+ {
+ UE_LOG(LogTemp, Warning, TEXT("Didn't Destroy final step as more than one steps still left in Bounty"));
+ }
+
+ BountyCheckpoints[0]->Destroy();
+ }
+
+ // Called by Bounty Director, replaces specified checkpoints to alter Bounty when player completes a side bounty
+ void UpdateBountyCheckpoints(TMap> ReplacementCheckpoints);
};
From 9a75262e6644bf7fa212e79a512f88cbf69c1645 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Wed, 27 Sep 2023 17:42:35 +0100
Subject: [PATCH 009/112] Added Pickup Functionality and working on spawning to
hand
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-
.../AssaultRifles/BP_BaseAssaultRifle.uasset | 3 ++
.../Pistols/BP_BasePistolWeapon.uasset | 4 +-
.../Actions/IA_EquipPrimaryWeapon.uasset | 3 ++
.../Actions/IA_EquipSecondaryWeapon.uasset | 3 ++
.../Input/Actions/IA_WeaponEquip.uasset | 3 --
.../FirstPerson/Input/IMC_Default.uasset | 4 +-
.../1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset | 2 +-
.../7/GA/SIX97XFU4YK3BWI9S71SMF.uasset | 3 ++
.../EndlessVendettaCharacter.cpp | 52 +++++++++++++++++--
.../EndlessVendettaCharacter.h | 28 +++++++---
.../EndlessVendetta/WeaponInventory.cpp | 44 ----------------
.../Source/EndlessVendetta/WeaponInventory.h | 44 ----------------
13 files changed, 86 insertions(+), 111 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipPrimaryWeapon.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipSecondaryWeapon.uasset
delete mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset
delete mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
delete mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 690d04ef..0877150a 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2d5de8f4e27f1e085417782dd7729fc662c3ab813afabba992a0bfe6ad51573c
-size 35545
+oid sha256:92f8bdd8d4e8196894411a8141429f15316d83e076b0163070ee174bd3eb4ac7
+size 32087
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
new file mode 100644
index 00000000..50209cd2
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8b311799aa263b7af6d3eb738da33d39b0d40d7883bf0a4e3cb6024e06157cec
+size 37724
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
index 16d0e458..fe34a700 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f562f592d0a4fc6f34c7deb5c861593a1b7282f786b19b3789fbac2bee01c7a1
-size 29063
+oid sha256:60c71c86a00bef84374641ca7fed67e2338916dba788e69d643a8477add71d97
+size 29026
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipPrimaryWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipPrimaryWeapon.uasset
new file mode 100644
index 00000000..62f17b30
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipPrimaryWeapon.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e8920145a0a5f7ac0f10a98d15f35f28926503ff5d3ea093c79a07688b92bfdf
+size 1707
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipSecondaryWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipSecondaryWeapon.uasset
new file mode 100644
index 00000000..3c045634
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_EquipSecondaryWeapon.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8f05f0bf87ed32cb40eac24d420dc279e2e808df4358300d3f3b839530267584
+size 1717
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset
deleted file mode 100644
index d06772c3..00000000
--- a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_WeaponEquip.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0c07e01e5199aaa3d4e7fb5dc36733918e91aa93620cbef070e2472021315d4
-size 1672
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
index 4568b732..c85553cd 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7d38ac187045f18e01436a5d90333878b3490d25037c84c712f943cb34f785bb
-size 14484
+oid sha256:ffa41b9939bbfe39ea2480464028578938aa1a8c0acc1edeac030ade6d1d9d76
+size 14001
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
index 9414b284..fa367335 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:df93071fd48bde5bf300bdb99470e05451e488b38627fbf6b22212b3c03e0fd3
+oid sha256:abfeb59ea7bea538e1b873a97345a0336c40b7c353d167ddd1a4fac4a16dcad6
size 5061
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset
new file mode 100644
index 00000000..bd2505f8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c7be8ced7b103ba47409aefeea3621d8602fcd366160651c53447a7c2f866e4
+size 5097
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index f9dc4927..ef3f3c8e 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -71,7 +71,53 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Look);
//Weapon Switching
- EnhancedInputComponent->BindAction(WeaponEquipAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::WeaponEquip);
+ EnhancedInputComponent->BindAction(EquipPrimaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipPrimary);
+ EnhancedInputComponent->BindAction(EquipSecondaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipSecondary);
+ }
+}
+
+void AEndlessVendettaCharacter::EquipPrimary()
+{
+ UE_LOG(LogTemp, Display, TEXT("Primary equipped"));
+}
+
+void AEndlessVendettaCharacter::EquipSecondary()
+{
+ UE_LOG(LogTemp, Display, TEXT("Secondary equipped"));
+}
+
+//Called from Player BluePrints
+void AEndlessVendettaCharacter::WeaponPickUpSystem(AActor* PickedUpWeapon)
+{
+ ABaseWeaponClass* WeaponInWorld = Cast(PickedUpWeapon);
+ if(WeaponInWorld->IsA(ABaseWeaponClass::StaticClass()))
+ {
+ if(PrimaryWeapon)
+ {
+ UE_LOG(LogTemp, Display, TEXT("Primary Weapon Picked up"));
+ bHasRifle = true;
+ FVector loc = GetActorLocation() + FVector(-50, 0, 0);
+ FRotator rot = GetActorRotation();
+ FActorSpawnParameters spawnParams;
+ spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+ //WeaponInWorld = Cast(GetWorld()->SpawnActor(PrimaryWeapon, loc, rot, spawnParams));
+ WeaponInWorld->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ WeaponInWorld->Destroy();
+
+ //for some reason the spawning of the weapon is broken to the players hand so need to fix this.
+
+ // potentially add a varibable to check if its a secondary or priamry weapon being picked up
+ // add this in the baseweaponclass variable
+ }
+ }
+ if(WeaponInWorld->IsA(ABaseWeaponClass::StaticClass()))
+ {
+ if(SecondaryWeapon)
+ {
+ UE_LOG(LogTemp, Display, TEXT("Secondary Weapon Picked up"));
+
+ }
}
}
@@ -102,10 +148,6 @@ void AEndlessVendettaCharacter::Look(const FInputActionValue& Value)
}
}
-void AEndlessVendettaCharacter::WeaponEquip()
-{
- UE_LOG(LogTemp, Display, TEXT("EQUIPPING WEAPONS"));
-}
void AEndlessVendettaCharacter::SetHasRifle(bool bNewHasRifle)
{
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index c9405896..c96f307f 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -3,6 +3,7 @@
#pragma once
#include "CoreMinimal.h"
+#include "BaseWeaponClass.h"
#include "GameFramework/Character.h"
#include "InputActionValue.h"
#include "EndlessVendettaCharacter.generated.h"
@@ -42,7 +43,10 @@ class AEndlessVendettaCharacter : public ACharacter
/** Weapon Equip Action */
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
- class UInputAction* WeaponEquipAction;
+ class UInputAction* EquipPrimaryWeapon;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
+ class UInputAction* EquipSecondaryWeapon;
public:
@@ -69,15 +73,27 @@ public:
UFUNCTION(BlueprintCallable, Category = Weapon)
bool GetHasRifle();
+ UPROPERTY(EditAnywhere, Category = "Weapons")
+ TSubclassOf PrimaryWeapon;
+
+ UPROPERTY(EditAnywhere, Category = "Weapons")
+ TSubclassOf SecondaryWeapon;
+
protected:
/** Called for movement input */
void Move(const FInputActionValue& Value);
/** Called for looking input */
void Look(const FInputActionValue& Value);
+
+ void EquipPrimary();
+
+ void EquipSecondary();
- void WeaponEquip();
-
+ //Called from Player BluePrints
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void WeaponPickUpSystem(AActor* PickedUpWeapon);
+
protected:
// APawn interface
virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override;
@@ -88,10 +104,6 @@ public:
USkeletalMeshComponent* GetMesh1P() const { return Mesh1P; }
/** Returns FirstPersonCameraComponent subobject **/
UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; }
-
-private:
- UWeaponInventory* WeaponInventory;
-
-
+
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
deleted file mode 100644
index 97262c6c..00000000
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-
-#include "WeaponInventory.h"
-
-#include "WeaponItemClass.h"
-
-
-// Sets default values for this component's properties
-UWeaponInventory::UWeaponInventory()
-{
- // Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
- // off to improve performance if you don't need them.
- PrimaryComponentTick.bCanEverTick = true;
-
-}
-
-
-// Called when the game starts
-void UWeaponInventory::BeginPlay()
-{
- Super::BeginPlay();
-
- // ...
-
-}
-
-
-// Called every frame
-void UWeaponInventory::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
-{
- Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
-
- // ...
-}
-
-//Called from blueprints from the player
-void UWeaponInventory::WeaponPickup(AActor* WeaponPickedUp)
-{
- AWeaponItemClass* WeaponItemClass = Cast(WeaponPickedUp);
- WeaponsArray.Add(WeaponItemClass);
- WeaponPickedUp->Destroy();
-}
-
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h b/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
deleted file mode 100644
index b060d0ac..00000000
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponInventory.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-#pragma once
-
-#include "CoreMinimal.h"
-#include "Components/ActorComponent.h"
-#include "WeaponInventory.generated.h"
-
-
-class AWeaponItemClass;
-
-UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
-class ENDLESSVENDETTA_API UWeaponInventory : public UActorComponent
-{
- GENERATED_BODY()
-
-public:
- // Sets default values for this component's properties
- UWeaponInventory();
-
-protected:
- // Called when the game starts
- virtual void BeginPlay() override;
-
- UPROPERTY(VisibleAnywhere, Category = "Weapon System")
- TArray WeaponsArray;
-
-public:
- // Called every frame
- virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
-
- //Using a getter to get the protected weaponsArray
- UFUNCTION()
- TArray GetWeaponArray() const { return WeaponsArray; }
-
- //Using a Setter to set the protected weapons array to the getter
- UFUNCTION()
- void SetArray(const TArray weaponArray) { WeaponsArray = weaponArray; }
-
-private:
- //Called from blueprints from the player
- UFUNCTION(BlueprintCallable)
- void WeaponPickup(AActor* WeaponPickedUp);
-};
From 5e6f5e4b9e2ff90e12fe1cd6682e70c3fbd0f1e0 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Wed, 27 Sep 2023 18:52:35 +0100
Subject: [PATCH 010/112] Implemented Side Bounty Class Functionality
---
.../Architecture/Floor_400x400.uasset | 4 +--
.../HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 +--
.../BountySystem/SideBountyClass.cpp | 30 +++++++++++++++++++
.../BountySystem/SideBountyClass.h | 24 +++++++++++++--
4 files changed, 55 insertions(+), 7 deletions(-)
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index b62ede04..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1b95b1625b69860032c6a30ad9af83d68e7c0214b449e5355e3affa071fa6230
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index 0f990580..bc2f4981 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
-size 72364642
+oid sha256:8d8e13eaeaa5d8a31e974965a0e7f2c7cb546934b4129fe17baa4c26f838a051
+size 66790690
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
index 9cb7eb8b..e78f6b94 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
@@ -3,3 +3,33 @@
#include "SideBountyClass.h"
+void ASideBountyClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+ MinCPsRequiredForCompletion = 1;
+}
+
+void ASideBountyClass::IncrementBountyCheckpoint()
+{
+ Super::IncrementBountyCheckpoint();
+
+ if (Completed)
+ {
+ CompletedSideBounty.Broadcast(ActiveSBC_Index);
+ }
+}
+
+void ASideBountyClass::DestroyCheckpoints()
+{
+ for (int i = 0; i < BountyCheckpoints.Num(); i++)
+ {
+ if (BountyCheckpoints[i] == nullptr)
+ {
+ continue;
+ }
+
+ BountyCheckpoints[i]->Destroy();
+ }
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h
index 460bb922..9c0dd1e2 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.h
@@ -6,12 +6,30 @@
#include "BountyClass.h"
#include "SideBountyClass.generated.h"
-/**
- *
- */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FCompletedSideBounty, int, SB_Index);
+
UCLASS()
class ENDLESSVENDETTA_API ASideBountyClass : public ABountyClass
{
GENERATED_BODY()
+
+ UPROPERTY(EditDefaultsOnly, Category = "Side Bounty")
+ TMap> ReplacementCheckpoints;
+
+protected:
+ virtual void BeginPlay() override;
+
+public:
+ FCompletedSideBounty CompletedSideBounty;
+ int ActiveSBC_Index;
+
+ TMap> GetReplacementCheckpoints()
+ {
+ return ReplacementCheckpoints;
+ }
+
+ virtual void IncrementBountyCheckpoint() override;
+
+ void DestroyCheckpoints();
};
From 1432b479b28fff4906026a04b1a01f4be0a7518b Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Thu, 28 Sep 2023 11:42:16 +0100
Subject: [PATCH 011/112] Added Simple Gun Swapping and un-equip
---
.../FPWeapon/Materials/M_FPGunPistol.uasset | 3 ++
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-
.../Pistols/BP_BasePistolWeapon.uasset | 4 +-
.../Architecture/Floor_400x400.uasset | 4 +-
.../1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset | 3 --
.../7/GA/SIX97XFU4YK3BWI9S71SMF.uasset | 3 --
.../EndlessVendettaCharacter.cpp | 52 ++++++++++++++++---
.../EndlessVendettaCharacter.h | 14 +++--
8 files changed, 64 insertions(+), 23 deletions(-)
create mode 100644 EndlessVendetta/Content/FPWeapon/Materials/M_FPGunPistol.uasset
delete mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
delete mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset
diff --git a/EndlessVendetta/Content/FPWeapon/Materials/M_FPGunPistol.uasset b/EndlessVendetta/Content/FPWeapon/Materials/M_FPGunPistol.uasset
new file mode 100644
index 00000000..1872dca9
--- /dev/null
+++ b/EndlessVendetta/Content/FPWeapon/Materials/M_FPGunPistol.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abb955fc6a17250b071cde3d7a9c1403826533ff48906851ff00c5205df1607d
+size 30077
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 0877150a..00b38c8d 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:92f8bdd8d4e8196894411a8141429f15316d83e076b0163070ee174bd3eb4ac7
-size 32087
+oid sha256:46657eb5de2de0259508b2ff818d484f06f895c13f8bb3d04c6fc34ea61659a1
+size 23694
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
index fe34a700..3f00099b 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:60c71c86a00bef84374641ca7fed67e2338916dba788e69d643a8477add71d97
-size 29026
+oid sha256:202ab16b4ffa35b8b8140c728744b529514cd98e7cf595a674e0bd13bcfbaff9
+size 29227
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index db9c31d9..1ea19b26 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c4714323c517973cefc36046bc8310e35417fac27e8b323667e4a46c5c09ba5f
-size 14803
+oid sha256:e5a9006c075f35f1cab65fb02d8034543f6b54e6087f7352477f45abf6640e43
+size 14831
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
deleted file mode 100644
index fa367335..00000000
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/1/1E/W6O6OMVMAU1GMH2HVWXH3L.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:abfeb59ea7bea538e1b873a97345a0336c40b7c353d167ddd1a4fac4a16dcad6
-size 5061
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset
deleted file mode 100644
index bd2505f8..00000000
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/7/GA/SIX97XFU4YK3BWI9S71SMF.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4c7be8ced7b103ba47409aefeea3621d8602fcd366160651c53447a7c2f866e4
-size 5097
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index ef3f3c8e..7195bf46 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -16,10 +16,10 @@ AEndlessVendettaCharacter::AEndlessVendettaCharacter()
{
// Character doesnt have a rifle at start
bHasRifle = false;
-
+
// Set size for collision capsule
GetCapsuleComponent()->InitCapsuleSize(55.f, 96.0f);
-
+
// Create a CameraComponent
FirstPersonCameraComponent = CreateDefaultSubobject(TEXT("FirstPersonCamera"));
FirstPersonCameraComponent->SetupAttachment(GetCapsuleComponent());
@@ -78,16 +78,54 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
void AEndlessVendettaCharacter::EquipPrimary()
{
- UE_LOG(LogTemp, Display, TEXT("Primary equipped"));
+ if (!IsValid(PrimaryWeapon))
+ {
+ if (IsValid(SecondaryWeapon)) EquipSecondary();
+
+ UE_LOG(LogTemp, Display, TEXT("Primary equipped"));
+ bHasRifle = true;
+ FActorSpawnParameters spawnParams;
+ spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+ AActor* PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams);
+ PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ PrimaryWeapon = Cast(PrimaryWeaponActor);
+
+ }
+ else if (IsValid(PrimaryWeapon))
+ {
+ PrimaryWeapon->Destroy();
+ bHasRifle = false;
+
+ }
}
void AEndlessVendettaCharacter::EquipSecondary()
{
- UE_LOG(LogTemp, Display, TEXT("Secondary equipped"));
+ if (!IsValid(SecondaryWeapon))
+ {
+ if (IsValid(PrimaryWeapon)) EquipPrimary();
+
+ UE_LOG(LogTemp, Display, TEXT("Secondary equipped"));
+ bHasRifle = true;
+ FActorSpawnParameters spawnParams;
+ spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+ AActor* SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams);
+ SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ SecondaryWeapon = Cast(SecondaryWeaponActor);
+ }
+ else if (IsValid(SecondaryWeapon))
+ {
+ SecondaryWeapon->Destroy();
+ bHasRifle = false;
+ }
}
+//POTENTIAL PICKUP SYSTEM NEEDS CHANGING BUT YES
+
//Called from Player BluePrints
-void AEndlessVendettaCharacter::WeaponPickUpSystem(AActor* PickedUpWeapon)
+/*void AEndlessVendettaCharacter::WeaponPickUpSystem(AActor* PickedUpWeapon)
{
ABaseWeaponClass* WeaponInWorld = Cast(PickedUpWeapon);
if(WeaponInWorld->IsA(ABaseWeaponClass::StaticClass()))
@@ -116,10 +154,10 @@ void AEndlessVendettaCharacter::WeaponPickUpSystem(AActor* PickedUpWeapon)
if(SecondaryWeapon)
{
UE_LOG(LogTemp, Display, TEXT("Secondary Weapon Picked up"));
-
+
}
}
-}
+}*/
void AEndlessVendettaCharacter::Move(const FInputActionValue& Value)
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index c96f307f..c5c020fc 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -6,6 +6,7 @@
#include "BaseWeaponClass.h"
#include "GameFramework/Character.h"
#include "InputActionValue.h"
+#include "Components/ArrowComponent.h"
#include "EndlessVendettaCharacter.generated.h"
class UWeaponInventory;
@@ -74,10 +75,15 @@ public:
bool GetHasRifle();
UPROPERTY(EditAnywhere, Category = "Weapons")
- TSubclassOf PrimaryWeapon;
+ TSubclassOf PrimaryWeaponClass;
UPROPERTY(EditAnywhere, Category = "Weapons")
- TSubclassOf SecondaryWeapon;
+ TSubclassOf SecondaryWeaponClass;
+
+ ABaseWeaponClass* PrimaryWeapon;
+
+ ABaseWeaponClass* SecondaryWeapon;
+
protected:
/** Called for movement input */
@@ -91,8 +97,8 @@ protected:
void EquipSecondary();
//Called from Player BluePrints
- UFUNCTION(BlueprintCallable, Category = "Weapons")
- void WeaponPickUpSystem(AActor* PickedUpWeapon);
+ //UFUNCTION(BlueprintCallable, Category = "Weapons")
+ //void WeaponPickUpSystem(AActor* PickedUpWeapon);
protected:
// APawn interface
From 64fc74c5fc0f75ef70627d919d33a18d15ff825d Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Thu, 28 Sep 2023 11:57:14 +0100
Subject: [PATCH 012/112] Added Comments to increase readability
---
.../Source/EndlessVendetta/EndlessVendettaCharacter.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 7195bf46..189f8513 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -76,8 +76,13 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
}
}
+//When 1 is pressed it calls EquipPrimary
void AEndlessVendettaCharacter::EquipPrimary()
{
+ //If primary weapon is not there but secondary weapon is it will call equipSecondary.
+ //EquipSecondary checks and sees that secondary is there so it will call to destroy itself
+ //Code goes back and sees primary weapon is not there anymore and spawns it in.
+ //Same thing for the EquipSecondary()
if (!IsValid(PrimaryWeapon))
{
if (IsValid(SecondaryWeapon)) EquipSecondary();
@@ -87,8 +92,11 @@ void AEndlessVendettaCharacter::EquipPrimary()
FActorSpawnParameters spawnParams;
spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+ //Creating a new actor object called PrimaryWeapon that is based off primaryweaponClass
AActor* PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams);
PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ //Changing PrimaryWeaponActor to ABaseWeaponClass type instead of actor and storing it into PrimaryWeapon which is a ABaseClass Object
+ //We do this because we need to check if PrimaryWeapon is equipped and we want primaryweapon to be ABaseWeapon type and not a generic AActor
PrimaryWeapon = Cast(PrimaryWeaponActor);
}
From 0fd1b60d52679ed623e1a7f8331ea6bb415834e2 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Thu, 28 Sep 2023 15:19:26 +0100
Subject: [PATCH 013/112] Implemented Bounty Director Class Functionality
---
.../Architecture/Floor_400x400.uasset | 4 +-
.../HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 +-
.../BountySystem/BountyDirector.cpp | 138 +++++++++++++++++-
.../BountySystem/BountyDirector.h | 78 +++++++++-
.../BountySystem/CheckpointClass.h | 1 +
5 files changed, 211 insertions(+), 14 deletions(-)
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index c2a34afc..d8d11add 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
-size 14948
+oid sha256:c253fc4685a93abd7626303f34194de38d32f2d1549008ec1051e50eff7e5c62
+size 14831
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index bc2f4981..0f990580 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8d8e13eaeaa5d8a31e974965a0e7f2c7cb546934b4129fe17baa4c26f838a051
-size 66790690
+oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
+size 72364642
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
index 67e12786..9e622442 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
@@ -3,6 +3,8 @@
#include "BountyDirector.h"
+#include "Components/ArrowComponent.h"
+
// Sets default values
ABountyDirector::ABountyDirector()
{
@@ -11,17 +13,139 @@ ABountyDirector::ABountyDirector()
}
-// Called when the game starts or when spawned
-void ABountyDirector::BeginPlay()
-{
- Super::BeginPlay();
-
-}
-
// Called every frame
void ABountyDirector::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
+// Called when the game starts or when spawned
+void ABountyDirector::BeginPlay()
+{
+ Super::BeginPlay();
+
+ PlayerChar = Cast(GetWorld()->GetFirstPlayerController()->GetCharacter());
+ if (!IsValid(PlayerChar)) UE_LOG(LogTemp, Fatal, TEXT("Players Character isn't being loaded in BeginPlay() in BountyDirector"));
+
+ // Setup a component for bounties to attach to on the player
+ for (UActorComponent* ActorComp : PlayerChar->GetComponentsByTag(UArrowComponent::StaticClass(), FName("Bounty")))
+ {
+ BountyAttachmentPoint = Cast(ActorComp);
+ if (!IsValid(BountyAttachmentPoint)) UE_LOG(LogTemp, Fatal, TEXT("There's no Bounty Attachment UArrowComponent on Players Char "));
+ break;
+ }
+
+ // Setup up starting Side Bounty indexes
+ for (int Index = 0; Index < 3; Index++)
+ {
+ CurrentSideBountyIndexes.Add(Index);
+ }
+
+ ActiveSideBounties.SetNum(3);
+ SpawnBountyAndItsSideBounties();
+ UpdateBountyDisplay();
+}
+
+void ABountyDirector::SpawnBountyAndItsSideBounties()
+{
+ UE_LOG(LogTemp, Warning, TEXT("Spawning Bounty..."));
+
+ if (BountyClassArray.IsEmpty()) return;
+ if (!IsValid(BountyClassArray[CurrentBountyIndex])) UE_LOG(LogTemp, Fatal, TEXT("Missing Bounty at Index: %d"), CurrentBountyIndex);
+
+ // Spawn Main Bounty which the current bounty index is pointing to
+ FActorSpawnParameters SpawnParams;
+ SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+
+ AActor* BountyActor = GetWorld()->SpawnActor(BountyClassArray[CurrentBountyIndex], PlayerChar->GetActorLocation(), PlayerChar->GetActorRotation(), SpawnParams);
+ const FAttachmentTransformRules AttachmentTransformRules(EAttachmentRule::SnapToTarget, true);
+ BountyActor->AttachToComponent(BountyAttachmentPoint, AttachmentTransformRules);
+
+ ActiveBounty = Cast(BountyActor);
+ if (!IsValid(ActiveBounty)) UE_LOG(LogTemp, Fatal, TEXT("Failed to Cast to Bounty class"));
+
+ // WHEN MARCEL STOPS PLAYING WITH THE CHARACTER, ADD THIS BOUNTY TO PLAYERS ARRAY OF ACTIVE BOUNTIES!!!!!
+ ActiveBounty->CompletedFirstCheckpoint.AddDynamic(this, &ABountyDirector::DestroyActiveSideBounties);
+
+ // Spawn in Side Bounties which are linked to the Main Bounty
+ int ActiveSideBountyIndex = 0;
+ for (int CurrentSideBountyIndex : CurrentSideBountyIndexes)
+ {
+ if (SideBountyClassArray.Num() <= CurrentSideBountyIndex || !IsValid(SideBountyClassArray[CurrentSideBountyIndex])) continue;
+
+ AActor* SideBountyActor = GetWorld()->SpawnActor(SideBountyClassArray[CurrentSideBountyIndex], PlayerChar->GetActorLocation(), PlayerChar->GetActorRotation(), SpawnParams);
+ ASideBountyClass* SideBounty = Cast(SideBountyActor);
+ SideBounty->AttachToComponent(BountyAttachmentPoint, AttachmentTransformRules);
+
+ ActiveSideBounties[ActiveSideBountyIndex] = SideBounty;
+ SideBounty->ActiveSBC_Index = ActiveSideBountyIndex;
+ ActiveSideBounties[ActiveSideBountyIndex]->CompletedSideBounty.AddDynamic(this, &ABountyDirector::SideBountyCompleted);
+ // ONCE AGAIN WHEN MARCEL STOPS PLAYING WITH THE CHARACTER, ADD THIS SIDE BOUNTY TO PLAYERS ARRAY OF ACTIVE BOUNTIES!!!!!
+ ActiveSideBountyIndex++;
+ }
+}
+
+void ABountyDirector::UpdateBountyProgression()
+{
+ if (!IsValid(ActiveBounty)) return;
+
+ if (ActiveBounty->IsCompleted()) FinishActiveBounty();
+}
+
+void ABountyDirector::FinishActiveBounty()
+{
+ ActiveBounty->CollectRewards();
+
+ // Destroy old Bounties
+ ActiveBounty->DestroyReturnToShipStep();
+ ActiveBounty->Destroy();
+ DestroyActiveSideBounties();
+
+ // Increment Main and Side Bounty Indexes
+ CurrentBountyIndex++;
+ for (int i = 0; i < 3; i++)
+ {
+ CurrentSideBountyIndexes[i] += 3;
+ }
+
+ // Game Completion Check
+ if (CurrentBountyIndex >= BountyClassArray.Num())
+ {
+ UE_LOG(LogTemp, Warning, TEXT("Finished all bounties currently available in the game :)"));
+ ActiveBounty = nullptr;
+ UpdateBountyDisplay();
+ return;
+ }
+
+ SpawnBountyAndItsSideBounties();
+ UpdateBountyDisplay();
+}
+
+void ABountyDirector::DestroyActiveSideBounties()
+{
+ for (ASideBountyClass* SideBounty : ActiveSideBounties)
+ {
+ if (!IsValid(SideBounty)) continue;
+
+ // WHEN MARCEL STOPS PLAYING WITH PLAYERS CHARACTER, REMOVE THIS SIDE BOUNTY FROM ACTIVE BOUNTIES
+
+ SideBounty->DestroyCheckpoints();
+ SideBounty->Destroy();
+ }
+
+ UpdateBountyDisplay();
+}
+
+void ABountyDirector::SideBountyCompleted(int SideBountyIndex)
+{
+ UE_LOG(LogTemp,Warning,TEXT("Updating Main Bounties Checkpoints"));
+ ActiveBounty->UpdateBountyCheckpoints(ActiveSideBounties[SideBountyIndex]->GetReplacementCheckpoints());
+
+ // WHEN MARCEL STOPS PLAYING WITH PLAYER CHAR, REMOVE THIS SIDE BOUNTY FROM ACTIVE BOUNTIES
+ ActiveSideBounties[SideBountyIndex]->DestroyCheckpoints();
+ ActiveSideBounties[SideBountyIndex]->Destroy();
+
+ UpdateBountyDisplay();
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
index 7192ce21..00b69ef9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
@@ -3,6 +3,9 @@
#pragma once
#include "CoreMinimal.h"
+#include "BountyClass.h"
+#include "SideBountyClass.h"
+#include "EndlessVendetta/EndlessVendettaCharacter.h"
#include "GameFramework/Actor.h"
#include "BountyDirector.generated.h"
@@ -11,16 +14,85 @@ class ENDLESSVENDETTA_API ABountyDirector : public AActor
{
GENERATED_BODY()
-public:
- // Sets default values for this actor's properties
- ABountyDirector();
+ AEndlessVendettaCharacter* PlayerChar;
+ // Scene Component Used to Attach Bounties to
+ UArrowComponent* BountyAttachmentPoint;
+
+ // Ordered Array of Main Bounties
+ UPROPERTY(EditDefaultsOnly, Category = "Bounty")
+ TArray> BountyClassArray;
+
+ // Ordered Array of Side Bounties, in three's
+ UPROPERTY(EditDefaultsOnly, Category = "Bounty")
+ TArray> SideBountyClassArray;
+
+ int CurrentBountyIndex = 0;
+
+ TArray CurrentSideBountyIndexes;
+
+ UPROPERTY(VisibleAnywhere, Category = "Bounty")
+ ABountyClass* ActiveBounty;
+
+ UPROPERTY(VisibleAnywhere, Category = "Bounty")
+ TArray ActiveSideBounties;
+
+ // Checks if completed the bounty, and moves onto the next if so
+ UFUNCTION(BlueprintCallable, Category = "Bounty")
+ void UpdateBountyProgression();
+
+ void SpawnBountyAndItsSideBounties();
+
+ // Collect reward for current Bounty and prepare for the next
+ void FinishActiveBounty();
+
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
+ /** Blueprint implemented function called from c++, handles aesthetic changes to bounty display
+ based on data from ActiveBC and ActiveSBC */
+ UFUNCTION(BlueprintImplementableEvent, Category = "bounty")
+ void UpdateBountyDisplay();
+
+ // Ran when a Side Bounty is completed and wants to update the active bounties checkpoints
+ UFUNCTION()
+ void SideBountyCompleted(int SideBountyIndex);
+
+ UFUNCTION()
+ void DestroyActiveSideBounties();
+
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
+ // Sets default values for this actor's properties
+ ABountyDirector();
+
+ // ------ Getters ------
+ UFUNCTION(BlueprintCallable, Category = "Bounty")
+ FString GetBountyTitle()
+ {
+ return IsValid(ActiveBounty) ? FString("N/A") : ActiveBounty->GetBountyTitle();
+ }
+
+ UFUNCTION(BlueprintCallable, Category = "Bounty")
+ FString GetBountyDescription()
+ {
+ return IsValid(ActiveBounty) ? FString("N/A") : ActiveBounty->GetBountyDesc();
+ }
+
+ UFUNCTION(BlueprintCallable, Category = "Bounty")
+ FString GetSideBountyTitle(int SideBountyIndex)
+ {
+ return (SideBountyIndex > 2 || SideBountyIndex < 0 || IsValid(ActiveSideBounties[SideBountyIndex])) ? FString("N/A") : ActiveSideBounties[SideBountyIndex]->GetBountyTitle();
+ }
+
+ UFUNCTION(BlueprintCallable, Category = "Bounty")
+ FString GetSideBountyDescription(int SideBountyIndex)
+ {
+ return (SideBountyIndex > 2 || SideBountyIndex < 0 || IsValid(ActiveSideBounties[SideBountyIndex])) ? FString("N/A") : ActiveSideBounties[SideBountyIndex]->GetBountyDesc();
+ }
+
+
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
index c182b8cb..6991181a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/CheckpointClass.h
@@ -27,6 +27,7 @@ class ENDLESSVENDETTA_API ACheckpointClass : public AActor
UFUNCTION(BlueprintCallable, Category = "Checkpoint")
void BroadcastCompletion()
{
+ UE_LOG(LogTemp, Warning, TEXT("Completed Checkpoint"));
CompletedCheckpoint.Broadcast();
}
From 23c40b95b87e97db8043cc719d233ccf1e08306d Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Thu, 28 Sep 2023 17:21:57 +0100
Subject: [PATCH 014/112] Add Third Person Character Starter Pack
---
.../.idea/discord-ij.xml | 7 +
.../.idea.EndlessVendetta.dir/.idea/vcs.xml | 6 +
EndlessVendetta/Config/DefaultEngine.ini | 6 +-
EndlessVendetta/Config/DefaultInput.ini | 13 ++
.../Mannequin_UE4/Animations/Jog_Fwd.uasset | 3 +
.../Materials/Layers/ML_Latex_Black.uasset | 3 +
.../Layers/ML_ShinyPlastic_Beige.uasset | 3 +
.../Layers/ML_ShinyPlastic_Beige_Logo.uasset | 3 +
.../Materials/Layers/ML_SoftMetal.uasset | 3 +
.../Materials/M_MannequinUE4_Body.uasset | 3 +
.../Materials/M_MannequinUE4_ChestLogo.uasset | 3 +
.../Mannequin_UE4/Meshes/SK_Mannequin.uasset | 3 +
.../Meshes/SK_Mannequin_PhysicsAsset.uasset | 3 +
.../Meshes/SK_Mannequin_Skeleton.uasset | 3 +
.../Rigs/IK_UE4_Mannequin.uasset | 3 +
.../Rigs/RTG_UE4Manny_UE5Manny.uasset | 3 +
.../Rigs/RTG_UE5Manny_UE4Manny.uasset | 3 +
.../Textures/T_ML_Aluminum01.uasset | 3 +
.../Textures/T_ML_Aluminum01_N.uasset | 3 +
.../Textures/T_ML_Rubber_Blue_01_D.uasset | 3 +
.../Textures/T_ML_Rubber_Blue_01_N.uasset | 3 +
.../Textures/T_UE4_Mannequin_MAT_MASKA.uasset | 3 +
.../Textures/T_UE4_Mannequin__normals.uasset | 3 +
.../Textures/T_UELogo_Mask.uasset | 3 +
.../Textures/T_UELogo_N_TGA.uasset | 3 +
.../Mannequins/Animations/ABP_Manny.uasset | 3 +
.../Mannequins/Animations/ABP_Quinn.uasset | 3 +
.../Animations/Manny/BS_MM_WalkRun.uasset | 3 +
.../Animations/Manny/MM_Fall_Loop.uasset | 3 +
.../Animations/Manny/MM_Idle.uasset | 3 +
.../Animations/Manny/MM_Jump.uasset | 3 +
.../Animations/Manny/MM_Land.uasset | 3 +
.../Animations/Manny/MM_Run_Fwd.uasset | 3 +
.../Animations/Manny/MM_T_Pose.uasset | 3 +
.../Animations/Manny/MM_Walk_Fwd.uasset | 3 +
.../Animations/Manny/MM_Walk_InPlace.uasset | 3 +
.../Quinn/BS_MF_Unarmed_WalkRun.uasset | 3 +
.../Animations/Quinn/MF_Idle.uasset | 3 +
.../Animations/Quinn/MF_Run_Fwd.uasset | 3 +
.../Animations/Quinn/MF_Walk_Fwd.uasset | 3 +
.../Materials/Functions/CA_Mannequin.uasset | 3 +
.../Materials/Functions/ChromaticCurve.uasset | 3 +
.../Materials/Functions/MF_Diffraction.uasset | 3 +
.../Materials/Functions/MF_logo3layers.uasset | 3 +
.../Functions/ML_BaseColorFallOff.uasset | 3 +
.../Instances/Manny/MI_Manny_01.uasset | 3 +
.../Instances/Manny/MI_Manny_02.uasset | 3 +
.../Instances/Quinn/MI_Quinn_01.uasset | 3 +
.../Instances/Quinn/MI_Quinn_02.uasset | 3 +
.../Mannequins/Materials/M_Mannequin.uasset | 3 +
.../Meshes/Mannequin_LODSettings.uasset | 3 +
.../Mannequins/Meshes/SKM_Manny.uasset | 3 +
.../Mannequins/Meshes/SKM_Manny_Simple.uasset | 3 +
.../Mannequins/Meshes/SKM_Quinn.uasset | 3 +
.../Mannequins/Meshes/SKM_Quinn_Simple.uasset | 3 +
.../Mannequins/Meshes/SK_Mannequin.uasset | 3 +
.../Rigs/ABP_Manny_PostProcess.uasset | 3 +
.../Rigs/ABP_Quinn_PostProcess.uasset | 3 +
.../Rigs/CR_Mannequin_BasicFootIK.uasset | 3 +
.../Mannequins/Rigs/CR_Mannequin_Body.uasset | 3 +
.../Rigs/CR_Mannequin_Procedural.uasset | 3 +
.../Mannequins/Rigs/IK_Mannequin.uasset | 3 +
.../Mannequins/Rigs/PA_Mannequin.uasset | 3 +
.../Rigs/Poses/Manny/Manny_calf_l_anim.uasset | 3 +
.../Rigs/Poses/Manny/Manny_calf_l_pose.uasset | 3 +
.../Rigs/Poses/Manny/Manny_calf_r_anim.uasset | 3 +
.../Rigs/Poses/Manny/Manny_calf_r_pose.uasset | 3 +
.../Poses/Manny/Manny_clavicle_l_anim.uasset | 3 +
.../Poses/Manny/Manny_clavicle_l_pose.uasset | 3 +
.../Poses/Manny/Manny_clavicle_r_anim.uasset | 3 +
.../Poses/Manny/Manny_clavicle_r_pose.uasset | 3 +
.../Rigs/Poses/Manny/Manny_foot_l_anim.uasset | 3 +
.../Rigs/Poses/Manny/Manny_foot_l_pose.uasset | 3 +
.../Rigs/Poses/Manny/Manny_foot_r_anim.uasset | 3 +
.../Rigs/Poses/Manny/Manny_foot_r_pose.uasset | 3 +
.../Rigs/Poses/Manny/Manny_hand_l_anim.uasset | 3 +
.../Rigs/Poses/Manny/Manny_hand_l_pose.uasset | 3 +
.../Rigs/Poses/Manny/Manny_hand_r_anim.uasset | 3 +
.../Rigs/Poses/Manny/Manny_hand_r_pose.uasset | 3 +
.../Poses/Manny/Manny_lowerarm_l_anim.uasset | 3 +
.../Poses/Manny/Manny_lowerarm_l_pose.uasset | 3 +
.../Poses/Manny/Manny_lowerarm_r_anim.uasset | 3 +
.../Poses/Manny/Manny_lowerarm_r_pose.uasset | 3 +
.../Poses/Manny/Manny_thigh_l_anim.uasset | 3 +
.../Poses/Manny/Manny_thigh_l_pose.uasset | 3 +
.../Poses/Manny/Manny_thigh_r_anim.uasset | 3 +
.../Poses/Manny/Manny_thigh_r_pose.uasset | 3 +
.../Poses/Manny/Manny_upperarm_l_anim.uasset | 3 +
.../Poses/Manny/Manny_upperarm_l_pose.uasset | 3 +
.../Poses/Manny/Manny_upperarm_r_anim.uasset | 3 +
.../Poses/Manny/Manny_upperarm_r_pose.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset | 3 +
.../Poses/Quinn/Quinn_clavicle_l_anim.uasset | 3 +
.../Poses/Quinn/Quinn_clavicle_l_pose.uasset | 3 +
.../Poses/Quinn/Quinn_clavicle_r_anim.uasset | 3 +
.../Poses/Quinn/Quinn_clavicle_r_pose.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset | 3 +
.../Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset | 3 +
.../Poses/Quinn/Quinn_lowerarm_l_anim.uasset | 3 +
.../Poses/Quinn/Quinn_lowerarm_l_pose.uasset | 3 +
.../Poses/Quinn/Quinn_lowerarm_r_anim.uasset | 3 +
.../Poses/Quinn/Quinn_lowerarm_r_pose.uasset | 3 +
.../Poses/Quinn/Quinn_thigh_l_anim.uasset | 3 +
.../Poses/Quinn/Quinn_thigh_l_pose.uasset | 3 +
.../Poses/Quinn/Quinn_thigh_r_anim.uasset | 3 +
.../Poses/Quinn/Quinn_thigh_r_pose.uasset | 3 +
.../Poses/Quinn/Quinn_upperarm_l_anim.uasset | 3 +
.../Poses/Quinn/Quinn_upperarm_l_pose.uasset | 3 +
.../Poses/Quinn/Quinn_upperarm_r_anim.uasset | 3 +
.../Poses/Quinn/Quinn_upperarm_r_pose.uasset | 3 +
.../Mannequins/Rigs/RTG_Mannequin.uasset | 3 +
.../Manny/T_Manny_01_ASAOPMASK_MSK.uasset | 3 +
.../Textures/Manny/T_Manny_01_BN.uasset | 3 +
.../Manny/T_Manny_01_CCRCCPlastic_MSK.uasset | 3 +
.../Textures/Manny/T_Manny_01_D.uasset | 3 +
.../Textures/Manny/T_Manny_01_MSR_MSK.uasset | 3 +
.../Textures/Manny/T_Manny_01_N.uasset | 3 +
.../Textures/Manny/T_Manny_01_Tan.uasset | 3 +
.../Manny/T_Manny_02_ASAOPMASK_MSK.uasset | 3 +
.../Textures/Manny/T_Manny_02_BN.uasset | 3 +
.../Manny/T_Manny_02_CCRCCPlastic_MSK.uasset | 3 +
.../Textures/Manny/T_Manny_02_D.uasset | 3 +
.../Textures/Manny/T_Manny_02_MSR_MSK.uasset | 3 +
.../Textures/Manny/T_Manny_02_N.uasset | 3 +
.../Textures/Manny/T_Manny_02_Tan.uasset | 3 +
.../Textures/Quinn/T_Quinn_01ID_BN.uasset | 3 +
.../Textures/Quinn/T_Quinn_01ID_D.uasset | 3 +
.../Quinn/T_Quinn_01ID_MSR_MSK.uasset | 3 +
.../Textures/Quinn/T_Quinn_01ID_N.uasset | 3 +
.../Textures/Quinn/T_Quinn_01ID_Tan.uasset | 3 +
.../Quinn/T_Quinn_01_ASAOMASK_MSK.uasset | 3 +
.../Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset | 3 +
.../Textures/Quinn/T_Quinn_02ID_BN.uasset | 3 +
.../Textures/Quinn/T_Quinn_02ID_D.uasset | 3 +
.../Quinn/T_Quinn_02ID_MSR_MSK.uasset | 3 +
.../Textures/Quinn/T_Quinn_02ID_N.uasset | 3 +
.../Textures/Quinn/T_Quinn_02ID_Tan.uasset | 3 +
.../Quinn/T_Quinn_02_ASAOMASK_MSK.uasset | 3 +
.../Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset | 3 +
.../Textures/Shared/T_UE_Logo_M.uasset | 3 +
.../Blueprints/BP_ThirdPersonCharacter.uasset | 3 +
.../ThirdPerson/Input/Actions/IA_Jump.uasset | 3 +
.../ThirdPerson/Input/Actions/IA_Look.uasset | 3 +
.../ThirdPerson/Input/Actions/IA_Move.uasset | 3 +
.../ThirdPerson/Input/IMC_Default.uasset | 3 +
.../ThirdPerson/Maps/ThirdPersonMap.umap | 3 +
.../0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset | 3 +
.../0/FZ/4XWWUGWFDLX56REQRH8Z9W.uasset | 3 +
.../0/SX/SKO7AH9HKZVPN4OMFO4DV3.uasset | 3 +
.../1/0G/HOAJZN9E4DDI6Y1W3JU13K.uasset | 3 +
.../1/2J/AQ1PWWT9TBAI7AA470T014.uasset | 3 +
.../1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset | 3 +
.../1/EJ/PGUWWHRTS59S34GKBX0OUI.uasset | 3 +
.../1/HF/YFYBQ72OYLHJQS0TSSXGBV.uasset | 3 +
.../1/QS/VHQF8JWOATZI5V3ZVY5YTM.uasset | 3 +
.../1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset | 3 +
.../2/66/0OP5U85W4H0R7CHG999ZDN.uasset | 3 +
.../3/1V/XSFYSB2EC9Z21RQOBXZLMO.uasset | 3 +
.../3/B1/9G3WNX7WIR7UKI26T9LK5O.uasset | 3 +
.../3/HE/U35NZS5A9W1UXP1E3FF2GW.uasset | 3 +
.../3/OG/KDQDMXAXZXD8VLDDU4K3JL.uasset | 3 +
.../3/P3/O43ETCZTFMLWWH1CJ941H2.uasset | 3 +
.../5/Q1/5IZD4L3UPM3EEODZK67MH1.uasset | 3 +
.../6/0D/0WM78RPJCXHX477YOZXKQE.uasset | 3 +
.../6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset | 3 +
.../6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset | 3 +
.../6/NP/Z9EK2TXQ1TFO26WFZHWZII.uasset | 3 +
.../6/UV/1C6W14EIHMXOXXB657JYKB.uasset | 3 +
.../8/7Y/C94R5C0R01QSL2SVHUG3KD.uasset | 3 +
.../8/H9/GITN2HJQNERMM41FAE68W0.uasset | 3 +
.../8/P1/NN84RP20JNUCL0SHI5W2B8.uasset | 3 +
.../9/21/WWYX44RDCCS98492P9K9O3.uasset | 3 +
.../9/6I/RU1L28PS820IOVH625A0DA.uasset | 3 +
.../9/CI/KST702KSCRZWYV56G3VJBD.uasset | 3 +
.../9/MO/72II2GSLK9VS0ULW9SACWH.uasset | 3 +
.../A/BW/M7Z5RX3O7568TBJFK5R76I.uasset | 3 +
.../A/IO/07IVU4EY14FMETPGTJULEO.uasset | 3 +
.../B/CJ/ZQ5BFL59YGMQUT9ZD7CAHJ.uasset | 3 +
.../B/KW/9YH18EUCJFK5CZXL6H3W3R.uasset | 3 +
.../C/0I/VIQQWOEJKSKV1EK1XGX3EY.uasset | 3 +
.../D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset | 3 +
.../D/MM/5416TNIX8GKJW3B714Y6WF.uasset | 3 +
.../D/OI/BVNTLHAPOPDXURSVGR63ME.uasset | 3 +
.../D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset | 3 +
.../D/VL/KUT2U1MQ1ND9CXN070OTDM.uasset | 3 +
.../E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset | 3 +
.../E/T8/46ZIBNTTDDR3AOR2XC9VO6.uasset | 3 +
.../3/DH/JQTP3L9HHXRN8IUHATI906.uasset | 3 +
.../4/4A/NCNZF2U4ZTZ8XZJNF86FNT.uasset | 3 +
.../8/05/U8OLLG133BEQMR58UPHM3P.uasset | 3 +
.../A/KP/VZTB4WP3P1L1F1WL9R6XLZ.uasset | 3 +
.../B/AN/0Z4D0BFPHEXAYK76DY0WLL.uasset | 3 +
.../D/13/KQB15WT334LUGWVAUX80XH.uasset | 3 +
.../EndlessVendetta/AI/EnemyCharacter.cpp | 32 +++++
.../EndlessVendetta/AI/EnemyCharacter.h | 28 ++++
.../TP_ThirdPerson/TP_ThirdPerson.h | 5 +
.../TP_ThirdPersonCharacter.cpp | 129 ++++++++++++++++++
.../TP_ThirdPerson/TP_ThirdPersonCharacter.h | 66 +++++++++
.../TP_ThirdPerson/TP_ThirdPersonGameMode.cpp | 15 ++
.../TP_ThirdPerson/TP_ThirdPersonGameMode.h | 19 +++
209 files changed, 916 insertions(+), 4 deletions(-)
create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/discord-ij.xml
create mode 100644 EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Manny.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Materials/M_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
create mode 100644 EndlessVendetta/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset
create mode 100644 EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Jump.uasset
create mode 100644 EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Look.uasset
create mode 100644 EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Move.uasset
create mode 100644 EndlessVendetta/Content/ThirdPerson/Input/IMC_Default.uasset
create mode 100644 EndlessVendetta/Content/ThirdPerson/Maps/ThirdPersonMap.umap
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/FZ/4XWWUGWFDLX56REQRH8Z9W.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/SX/SKO7AH9HKZVPN4OMFO4DV3.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/0G/HOAJZN9E4DDI6Y1W3JU13K.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/2J/AQ1PWWT9TBAI7AA470T014.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/EJ/PGUWWHRTS59S34GKBX0OUI.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/HF/YFYBQ72OYLHJQS0TSSXGBV.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/QS/VHQF8JWOATZI5V3ZVY5YTM.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/2/66/0OP5U85W4H0R7CHG999ZDN.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/1V/XSFYSB2EC9Z21RQOBXZLMO.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/B1/9G3WNX7WIR7UKI26T9LK5O.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/HE/U35NZS5A9W1UXP1E3FF2GW.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/OG/KDQDMXAXZXD8VLDDU4K3JL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/P3/O43ETCZTFMLWWH1CJ941H2.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/Q1/5IZD4L3UPM3EEODZK67MH1.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/0D/0WM78RPJCXHX477YOZXKQE.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NP/Z9EK2TXQ1TFO26WFZHWZII.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/UV/1C6W14EIHMXOXXB657JYKB.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/7Y/C94R5C0R01QSL2SVHUG3KD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/H9/GITN2HJQNERMM41FAE68W0.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/P1/NN84RP20JNUCL0SHI5W2B8.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/21/WWYX44RDCCS98492P9K9O3.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/6I/RU1L28PS820IOVH625A0DA.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/CI/KST702KSCRZWYV56G3VJBD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/MO/72II2GSLK9VS0ULW9SACWH.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/BW/M7Z5RX3O7568TBJFK5R76I.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/IO/07IVU4EY14FMETPGTJULEO.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/CJ/ZQ5BFL59YGMQUT9ZD7CAHJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/KW/9YH18EUCJFK5CZXL6H3W3R.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/0I/VIQQWOEJKSKV1EK1XGX3EY.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/MM/5416TNIX8GKJW3B714Y6WF.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/OI/BVNTLHAPOPDXURSVGR63ME.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/VL/KUT2U1MQ1ND9CXN070OTDM.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/T8/46ZIBNTTDDR3AOR2XC9VO6.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/3/DH/JQTP3L9HHXRN8IUHATI906.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/4A/NCNZF2U4ZTZ8XZJNF86FNT.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/8/05/U8OLLG133BEQMR58UPHM3P.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/A/KP/VZTB4WP3P1L1F1WL9R6XLZ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/B/AN/0Z4D0BFPHEXAYK76DY0WLL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/D/13/KQB15WT334LUGWVAUX80XH.uasset
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPerson.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.h
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/discord-ij.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/discord-ij.xml
new file mode 100644
index 00000000..b2c4e3f1
--- /dev/null
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/discord-ij.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml
new file mode 100644
index 00000000..6c0b8635
--- /dev/null
+++ b/EndlessVendetta/.idea/.idea.EndlessVendetta.dir/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EndlessVendetta/Config/DefaultEngine.ini b/EndlessVendetta/Config/DefaultEngine.ini
index b419691f..a36b892f 100644
--- a/EndlessVendetta/Config/DefaultEngine.ini
+++ b/EndlessVendetta/Config/DefaultEngine.ini
@@ -23,8 +23,6 @@ r.DynamicGlobalIlluminationMethod=1
r.Mobile.EnableNoPrecomputedLightingCSMShader=1
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=true
-
-
r.Shadow.Virtual.Enable=1
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
@@ -56,8 +54,6 @@ CompressionQualityModifier=1.000000
AutoStreamingThreshold=0.000000
SoundCueCookQualityIndex=-1
-
-
[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=Desktop
AppliedTargetedHardwareClass=Desktop
@@ -67,6 +63,8 @@ AppliedDefaultGraphicsPerformance=Maximum
[/Script/Engine.Engine]
+ActiveGameNameRedirects=(OldGameName="TP_FirstPerson",NewGameName="/Script/EndlessVendetta")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_FirstPerson",NewGameName="/Script/EndlessVendetta")
++ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPerson",NewGameName="/Script/EndlessVendetta")
++ActiveGameNameRedirects=(OldGameName="TP_ThirdPerson",NewGameName="/Script/EndlessVendetta")
+ActiveClassRedirects=(OldClassName="TP_FirstPersonProjectile",NewClassName="EndlessVendettaProjectile")
+ActiveClassRedirects=(OldClassName="TP_FirstPersonGameMode",NewClassName="EndlessVendettaGameMode")
+ActiveClassRedirects=(OldClassName="TP_FirstPersonCharacter",NewClassName="EndlessVendettaCharacter")
diff --git a/EndlessVendetta/Config/DefaultInput.ini b/EndlessVendetta/Config/DefaultInput.ini
index 1bf5f902..aec1fc5c 100644
--- a/EndlessVendetta/Config/DefaultInput.ini
+++ b/EndlessVendetta/Config/DefaultInput.ini
@@ -93,6 +93,7 @@ bEnableLegacyInputScales=True
bEnableMotionControls=True
bFilterInputByPlatformUser=False
bShouldFlushPressedKeysOnViewportFocusLost=True
+bEnableDynamicComponentInputBinding=True
bAlwaysShowTouchInterface=False
bShowConsoleOnFourFingerTap=True
bEnableGestureRecognizer=False
@@ -101,6 +102,18 @@ DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
DefaultViewportMouseLockMode=LockOnCapture
FOVScale=0.011110
DoubleClickTime=0.200000
++ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Bottom)
++ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)
++AxisMappings=(AxisName="Look Up / Down Gamepad",Scale=1.000000,Key=Gamepad_RightY)
++AxisMappings=(AxisName="Look Up / Down Mouse",Scale=-1.000000,Key=MouseY)
++AxisMappings=(AxisName="Move Forward / Backward",Scale=1.000000,Key=Gamepad_LeftY)
++AxisMappings=(AxisName="Move Forward / Backward",Scale=-1.000000,Key=S)
++AxisMappings=(AxisName="Move Forward / Backward",Scale=1.000000,Key=W)
++AxisMappings=(AxisName="Move Right / Left",Scale=-1.000000,Key=A)
++AxisMappings=(AxisName="Move Right / Left",Scale=1.000000,Key=D)
++AxisMappings=(AxisName="Move Right / Left",Scale=1.000000,Key=Gamepad_LeftX)
++AxisMappings=(AxisName="Turn Right / Left Gamepad",Scale=1.000000,Key=Gamepad_RightX)
++AxisMappings=(AxisName="Turn Right / Left Mouse",Scale=1.000000,Key=MouseX)
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset
new file mode 100644
index 00000000..b915e8e3
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:81b4dd2a00331ba3086ce06a8673667359183399c5fb1ab924060e2c84720691
+size 203111
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset
new file mode 100644
index 00000000..4d2cc648
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa87ecdbb722402bdb4decef1a53487d6b74789076cb7aa51a4521553f478a89
+size 13710
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset
new file mode 100644
index 00000000..26c98f45
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b544f3c62bdc242ceb673eb94a30a1bb881ea3b126d849e8e969ea6b30c25772
+size 10382
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset
new file mode 100644
index 00000000..71812b72
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ff2747888cb753414087d94c0aaa824e88aae93ca25584419a1ace2de31bb048
+size 11197
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset
new file mode 100644
index 00000000..3fbbe601
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:28ffa6db34aa484d7f36d872c88b5628a5a9aff7279c1e0d819fb20fe29459ed
+size 14647
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset
new file mode 100644
index 00000000..ab712a1e
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4042ac871e2df59386ec9b28ce4c8436753e92ba1e0c69b8ba1b75220a386e96
+size 28440
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset
new file mode 100644
index 00000000..86a96e3a
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:03e96660ce9ddd947d06b73332cc5e3ce76339f937d2cd7ef5396e20a1bdd968
+size 11162
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset
new file mode 100644
index 00000000..f5959314
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:add4a29562eefee1f38203b6377e56cdb62ad5f109776e845d05e4050552926c
+size 5583495
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset
new file mode 100644
index 00000000..063f9350
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c8e0bf4f4a7a8702be683d64e382e0994d56a24f6ef94a0e13d0d3504df9e490
+size 46446
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset
new file mode 100644
index 00000000..5ee88a5f
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44ad784e4e3635f78abc34c3f266522218994b20714ddda144bbcbaa5972c4ed
+size 22962
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset
new file mode 100644
index 00000000..80b681c2
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce8694572ad9b6bf3f7b4bfb00f12aba5d5253d65389475ebcc8f9d8d43c37b2
+size 68924
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset
new file mode 100644
index 00000000..4c60e88d
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:592717cabe08dd57e5ee625c860879be13a18932f8654fe73ee0bbaee063caf6
+size 23985
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset
new file mode 100644
index 00000000..11f762ef
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b34deb079185dedefe04151a3c824a6981b25e12c65f89e7bcd120c68d0f7cac
+size 19357
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset
new file mode 100644
index 00000000..0909fde5
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bf805e02f583024a7f5a40f4b2a249809ce711a46de5c84bcd74609b73fed351
+size 395400
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset
new file mode 100644
index 00000000..7eceba11
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:582564da5dbbe8e30e6d65babae05ff22edce4a0bc8833f95180b505f0837447
+size 404289
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset
new file mode 100644
index 00000000..e18a52aa
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64a3293fbe4df89c9040bc8d5e9cc6cebc945715ca1c8dc62a7682acc526a524
+size 429026
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset
new file mode 100644
index 00000000..e9845353
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c84157238dd3d148b4f51e44a46f82d5dfd714beaa67c4c9c2998bdc7ec3365
+size 358524
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset
new file mode 100644
index 00000000..5e4c2a3a
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ec1d27963fc08f75eeee585f78d96ffbd8727bfe86c7c1fe0e7e2a2dd57d5a26
+size 211489
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset
new file mode 100644
index 00000000..8fd335bb
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:354c99110df3d84a5cf4bb01de49d994a5c674c9788bd4b5fc779bf3030c54cf
+size 5427488
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset
new file mode 100644
index 00000000..6c32cbeb
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a6f7d178353537343355bd9e8021951aac860c189c1393f57777df90c720466a
+size 41868
diff --git a/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset
new file mode 100644
index 00000000..3236d1f5
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a30f20159eb0e91b89c5f36aa9e6699b4c1a2af7328296c3fd77c392e10b2c7
+size 56343
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Manny.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Manny.uasset
new file mode 100644
index 00000000..9e5b15dc
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:698ad59b091eadff740a7ed78bb18cfad875fa3143d2ae614e0317d5e9680a79
+size 368180
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset
new file mode 100644
index 00000000..ae1cbadb
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd84317778ba8ee13b7addf2bd11988a07c38cffbebb129562a25785e5215abb
+size 39313
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
new file mode 100644
index 00000000..c1625d56
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:17534cfadb0ecbfec9556f6b116d3cc4276b2d8ea5b451062ba3919c5ce24a6c
+size 8993
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
new file mode 100644
index 00000000..391c2456
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:732b4cb73137a34d510f774b0ab63934bf2ee5532b0333d401fa450f88e44010
+size 698209
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
new file mode 100644
index 00000000..00049a8b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3d03e57ab6829b8f60cf19ba1ee5e0ac82e37e5429427edaad472fb473f71d1c
+size 897634
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
new file mode 100644
index 00000000..360bd01b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:771ad470861e3bec955b22c889d2b9acb844a6ae91565b0e647c7adace39878b
+size 290962
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset
new file mode 100644
index 00000000..f5e0d2cf
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24f34cf736992c09b7502185c3d71ef1c79278fb558dacc91fa494ecfe452fe5
+size 300335
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
new file mode 100644
index 00000000..84ca0780
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aff51ddb72b98d9cd2f4c1351f132dfcfde83d905f4f37d1f35b793b26c95b96
+size 293237
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset
new file mode 100644
index 00000000..16d22893
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b7e4d1ff30352e296f446e77eed841ad7d5344430c5f7141fd09aad7e0af2c3
+size 30458
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
new file mode 100644
index 00000000..5e734eb1
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:226e6affa1682ddf630a2e7759bc8b08dae033490a0449400af18a97941440c4
+size 382783
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
new file mode 100644
index 00000000..18e06808
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:55a005cf4d673d8fcef1b93e2be270b8c47a8a82b7cbf895a915d27710d4a40b
+size 609238
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
new file mode 100644
index 00000000..83e9ffb9
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e6974eb2d3d4f246d91f0cfea6b4400aed38c722b67dc9ca8c15c9bc4a14e193
+size 9025
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
new file mode 100644
index 00000000..56a8a863
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98c6ee27d23ad13b69cd51e466058ff8f75e55ec69ab78911d43eb2d54151022
+size 919278
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
new file mode 100644
index 00000000..a022266f
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:069b7d70641be0a4f2c0d9f0cb4662c796da0f2969c6f1297ae3e22dd3479026
+size 431040
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
new file mode 100644
index 00000000..a334b558
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a277d4a34033b8e5b336eace9857a4abf1f255a2a4687fa1709b5a5a464ea137
+size 449906
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
new file mode 100644
index 00000000..33b7e4d0
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5564d59ac367f94d06d6eafc8eafbc1144eec525ebcaf0bd20c3effd400bcf8b
+size 4812
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
new file mode 100644
index 00000000..b66dfadb
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:32f26545999f01c55f8900c2d491d4cb39f3c545b061225deee2c8b70e760b70
+size 6306
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
new file mode 100644
index 00000000..fbe47aaf
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1248c9176bcd4693cab74b63249bd9f0434758dda1c4f4b5c53da5e2a2b91ec2
+size 32183
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
new file mode 100644
index 00000000..96a2e85d
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d1f542fd354f8ff82fb685318e3665da4e9a9207add267de9ce6cf8779b5e147
+size 56603
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
new file mode 100644
index 00000000..2c791171
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:242a332a47b300d429e94147a7ffd38ed09b5c2467dede5e90525494af7c5e18
+size 13437
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
new file mode 100644
index 00000000..4c76d434
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2492fbdc6d6af64af264159aeab1b4ed6fc859e2adbd1be4aef59dd8221c7d49
+size 21590
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
new file mode 100644
index 00000000..8027144f
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e6b0c28b5f10768f406776c4fc9d853eb915efdcff8e79465e96aff8c11872b
+size 24853
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
new file mode 100644
index 00000000..b486efd6
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc66db2c2b3f8f37191aad8bc59bbdecda0a19a03a995c602df3b2d8cb3f19e9
+size 19667
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
new file mode 100644
index 00000000..7f69c8ab
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46e73fecdb44bdf4bbbd661ee36798f7956f76360594023cb51b96f92ca4c01c
+size 25230
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Materials/M_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequins/Materials/M_Mannequin.uasset
new file mode 100644
index 00000000..8c4ba136
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Materials/M_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c19c44d3a63f9975bb2e777d37d44341cf24907674c36cca79c558383406f0d5
+size 83079
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset b/EndlessVendetta/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
new file mode 100644
index 00000000..b342d7b2
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae6203ccee7839e886951796d05315fe1dd9b9aa44c8a60a9525d5ccd905d5b6
+size 18996
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset
new file mode 100644
index 00000000..9f1f7d25
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f1df1a6b3db170cd80f14c40653fbc9a692af00f7abd575872d9cd8a707e05c6
+size 34534883
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
new file mode 100644
index 00000000..efc750c9
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc39b456f2700d3f7aa0dfa99432424c78464b723a143bdf337dcc96867aaab9
+size 18527372
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset
new file mode 100644
index 00000000..113ac4e3
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e0fdd468262ff66fd30eb55f7bac167063959e5d9dbfa36abf853a5d77616a59
+size 36495654
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
new file mode 100644
index 00000000..0a0d0d11
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01031c54550174f0a09f13787b128229316afa699302577044e13b6c71d830ed
+size 19371553
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset
new file mode 100644
index 00000000..e864a47a
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:777b2aa0a679b5d326814440204787ff0ba56b4ad9477a407b24d689155b050c
+size 160872
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
new file mode 100644
index 00000000..dd58011c
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5f58d1ac6047ec45bf31bec1071a5afc0e9dde9d50849bd8e74ca1c4271495c8
+size 463451
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
new file mode 100644
index 00000000..2bb81b55
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2f57ba4350e61b3a5fac6cff45c3d21b81d0ab289765dac797b150b8bac98f34
+size 463249
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
new file mode 100644
index 00000000..f9c827a9
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:968ba2fa8bf2bca36556b5623b895b9ac9db162f9c2936acda0b0504239543b4
+size 580522
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
new file mode 100644
index 00000000..f58f7655
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d6092d8eb4a158e99568dffe0f036a5310b03d5a917e3b58529c7d5fd4088ce
+size 16036573
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
new file mode 100644
index 00000000..98e02048
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4d1abd304377e26c3c7e5a3b7488c522b118cc62ba0f574e9a63ec2e6ca22ac6
+size 2267523
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset
new file mode 100644
index 00000000..c35c1aba
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:edd623de3bde5afa06348d226eb98ba4f7d66c962ad7c93b4d25feef5de4b124
+size 143479
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset
new file mode 100644
index 00000000..72b36116
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a0b163ae42f4717b12d4a9ab0c6b9da218e2d0d64e891b508e81586ac2a3adee
+size 289285
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
new file mode 100644
index 00000000..3c14e35b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ec42316c0d0e642867721ab1ac8b58452ee537c9dde5e4d4389d745ccc44e9a6
+size 141452
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
new file mode 100644
index 00000000..44ba84b0
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:26f5c00f4b1a7000505a233e217aa55c5e32b0473128b7cb96f34051dc330da5
+size 207430
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
new file mode 100644
index 00000000..bd39dac7
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afe97fa82d46c150d56573b1d1c3d59fbac288f498c3de5fecedd8ac64c2263a
+size 141462
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
new file mode 100644
index 00000000..13f26224
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5fb5783ac00efbfb039007568246d1ac33d36da09eec69e3cf0d01e1f96d13fe
+size 207430
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
new file mode 100644
index 00000000..31710ace
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5b4292d4d3cc8c3a23c0d2ea80461f9c05379a22e97c94094a1c4e342e6f0fa9
+size 141484
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
new file mode 100644
index 00000000..18cd5507
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56c0e188c3d854c92956755b9c89b8cb6cdb75f1bc4aac655f0d5f6524fb8160
+size 205732
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
new file mode 100644
index 00000000..d7cc7354
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9263821d96862a7121442b54bcaff72775c4758fb2218747bd3540207aa0fecd
+size 141486
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
new file mode 100644
index 00000000..8fe32e58
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:20d21639ca1cd7876ba408a4e6603f66d3d4c9a65d2bbf7c76b59f28e4d020e3
+size 206334
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
new file mode 100644
index 00000000..46f2b70a
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d5d2ef5f757409ad457660e4388272646155d5bcdfecc4705b85b41d338835c6
+size 129460
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
new file mode 100644
index 00000000..e022eeda
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9b0c29406e6b6a8074edb2b2d1107d62972059ccae5c0bfe3dc6d99d932f00ed
+size 132176
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
new file mode 100644
index 00000000..b347990b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3f872db9323bc78b01d91dea5e406cfa348ef10aeed5b9e66a97ddc87b58704e
+size 129462
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
new file mode 100644
index 00000000..f35a3146
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0313dfda857c8a37ae26a104bee21803eb49acc138a18fd7a6864320d025ef40
+size 132176
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
new file mode 100644
index 00000000..b2d1b800
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0ad7d36e92954cf783be7be2c7ce8e2e6b3b4376645985a6a772b5890977c381
+size 135460
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
new file mode 100644
index 00000000..05550aaa
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a1d40437f02274fec5ff3cad47fa3e1cb2997db9397507823c299f0749e1c5f0
+size 169206
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
new file mode 100644
index 00000000..64537c2b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e52609e89b719e493df4ed2a196996db3c4dfff4b20a83f68a747099f31827c9
+size 135462
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
new file mode 100644
index 00000000..0cd5c370
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9b7b4ce565d7c55919dfeea6b785e2704cba7cc2ca8ad786145739a7eac36bc
+size 169206
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
new file mode 100644
index 00000000..3653416b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a1761fa57b6504be33ac4c346839446698f20fcc8942a36574ae579e99d6311b
+size 203916
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
new file mode 100644
index 00000000..9009fa14
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a75265541e206479aabe98ede22dad0ae72aedd9b43fa8c33741422f4c5ec38
+size 361644
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
new file mode 100644
index 00000000..68f69cbf
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7bad38ef33364282ad783d13ff05ac64235fbd94f735f7970aa690f302927139
+size 165486
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
new file mode 100644
index 00000000..ad01a2d9
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:02a9cb1c077531f9bc0acd2f5868d25d42e7f1edaf21d29b0a89a67f277bb2d2
+size 361644
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
new file mode 100644
index 00000000..6abd3af2
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46328ac897d55c35ed2c5f7d28443c963b6e4ed348adaf74980b1b7e64514975
+size 195468
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
new file mode 100644
index 00000000..30332d0b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac1fba41bdc8d3832f26bee507b7f83d2e51051cae58ecbea0a1e73f3d1e8198
+size 557972
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
new file mode 100644
index 00000000..a18ad76e
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b17348bde6d9bd17838698331f08c1babf8a120aab05553ddcbf658cef3d6caf
+size 195470
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
new file mode 100644
index 00000000..c673e13f
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3bd106c4cf63362f741611edf562149e7d928c4e12a5debac2a27265bc315775
+size 557972
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
new file mode 100644
index 00000000..e4c5ebe7
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:59995bd0fd055a0c29809abcec8ab593a4cfb517a8c52d09b56870ad46a6a431
+size 207486
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
new file mode 100644
index 00000000..91540fe4
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b56619a8bff783926b5bc17770f90ca5b6dae18cfce0cfde29c69db26df8c968
+size 641633
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
new file mode 100644
index 00000000..cef74d71
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:55a49a9b5f1d55df4733f651d7110c677fff421e8ccf317a7b5604d46380df9c
+size 207488
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
new file mode 100644
index 00000000..00174b75
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ed2b9dab16c319539175975f14ed906f2e442ebb3705a0f1bfb932b8b2752eec
+size 630195
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
new file mode 100644
index 00000000..41247fa5
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:315c606d481e66842161f6d640843049c1bb8fad801817cdc01b5347459fe663
+size 190030
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
new file mode 100644
index 00000000..7c0c6644
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5ee7e7490da8bc5da27bee03d313475c546418b9aa15186cc1e342ac314d1599
+size 245188
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
new file mode 100644
index 00000000..54c61deb
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46a6c2f1c8b50afe1849072f062ead508a2f570682f1b21b2e85334776c5f315
+size 228099
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
new file mode 100644
index 00000000..c7c29305
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eaf41bdfdbbcde2f668b07dd932baac1b5517312d04d75b77dce1e82272b31b4
+size 245269
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
new file mode 100644
index 00000000..89f006aa
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:def1eceb6484991a242bd5bd4bf2c9c1b857861ff5b981ee916a23d4db023b4b
+size 222063
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
new file mode 100644
index 00000000..da6c387c
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c2225dbb5778c1529862086865e86272e574cc993ac0a48cb1c0cc28fafb27c1
+size 205936
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
new file mode 100644
index 00000000..3fc197f5
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97a0673daaa10512b94608a6ff11d82914e0812760b75ea7e86c3b43c0b4c97b
+size 183734
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
new file mode 100644
index 00000000..7c90b800
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aba097887d167f4b9277338de16c7feb689882acb393b32a0ac176d27f62e2b8
+size 205980
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
new file mode 100644
index 00000000..500df25c
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6995c1603c3553af502c2ef04f6fb685d9183f0668266c6562f16238e08f80fb
+size 171708
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
new file mode 100644
index 00000000..16a952aa
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98e401355f6f5bdba83fc2e84ecd9d7e5128f1d6f0c585f368b9d971da58273c
+size 132123
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
new file mode 100644
index 00000000..b79204b7
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:91500b65453319b136c33e0b3edb161adf1030a5c3c30c8602390f1725af65b3
+size 171710
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
new file mode 100644
index 00000000..a1b9497d
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d4af5fd34572deb49a2335651c0a311e4db80ed2394c6c1ad633735fa1cf5e44
+size 132123
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
new file mode 100644
index 00000000..30a8ffb1
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b0b0e92c4297c40bf94f63ccebd938acc49fc4b1ce45f1680fa533c5ea923cc
+size 177708
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
new file mode 100644
index 00000000..01c81058
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7c66da3c6a7b2801d9ada447fff4a2593a4b6054a178141f1eae26e21e4b3a7
+size 169153
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
new file mode 100644
index 00000000..635dce77
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c6128ed9b666f06dde9df5e3d647aff8994b07ad1b4b36fedf693726d63ce138
+size 158608
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
new file mode 100644
index 00000000..622cc1b4
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:973ad5984394de84cfbe2dd3021f7f64f8c4c2e85b6573866382df76c0d9d2f3
+size 169153
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
new file mode 100644
index 00000000..5a95d707
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ecd03a972b3109a14840c924efe7d5f6b486ad3e7764773d33eacfb8032bea64
+size 194631
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
new file mode 100644
index 00000000..f2c2239e
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:106aa8dc6d3493474f24e4d3240212c3c24428249d5f09f078c65d0372cc3d4d
+size 399529
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
new file mode 100644
index 00000000..d830514c
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:93be05fdf4241bdc152877416175f804bd2e1976d7588919192316bd7b21e936
+size 194633
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
new file mode 100644
index 00000000..a9791658
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:610877f087e4e77eba703036159d4abc95b52a1f196b7a317da97963e7477455
+size 399529
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
new file mode 100644
index 00000000..d39f2031
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae59b67795d102845bd680e15d74a9b70688315a0ca489232f56cc9005de5597
+size 218614
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
new file mode 100644
index 00000000..591b42b9
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04d95febf97f6a4d406c53efc6551eb20b378c8a91fef18c151b92a8b3df1abb
+size 557618
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
new file mode 100644
index 00000000..0062c43c
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b808aa71712168bf1905b91a238f152347579523c2eeec52401b67bf6de6ad27
+size 218616
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
new file mode 100644
index 00000000..49e65e6b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76f65a5466dd4cd84abd48bef6245bb84930f7b8efff23807a88d4b23df3c1b3
+size 557618
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
new file mode 100644
index 00000000..81727ce1
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1de49cf76ee2b6e93936cad3a1ace2bb849e3cd84a24bb84e566abde3a035758
+size 206632
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
new file mode 100644
index 00000000..782027a6
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d72952cdf9066cd84e1e5ea11cc2f6a754b0e79f8f037e1f2c8fc8c86ddb408f
+size 485440
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
new file mode 100644
index 00000000..a756ff3b
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d1fd8bad84e7c6c45884137870261dc78789def4c72683b3775790722d1894d
+size 206634
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
new file mode 100644
index 00000000..ed588fcc
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee8b8e737a19894faf44176bcd5aca3405b3a1879eeea792ebdb0c534691cf1c
+size 488450
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset b/EndlessVendetta/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
new file mode 100644
index 00000000..88c8cd29
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:710754e06ca383f6333958aea11321463736f5ffe6b1f82dfcf79896e2a5228b
+size 23721
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
new file mode 100644
index 00000000..110ab264
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac817a2d33aa0cd0a8695b9fba9a925a1c71cfbe6de32986a51e6acb1ca598c0
+size 3612605
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
new file mode 100644
index 00000000..0875d1de
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8036d465bf677ee48f2c45bb50911cbd085a3d5208959e0b70377bb8d9bc26a6
+size 18514168
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..83b1a1f5
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a3502ef8e4e68f4968b52510cf1fbf2fc0ccc1eb8d7c1e1afeb350d650c2e8ab
+size 10271972
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
new file mode 100644
index 00000000..eb17abe4
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fc929bd4eb67ba8610069c601709062d142cca925eedc40c89a940037650b524
+size 5740376
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
new file mode 100644
index 00000000..f3414989
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b54209191bfa9dc3c8e195661e0d7807a24f039a3010d54f04e984f63669881c
+size 11038184
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
new file mode 100644
index 00000000..6168d144
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b90b6df5b96b505495be378ecb268a17640ba88b40cfe5b0fc764aac26a07c40
+size 7198251
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
new file mode 100644
index 00000000..ed6ba96d
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:251a25a1ac777fddadd2845c84edca5b4ce15b749e9f46d8169c001b9be9c4ea
+size 1357770
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
new file mode 100644
index 00000000..66c12c4f
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:51d2a2a0683e0c5654d4c5c724e8360c83e4ffe5181ae740872ca3fc0533e85a
+size 8341381
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
new file mode 100644
index 00000000..779cd912
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0361a08e270d688814e73adf503937c3012771b0a939f839a06f7c6c8d5269c3
+size 21139527
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..acd53f15
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:651eac4091121b27a09f3b13110ec307e9bd815f9a6e573618d051c24387de46
+size 13144043
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
new file mode 100644
index 00000000..4c97af82
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42864bd62f0f0d9510453038ff284cc1c1fc09630af8da0cb496e0563a2ffacb
+size 9033544
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
new file mode 100644
index 00000000..264d3731
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb66b07e8c8621bf361a9d18f97c668677e51164b5892c2577c94703531482e8
+size 13677610
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
new file mode 100644
index 00000000..709611b0
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:790e9d4e061af061c727d118634801c4834b46e119dd1917ffe5d18f6601d53f
+size 7269335
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
new file mode 100644
index 00000000..fd9ae9fe
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:187e5fb0047bcc653c7a6e014c49e3d6582e955a3c034579cfb756c80b68dc53
+size 2153790
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
new file mode 100644
index 00000000..cd4420a3
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:267382e5ca6dcb468e63545e09778b0e16dbd7652cb6d735b487cff1990e809f
+size 16108599
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
new file mode 100644
index 00000000..a9ba5478
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:792f234ebadad1dc45153c9b1987326d3a4da485d88cf8b1234e3395f5165070
+size 4711156
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
new file mode 100644
index 00000000..d692b9fc
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e765500d0458a2b4612541ae714281afc376b1d4758403017eb1ca6bc6892de9
+size 11656141
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
new file mode 100644
index 00000000..2c453f37
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a8266e8da977f915cbd75329eb02feee571f92067ee749b45099c290519bf20b
+size 5217676
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
new file mode 100644
index 00000000..552a695a
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57d9b50418e742ee22fc67783d9db3afb5027c3ef943753e4137742a692b4e01
+size 1104627
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
new file mode 100644
index 00000000..044d1f5f
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d5583b02c8b943d60f91f5d9bb59466c9fb1ab3aa811d599c54a20f2a19661b2
+size 5834834
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..de237dd6
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2134af63f2d5037e8fcab8e4f50593d62c731f4a8af43bdbd7c2613debea0cbb
+size 12399926
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
new file mode 100644
index 00000000..d47e6fdf
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa063b2ea5c44fbc95b17b6a6c093c39a6bbbee1082137c42cbf23b311c75cef
+size 19706883
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
new file mode 100644
index 00000000..779799d9
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40f579c2a83087c90b7f36744a15798194e9ecbe7c6560d0da2903653ed17723
+size 6732524
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
new file mode 100644
index 00000000..282d0b60
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98195f96efbfcf97ddf05c69f2f04388a5e5aefa22d2c9d771f37b22aba8fc2a
+size 13169771
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
new file mode 100644
index 00000000..be613344
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:637241dcbbff574ea1032881f60ddb007ce4a33a61864c6b0d3b3b7aa392d0d9
+size 5217676
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
new file mode 100644
index 00000000..9b9edc4f
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bcb445b1af4f07ce1b59ab3c8c25af3da7eb1f9c019559b0fd9172c31f38fa5f
+size 1758494
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
new file mode 100644
index 00000000..977a24f8
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:53b15563df73f76b904d67eec1f7f7ad3c27166bdb1aa21d99c7f9eec0116d60
+size 6901973
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..717049b2
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fe4e287b727a2b1d18f26557d1569111eda715219f8c73bd96cb74ff87c2cb8c
+size 13427858
diff --git a/EndlessVendetta/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset b/EndlessVendetta/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
new file mode 100644
index 00000000..51bc9085
--- /dev/null
+++ b/EndlessVendetta/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0571397248a1f4acc7607d1e53676cbb154e3c9c8a19d570915d76b70caaf99c
+size 69960
diff --git a/EndlessVendetta/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/EndlessVendetta/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset
new file mode 100644
index 00000000..53b74e99
--- /dev/null
+++ b/EndlessVendetta/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:77ea60d528f8dedb8a1e810e8c41b193fb6ad35a25855fe4790784e42d7f7847
+size 34232
diff --git a/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Jump.uasset b/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Jump.uasset
new file mode 100644
index 00000000..f259a9a3
--- /dev/null
+++ b/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Jump.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be70c0d8a764ac67ce853e9bf07a97332996c27bcbf49e0ffafe0c3c13711c51
+size 1307
diff --git a/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Look.uasset b/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Look.uasset
new file mode 100644
index 00000000..66b846e8
--- /dev/null
+++ b/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Look.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f31e273949de9b9798743f238b895cd422d9b14e77f73e11d993ff3527bbb735
+size 1454
diff --git a/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Move.uasset b/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Move.uasset
new file mode 100644
index 00000000..7b57d9b6
--- /dev/null
+++ b/EndlessVendetta/Content/ThirdPerson/Input/Actions/IA_Move.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8ece438a653b29d1c64011ef11d4bd05245413994ecf4ad80ef4da1694b666f
+size 1454
diff --git a/EndlessVendetta/Content/ThirdPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/ThirdPerson/Input/IMC_Default.uasset
new file mode 100644
index 00000000..2b0033cc
--- /dev/null
+++ b/EndlessVendetta/Content/ThirdPerson/Input/IMC_Default.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:658cd92edd5950a4c65ab878682bde4ee787adf1b0d1c3d529fc9f43bcfe0830
+size 12793
diff --git a/EndlessVendetta/Content/ThirdPerson/Maps/ThirdPersonMap.umap b/EndlessVendetta/Content/ThirdPerson/Maps/ThirdPersonMap.umap
new file mode 100644
index 00000000..29ccb762
--- /dev/null
+++ b/EndlessVendetta/Content/ThirdPerson/Maps/ThirdPersonMap.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea0979f98e1f73562e66dd20db6bbfef467cf1a2d7da7d9111ea81fab98ff211
+size 18857
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset
new file mode 100644
index 00000000..9714987f
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b5b66a81c776d90069dce1a1f6b97fd13ebd75bed3eeecef9341b7769eb6c79b
+size 2725
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/FZ/4XWWUGWFDLX56REQRH8Z9W.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/FZ/4XWWUGWFDLX56REQRH8Z9W.uasset
new file mode 100644
index 00000000..4845d086
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/FZ/4XWWUGWFDLX56REQRH8Z9W.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fb6ee8eb772326f09459ce560a30fdf856167c2d63e2d339994dfb2275f2f286
+size 4085
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/SX/SKO7AH9HKZVPN4OMFO4DV3.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/SX/SKO7AH9HKZVPN4OMFO4DV3.uasset
new file mode 100644
index 00000000..be6a8c37
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/SX/SKO7AH9HKZVPN4OMFO4DV3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:41069649b9e18e8ef0fa7e499b0685d042dbefb25a4b6ff8cf05768ae9ece1a3
+size 4083
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/0G/HOAJZN9E4DDI6Y1W3JU13K.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/0G/HOAJZN9E4DDI6Y1W3JU13K.uasset
new file mode 100644
index 00000000..0b012161
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/0G/HOAJZN9E4DDI6Y1W3JU13K.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7da4960c7166070d1beb553f5830711853b68576eb6e05b3d8cb3c8eb17c412a
+size 4259
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/2J/AQ1PWWT9TBAI7AA470T014.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/2J/AQ1PWWT9TBAI7AA470T014.uasset
new file mode 100644
index 00000000..35f3245d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/2J/AQ1PWWT9TBAI7AA470T014.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d58df588f04a19b1a7e9d24baaa072479e98424635ce2ad9b04f4a21d7f170f
+size 4259
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset
new file mode 100644
index 00000000..d12dc467
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f48da921e22f146a0e9a033494f73e7a6e0bdae23560c40541ea73e2c866210f
+size 12412
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/EJ/PGUWWHRTS59S34GKBX0OUI.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/EJ/PGUWWHRTS59S34GKBX0OUI.uasset
new file mode 100644
index 00000000..babc005b
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/EJ/PGUWWHRTS59S34GKBX0OUI.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c09ae2489999de7866bfa0bb0ac8cf702067b14771f37972551555dd042b9d6f
+size 4607
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/HF/YFYBQ72OYLHJQS0TSSXGBV.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/HF/YFYBQ72OYLHJQS0TSSXGBV.uasset
new file mode 100644
index 00000000..d881168b
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/HF/YFYBQ72OYLHJQS0TSSXGBV.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aebc1a03fc1cc275a3a085a2414b75502cde3b9b7b8e596398c4a5f945bb198b
+size 4554
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/QS/VHQF8JWOATZI5V3ZVY5YTM.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/QS/VHQF8JWOATZI5V3ZVY5YTM.uasset
new file mode 100644
index 00000000..0d4d458c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/QS/VHQF8JWOATZI5V3ZVY5YTM.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d1a63a58fa0473b49ca10244c97f73cbc79689bcf463108c880c4e0d9b30c7a3
+size 4554
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset
new file mode 100644
index 00000000..80f7706c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a9b50e79e5ef7ceed9e2d568bd7daf3741a7dc3c6504b48b12d1292f7fd3aed
+size 3746
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/2/66/0OP5U85W4H0R7CHG999ZDN.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/2/66/0OP5U85W4H0R7CHG999ZDN.uasset
new file mode 100644
index 00000000..7b3e79bd
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/2/66/0OP5U85W4H0R7CHG999ZDN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c63d31b74fb34ccd62f844218e1caea3096a9acfde112bb5edbeda02f86bd18
+size 3300
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/1V/XSFYSB2EC9Z21RQOBXZLMO.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/1V/XSFYSB2EC9Z21RQOBXZLMO.uasset
new file mode 100644
index 00000000..a072f258
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/1V/XSFYSB2EC9Z21RQOBXZLMO.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a230044fd78fb50b1f1ed54138edbaa6a634ee5f8f59004ba0e9216fde66be60
+size 4257
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/B1/9G3WNX7WIR7UKI26T9LK5O.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/B1/9G3WNX7WIR7UKI26T9LK5O.uasset
new file mode 100644
index 00000000..715d4452
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/B1/9G3WNX7WIR7UKI26T9LK5O.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:beb985fce505d8b808a4b9ce039e3f1001c7c009a00d3afc85e0b23a0054d8fa
+size 4085
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/HE/U35NZS5A9W1UXP1E3FF2GW.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/HE/U35NZS5A9W1UXP1E3FF2GW.uasset
new file mode 100644
index 00000000..dc2d3b16
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/HE/U35NZS5A9W1UXP1E3FF2GW.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97a41f6a2af00e9b8edb95a77a6320c32078d2528512cbd5b180a86c3f36c6c4
+size 3983
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/OG/KDQDMXAXZXD8VLDDU4K3JL.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/OG/KDQDMXAXZXD8VLDDU4K3JL.uasset
new file mode 100644
index 00000000..e72fa82c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/OG/KDQDMXAXZXD8VLDDU4K3JL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f3cd06524bb4945fb0fa8402ed950f03bef10d76f50f6dd19595da24a1d130a7
+size 5015
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/P3/O43ETCZTFMLWWH1CJ941H2.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/P3/O43ETCZTFMLWWH1CJ941H2.uasset
new file mode 100644
index 00000000..54fe615b
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/P3/O43ETCZTFMLWWH1CJ941H2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2e73c6c7d4d225a7196b2c5906fb34b7dd54ffa8cbcb7504f4a008ca733d16e1
+size 4438
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/Q1/5IZD4L3UPM3EEODZK67MH1.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/Q1/5IZD4L3UPM3EEODZK67MH1.uasset
new file mode 100644
index 00000000..3d6d8a46
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/Q1/5IZD4L3UPM3EEODZK67MH1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:787d45c626e04e33490e0293215d4eaa384f154eec3f9b7ac9611dab25d51b75
+size 4143
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/0D/0WM78RPJCXHX477YOZXKQE.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/0D/0WM78RPJCXHX477YOZXKQE.uasset
new file mode 100644
index 00000000..e0cb5df2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/0D/0WM78RPJCXHX477YOZXKQE.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c21918f264c05666ed09cda482d4d137a7d81cc2a67f747bf6729ae8f7059d2b
+size 4083
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset
new file mode 100644
index 00000000..dc4d993b
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a5d007cc8571f1191319d3e019324a754c466ef54fdff4a881ce2395298c905f
+size 4079
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset
new file mode 100644
index 00000000..2c578d43
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0bb5da121c05b7dc1da3c43e9cd7b67630d4d69e64d895adebf4584627f5bda3
+size 4107
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NP/Z9EK2TXQ1TFO26WFZHWZII.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NP/Z9EK2TXQ1TFO26WFZHWZII.uasset
new file mode 100644
index 00000000..623f50b7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NP/Z9EK2TXQ1TFO26WFZHWZII.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:596d164a9c149af87b384d8132b74583aae4fa5b9fb6ff1fe5100efe48fc8689
+size 3364
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/UV/1C6W14EIHMXOXXB657JYKB.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/UV/1C6W14EIHMXOXXB657JYKB.uasset
new file mode 100644
index 00000000..76ed28a8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/UV/1C6W14EIHMXOXXB657JYKB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ae7576eee89d8def30e67ac4590f2349cdb26a1488f1d62670ba643a6aec883
+size 4199
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/7Y/C94R5C0R01QSL2SVHUG3KD.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/7Y/C94R5C0R01QSL2SVHUG3KD.uasset
new file mode 100644
index 00000000..9f8be96f
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/7Y/C94R5C0R01QSL2SVHUG3KD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7eeb2d5c32c92dde7da650f1c0e28b0318fdb2ec320eec6b38ec56e273e00c82
+size 4257
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/H9/GITN2HJQNERMM41FAE68W0.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/H9/GITN2HJQNERMM41FAE68W0.uasset
new file mode 100644
index 00000000..dba34de3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/H9/GITN2HJQNERMM41FAE68W0.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d526e85dd6b00ae1e550a509dd21dc308b3bef198300938e7f3d49540704386a
+size 3601
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/P1/NN84RP20JNUCL0SHI5W2B8.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/P1/NN84RP20JNUCL0SHI5W2B8.uasset
new file mode 100644
index 00000000..3ab3b857
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/P1/NN84RP20JNUCL0SHI5W2B8.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ad7ce57ee4db04d8b34862228a9a8eb0520a9a2016e982df5374e04e81041e85
+size 4137
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/21/WWYX44RDCCS98492P9K9O3.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/21/WWYX44RDCCS98492P9K9O3.uasset
new file mode 100644
index 00000000..51f82820
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/21/WWYX44RDCCS98492P9K9O3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2cc9b152cf0171f0da0147e7e2b1a45a7da803b8585fe0300d795a2bc98843ff
+size 4083
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/6I/RU1L28PS820IOVH625A0DA.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/6I/RU1L28PS820IOVH625A0DA.uasset
new file mode 100644
index 00000000..f4b8136d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/6I/RU1L28PS820IOVH625A0DA.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ad08de5d7e928d08da67e868030cb76230874a9380200f27575dbc6fdc918ebe
+size 4259
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/CI/KST702KSCRZWYV56G3VJBD.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/CI/KST702KSCRZWYV56G3VJBD.uasset
new file mode 100644
index 00000000..356a28da
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/CI/KST702KSCRZWYV56G3VJBD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13c37cf7da8e54d5a9c733a209b3d84484e3c29a4a81e87f13f5520a51907770
+size 4195
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/MO/72II2GSLK9VS0ULW9SACWH.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/MO/72II2GSLK9VS0ULW9SACWH.uasset
new file mode 100644
index 00000000..39f15c7c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/MO/72II2GSLK9VS0ULW9SACWH.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1d9ae3c360d130eb5f2824b2235dd3bee7b61c649bd1e3056914b25f63f072d6
+size 4081
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/BW/M7Z5RX3O7568TBJFK5R76I.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/BW/M7Z5RX3O7568TBJFK5R76I.uasset
new file mode 100644
index 00000000..0cad9208
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/BW/M7Z5RX3O7568TBJFK5R76I.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3d9785c14f57af40b7b2ea05a60a6dc5703e8ab9848ab980b0b7673c90524d0e
+size 4197
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/IO/07IVU4EY14FMETPGTJULEO.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/IO/07IVU4EY14FMETPGTJULEO.uasset
new file mode 100644
index 00000000..038c6450
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/IO/07IVU4EY14FMETPGTJULEO.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dd01191dd97eddc4dd58042d38cf81bdbe6a2c7a7fb325c7ad5a72a8bf2a2601
+size 4145
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/CJ/ZQ5BFL59YGMQUT9ZD7CAHJ.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/CJ/ZQ5BFL59YGMQUT9ZD7CAHJ.uasset
new file mode 100644
index 00000000..183534ff
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/CJ/ZQ5BFL59YGMQUT9ZD7CAHJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d36d6d378261d895fd200239df3a51f71d91878886963f5b9c71c72c7afe1f4
+size 4083
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/KW/9YH18EUCJFK5CZXL6H3W3R.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/KW/9YH18EUCJFK5CZXL6H3W3R.uasset
new file mode 100644
index 00000000..22f568e7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/KW/9YH18EUCJFK5CZXL6H3W3R.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2fa993398f6b05dbdafe6d8cfa0444a8b1da501c3b103983d567b2d0c471ed98
+size 3378
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/0I/VIQQWOEJKSKV1EK1XGX3EY.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/0I/VIQQWOEJKSKV1EK1XGX3EY.uasset
new file mode 100644
index 00000000..798876f2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/0I/VIQQWOEJKSKV1EK1XGX3EY.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97556c67bcf00ebc8dc99200fb036e5ef9d2a7ba1c866932c30de63602eb6612
+size 4195
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset
new file mode 100644
index 00000000..7f8018a7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:155efc55358d86b7b7017b683862030b83481f5dbb4551c9d759694bb112232b
+size 4064
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/MM/5416TNIX8GKJW3B714Y6WF.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/MM/5416TNIX8GKJW3B714Y6WF.uasset
new file mode 100644
index 00000000..b4aebb1b
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/MM/5416TNIX8GKJW3B714Y6WF.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:da81cbbe66fd8cc93c6015adbdaf10d79d417f2102d586d230b9434415c50f6a
+size 4257
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/OI/BVNTLHAPOPDXURSVGR63ME.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/OI/BVNTLHAPOPDXURSVGR63ME.uasset
new file mode 100644
index 00000000..f9092d49
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/OI/BVNTLHAPOPDXURSVGR63ME.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1acced0dca47586b090ac74dc77bc38d083f07e68ae10fde10cb860c2befe25e
+size 4257
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset
new file mode 100644
index 00000000..d1220c4a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:90adcdc364f7f30c5538c5bf8596bea4f66c70068f90990210fc986aeb2ef5ea
+size 849
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/VL/KUT2U1MQ1ND9CXN070OTDM.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/VL/KUT2U1MQ1ND9CXN070OTDM.uasset
new file mode 100644
index 00000000..c7ae24e8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/VL/KUT2U1MQ1ND9CXN070OTDM.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b251c0f1d34e124a9c75c2efcb3c74fabcfdf5871b15a68d18df63e89c322fb5
+size 4085
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset
new file mode 100644
index 00000000..7da1ffd0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e6cbaaaa9a10138be4952b22394cd3107901561e24650e05851f7f327326cc7b
+size 2580
diff --git a/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/T8/46ZIBNTTDDR3AOR2XC9VO6.uasset b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/T8/46ZIBNTTDDR3AOR2XC9VO6.uasset
new file mode 100644
index 00000000..9bb947b3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/T8/46ZIBNTTDDR3AOR2XC9VO6.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4a82e69dbef197b40a16ea06a6b44aff09f7d81ec7c0de80ef77aa7ca47b9197
+size 4197
diff --git a/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/3/DH/JQTP3L9HHXRN8IUHATI906.uasset b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/3/DH/JQTP3L9HHXRN8IUHATI906.uasset
new file mode 100644
index 00000000..8a4c9e5f
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/3/DH/JQTP3L9HHXRN8IUHATI906.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8502666e004c0b5c35154b7464b441013c705eed34c3ea749f17c36c96558cf7
+size 2011
diff --git a/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/4A/NCNZF2U4ZTZ8XZJNF86FNT.uasset b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/4A/NCNZF2U4ZTZ8XZJNF86FNT.uasset
new file mode 100644
index 00000000..e425d263
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/4A/NCNZF2U4ZTZ8XZJNF86FNT.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5fd467498618623173886f91ea74e8e2a647fb4eb05887dfb71b36602364b49b
+size 2009
diff --git a/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/8/05/U8OLLG133BEQMR58UPHM3P.uasset b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/8/05/U8OLLG133BEQMR58UPHM3P.uasset
new file mode 100644
index 00000000..464a93c4
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/8/05/U8OLLG133BEQMR58UPHM3P.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce6528560be9a7d4a162f899701bf0117c3aebce4a53ca8b1a4974070bde602b
+size 2009
diff --git a/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/A/KP/VZTB4WP3P1L1F1WL9R6XLZ.uasset b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/A/KP/VZTB4WP3P1L1F1WL9R6XLZ.uasset
new file mode 100644
index 00000000..bececfa8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/A/KP/VZTB4WP3P1L1F1WL9R6XLZ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:03f8cff85345b9cd9307106f09dc44109abea9c061343ceac9ad9e118e377132
+size 2015
diff --git a/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/B/AN/0Z4D0BFPHEXAYK76DY0WLL.uasset b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/B/AN/0Z4D0BFPHEXAYK76DY0WLL.uasset
new file mode 100644
index 00000000..f51dfcca
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/B/AN/0Z4D0BFPHEXAYK76DY0WLL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf3a8b0b3a498efe6e49e4c5dae12833aefdd9bf87663ee35f6a210e847588b1
+size 2009
diff --git a/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/D/13/KQB15WT334LUGWVAUX80XH.uasset b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/D/13/KQB15WT334LUGWVAUX80XH.uasset
new file mode 100644
index 00000000..790c306a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/D/13/KQB15WT334LUGWVAUX80XH.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d98ab61e02eafe51722506d3a0382ad21976f47e2290f539607fb3ba9d71038d
+size 2011
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp
new file mode 100644
index 00000000..57a5285f
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp
@@ -0,0 +1,32 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "EnemyCharacter.h"
+
+
+// Sets default values
+AEnemyCharacter::AEnemyCharacter()
+{
+ // Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+}
+
+// Called when the game starts or when spawned
+void AEnemyCharacter::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void AEnemyCharacter::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+}
+
+// Called to bind functionality to input
+void AEnemyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
+{
+ Super::SetupPlayerInputComponent(PlayerInputComponent);
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h
new file mode 100644
index 00000000..74e529e5
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h
@@ -0,0 +1,28 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Character.h"
+#include "EnemyCharacter.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API AEnemyCharacter : public ACharacter
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this character's properties
+ AEnemyCharacter();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+ // Called to bind functionality to input
+ virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPerson.h b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPerson.h
new file mode 100644
index 00000000..ddbf2e22
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPerson.h
@@ -0,0 +1,5 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#include "CoreMinimal.h"
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.cpp
new file mode 100644
index 00000000..61708391
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.cpp
@@ -0,0 +1,129 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#include "TP_ThirdPersonCharacter.h"
+#include "Camera/CameraComponent.h"
+#include "Components/CapsuleComponent.h"
+#include "Components/InputComponent.h"
+#include "GameFramework/CharacterMovementComponent.h"
+#include "GameFramework/Controller.h"
+#include "GameFramework/SpringArmComponent.h"
+#include "EnhancedInputComponent.h"
+#include "EnhancedInputSubsystems.h"
+
+
+//////////////////////////////////////////////////////////////////////////
+// ATP_ThirdPersonCharacter
+
+ATP_ThirdPersonCharacter::ATP_ThirdPersonCharacter()
+{
+ // Set size for collision capsule
+ GetCapsuleComponent()->InitCapsuleSize(42.f, 96.0f);
+
+ // Don't rotate when the controller rotates. Let that just affect the camera.
+ bUseControllerRotationPitch = false;
+ bUseControllerRotationYaw = false;
+ bUseControllerRotationRoll = false;
+
+ // Configure character movement
+ GetCharacterMovement()->bOrientRotationToMovement = true; // Character moves in the direction of input...
+ GetCharacterMovement()->RotationRate = FRotator(0.0f, 500.0f, 0.0f); // ...at this rotation rate
+
+ // Note: For faster iteration times these variables, and many more, can be tweaked in the Character Blueprint
+ // instead of recompiling to adjust them
+ GetCharacterMovement()->JumpZVelocity = 700.f;
+ GetCharacterMovement()->AirControl = 0.35f;
+ GetCharacterMovement()->MaxWalkSpeed = 500.f;
+ GetCharacterMovement()->MinAnalogWalkSpeed = 20.f;
+ GetCharacterMovement()->BrakingDecelerationWalking = 2000.f;
+
+ // Create a camera boom (pulls in towards the player if there is a collision)
+ CameraBoom = CreateDefaultSubobject(TEXT("CameraBoom"));
+ CameraBoom->SetupAttachment(RootComponent);
+ CameraBoom->TargetArmLength = 400.0f; // The camera follows at this distance behind the character
+ CameraBoom->bUsePawnControlRotation = true; // Rotate the arm based on the controller
+
+ // Create a follow camera
+ FollowCamera = CreateDefaultSubobject(TEXT("FollowCamera"));
+ FollowCamera->SetupAttachment(CameraBoom, USpringArmComponent::SocketName); // Attach the camera to the end of the boom and let the boom adjust to match the controller orientation
+ FollowCamera->bUsePawnControlRotation = false; // Camera does not rotate relative to arm
+
+ // Note: The skeletal mesh and anim blueprint references on the Mesh component (inherited from Character)
+ // are set in the derived blueprint asset named ThirdPersonCharacter (to avoid direct content references in C++)
+}
+
+void ATP_ThirdPersonCharacter::BeginPlay()
+{
+ // Call the base class
+ Super::BeginPlay();
+
+ //Add Input Mapping Context
+ if (APlayerController* PlayerController = Cast(Controller))
+ {
+ if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(PlayerController->GetLocalPlayer()))
+ {
+ Subsystem->AddMappingContext(DefaultMappingContext, 0);
+ }
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Input
+
+void ATP_ThirdPersonCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent)
+{
+ // Set up action bindings
+ if (UEnhancedInputComponent* EnhancedInputComponent = CastChecked(PlayerInputComponent)) {
+
+ //Jumping
+ EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ACharacter::Jump);
+ EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &ACharacter::StopJumping);
+
+ //Moving
+ EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ATP_ThirdPersonCharacter::Move);
+
+ //Looking
+ EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &ATP_ThirdPersonCharacter::Look);
+
+ }
+
+}
+
+void ATP_ThirdPersonCharacter::Move(const FInputActionValue& Value)
+{
+ // input is a Vector2D
+ FVector2D MovementVector = Value.Get();
+
+ if (Controller != nullptr)
+ {
+ // find out which way is forward
+ const FRotator Rotation = Controller->GetControlRotation();
+ const FRotator YawRotation(0, Rotation.Yaw, 0);
+
+ // get forward vector
+ const FVector ForwardDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X);
+
+ // get right vector
+ const FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y);
+
+ // add movement
+ AddMovementInput(ForwardDirection, MovementVector.Y);
+ AddMovementInput(RightDirection, MovementVector.X);
+ }
+}
+
+void ATP_ThirdPersonCharacter::Look(const FInputActionValue& Value)
+{
+ // input is a Vector2D
+ FVector2D LookAxisVector = Value.Get();
+
+ if (Controller != nullptr)
+ {
+ // add yaw and pitch input to controller
+ AddControllerYawInput(LookAxisVector.X);
+ AddControllerPitchInput(LookAxisVector.Y);
+ }
+}
+
+
+
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.h b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.h
new file mode 100644
index 00000000..77f7869f
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonCharacter.h
@@ -0,0 +1,66 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Character.h"
+#include "InputActionValue.h"
+#include "TP_ThirdPersonCharacter.generated.h"
+
+
+UCLASS(config=Game)
+class ATP_ThirdPersonCharacter : public ACharacter
+{
+ GENERATED_BODY()
+
+ /** Camera boom positioning the camera behind the character */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
+ class USpringArmComponent* CameraBoom;
+
+ /** Follow camera */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
+ class UCameraComponent* FollowCamera;
+
+ /** MappingContext */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true"))
+ class UInputMappingContext* DefaultMappingContext;
+
+ /** Jump Input Action */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true"))
+ class UInputAction* JumpAction;
+
+ /** Move Input Action */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true"))
+ class UInputAction* MoveAction;
+
+ /** Look Input Action */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true"))
+ class UInputAction* LookAction;
+
+public:
+ ATP_ThirdPersonCharacter();
+
+
+protected:
+
+ /** Called for movement input */
+ void Move(const FInputActionValue& Value);
+
+ /** Called for looking input */
+ void Look(const FInputActionValue& Value);
+
+
+protected:
+ // APawn interface
+ virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
+
+ // To add mapping context
+ virtual void BeginPlay();
+
+public:
+ /** Returns CameraBoom subobject **/
+ FORCEINLINE class USpringArmComponent* GetCameraBoom() const { return CameraBoom; }
+ /** Returns FollowCamera subobject **/
+ FORCEINLINE class UCameraComponent* GetFollowCamera() const { return FollowCamera; }
+};
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.cpp b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.cpp
new file mode 100644
index 00000000..aa7ce003
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.cpp
@@ -0,0 +1,15 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#include "TP_ThirdPersonGameMode.h"
+#include "TP_ThirdPersonCharacter.h"
+#include "UObject/ConstructorHelpers.h"
+
+ATP_ThirdPersonGameMode::ATP_ThirdPersonGameMode()
+{
+ // set default pawn class to our Blueprinted character
+ static ConstructorHelpers::FClassFinder PlayerPawnBPClass(TEXT("/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter"));
+ if (PlayerPawnBPClass.Class != NULL)
+ {
+ DefaultPawnClass = PlayerPawnBPClass.Class;
+ }
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.h b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.h
new file mode 100644
index 00000000..bf3f6900
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/TP_ThirdPerson/TP_ThirdPersonGameMode.h
@@ -0,0 +1,19 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/GameModeBase.h"
+#include "TP_ThirdPersonGameMode.generated.h"
+
+UCLASS(minimalapi)
+class ATP_ThirdPersonGameMode : public AGameModeBase
+{
+ GENERATED_BODY()
+
+public:
+ ATP_ThirdPersonGameMode();
+};
+
+
+
From a65978a915bf2454dee723f4942d2493918dfe5a Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Thu, 28 Sep 2023 17:34:02 +0100
Subject: [PATCH 015/112] Update Build File for UI, AI & Particle Modules
---
.../Source/EndlessVendetta/EndlessVendetta.Build.cs | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendetta.Build.cs b/EndlessVendetta/Source/EndlessVendetta/EndlessVendetta.Build.cs
index 55a052ca..3149aa96 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendetta.Build.cs
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendetta.Build.cs
@@ -8,6 +8,10 @@ public class EndlessVendetta : ModuleRules
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
- PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "EnhancedInput" });
+ PublicDependencyModuleNames.AddRange(new string[]
+ {
+ "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "EnhancedInput", "AIModule",
+ "GameplayTasks", "NavigationSystem", "UMG", "Slate", "SlateCore", "Niagara", "NiagaraCore", "NiagaraShader"
+ });
}
-}
+}
\ No newline at end of file
From 8217d4acbd510f92148b0c1bfba4b901ab2cacb8 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Thu, 28 Sep 2023 20:25:49 +0100
Subject: [PATCH 016/112] Implemented and Tested 2 Main and 3 Side Bounties
---
.../BountySystem/BountyDirector.uasset | 3 ++
.../BountySystem/CC_ReturnToShip.uasset | 3 ++
.../Test_Bounty1/BC_TestBounty1.uasset | 3 ++
.../Checkpoints/CC_Test1_1.uasset | 3 ++
.../Checkpoints/CC_Test1_2.uasset | 3 ++
.../Checkpoints/CC_Test1_3.uasset | 3 ++
.../Checkpoints/CC_SideTest1_1.uasset | 3 ++
.../CC_SideTest1_Replacement_1.uasset | 3 ++
.../TestSideBounty1/SB_TestSideBounty1.uasset | 3 ++
.../Checkpoints/CC_SideTest2_1.uasset | 3 ++
.../Checkpoints/CC_SideTest2_2.uasset | 3 ++
.../SB_TestSideBounty_2.uasset | 3 ++
.../Test_Bounty2/BC_TestBounty2.uasset | 3 ++
.../SideBounties/SB_SideTest2_1.uasset | 3 ++
.../CC_Replacement_SideTest2_1.uasset | 3 ++
.../checkpoints/CC_SideTest2_First.uasset | 3 ++
.../checkpoints/CC_Test2_1.uasset | 3 ++
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +--
.../Architecture/Floor_400x400.uasset | 4 +--
.../Blueprints/Blueprint_CeilingLight.uasset | 4 +--
.../C/N1/E7M6U3RRQJ0NKZWADRZU2F.uasset | 3 ++
.../0/TQ/3ACFHBDWFABKU596RXRO53.uasset | 4 +--
.../1/30/W9Z34RUFOXLO8DC8TGLS52.uasset | 4 +--
.../3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset | 4 +--
.../3/X0/UIXBS52CP92S41MZVNKQ5N.uasset | 3 ++
.../4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset | 4 +--
.../4/OR/RK9JDE40KKJZQWFMFL26I5.uasset | 4 +--
.../5/3P/SF481C8C6IO4CAHI6873XE.uasset | 4 +--
.../7/IO/6Y51GE24EVFOHXCG615BY1.uasset | 4 +--
.../D/WD/LGTPJJO55ED5H60IZ3025H.uasset | 4 +--
.../HoloLens/Config/HoloLensEngine.ini | 32 +++++++++++++++++++
.../BountySystem/BountyDirector.cpp | 1 +
.../BountySystem/BountyDirector.h | 8 ++---
.../BountySystem/SideBountyClass.cpp | 1 +
34 files changed, 117 insertions(+), 26 deletions(-)
create mode 100644 EndlessVendetta/Content/BountySystem/BountyDirector.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/CC_ReturnToShip.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/BC_TestBounty1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_2.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_3.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_Replacement_1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/SB_TestSideBounty1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_2.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/SB_TestSideBounty_2.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/BC_TestBounty2.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/SB_SideTest2_1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_Replacement_SideTest2_1.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_SideTest2_First.uasset
create mode 100644 EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/checkpoints/CC_Test2_1.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/N1/E7M6U3RRQJ0NKZWADRZU2F.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/X0/UIXBS52CP92S41MZVNKQ5N.uasset
create mode 100644 EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
diff --git a/EndlessVendetta/Content/BountySystem/BountyDirector.uasset b/EndlessVendetta/Content/BountySystem/BountyDirector.uasset
new file mode 100644
index 00000000..864d575c
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/BountyDirector.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8364b58c763904adb7b727800d9e1d2de027a9793f82db94c34cfa3ef32be588
+size 43410
diff --git a/EndlessVendetta/Content/BountySystem/CC_ReturnToShip.uasset b/EndlessVendetta/Content/BountySystem/CC_ReturnToShip.uasset
new file mode 100644
index 00000000..9fce0370
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/CC_ReturnToShip.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7cad648008fd70041f5bf4f160cffa927427c047f41469065e52f61f4fbc5ac
+size 22256
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/BC_TestBounty1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/BC_TestBounty1.uasset
new file mode 100644
index 00000000..6235ec12
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/BC_TestBounty1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dd50cc9532eeeff9ce7cb812e9e03c28b92860a7793f37f4f39b9a061a0a075a
+size 27020
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_1.uasset
new file mode 100644
index 00000000..a63f7b7c
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f8c2b9772377d7c970c6e0b27eb1c7e70859df8ecc6e37d8e76d6700c63aa93d
+size 39590
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_2.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_2.uasset
new file mode 100644
index 00000000..9750c92a
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e1236ba19a7d2c62dcc1607f3e73db7b8cb67f0fbcc84d34ff603ca98807050f
+size 39541
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_3.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_3.uasset
new file mode 100644
index 00000000..e06e3641
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/Checkpoints/CC_Test1_3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd19115cde54422bb8a86f8de553f1e9de27982bde4fd798eaa08290459f9c1e
+size 39540
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_1.uasset
new file mode 100644
index 00000000..8ed2eabd
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a2d30e5ffdcb69db19e7d829035a0ebd1e73cac5fd1b10300e081a7bb67d4a92
+size 39477
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_Replacement_1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_Replacement_1.uasset
new file mode 100644
index 00000000..72155b25
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/Checkpoints/CC_SideTest1_Replacement_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14eaef3239f5095b66728601fa95223c30fd67cc9bf4c52b055734aac60a7388
+size 39708
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/SB_TestSideBounty1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/SB_TestSideBounty1.uasset
new file mode 100644
index 00000000..8d8f5cc2
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty1/SB_TestSideBounty1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e13db15ea111f6efb21a5777152b8a4a6a34c5af4aa592b73b6fe7d0b9f0a9c
+size 27169
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_1.uasset
new file mode 100644
index 00000000..1f9e13bf
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a87f05fe6854ed82a5db66b2c07fbb381be0d153e5abba8a486f408b2e004b27
+size 39387
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_2.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_2.uasset
new file mode 100644
index 00000000..d8e02fed
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/Checkpoints/CC_SideTest2_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cf8bab0d0b5317a555098d30d7d4864b800c47b81dcd522cc64fc142153ac3e
+size 39564
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/SB_TestSideBounty_2.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/SB_TestSideBounty_2.uasset
new file mode 100644
index 00000000..a04d5636
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty1/SideBounties/TestSideBounty2/SB_TestSideBounty_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:646e508a4884b73eaac398d4061f707f16b12a4eccd28bee398496050b16aa9e
+size 27303
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/BC_TestBounty2.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/BC_TestBounty2.uasset
new file mode 100644
index 00000000..885ca38f
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/BC_TestBounty2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42dfa3a8b7f8c66bbdf4f9875672f9efc2501e7aee9e28f0dfbd72a1259b0493
+size 22778
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/SB_SideTest2_1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/SB_SideTest2_1.uasset
new file mode 100644
index 00000000..abd1ec8f
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/SB_SideTest2_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2190aa3998c9523b02ee9f4e31c6baa8797c220bf1f0a024a05110034ac4ef1b
+size 23037
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_Replacement_SideTest2_1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_Replacement_SideTest2_1.uasset
new file mode 100644
index 00000000..ede79440
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_Replacement_SideTest2_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62aabf7b119ce98c1b24d02b5e1f16040b79d1777b6971d344aae896481b93a9
+size 39556
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_SideTest2_First.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_SideTest2_First.uasset
new file mode 100644
index 00000000..a83ba390
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/SideBounties/checkpoints/CC_SideTest2_First.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f92ca0a9deafc5e5cad2efc032ff4c6f96ffcfaeeab24074e6dd2cffcdfb765d
+size 39558
diff --git a/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/checkpoints/CC_Test2_1.uasset b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/checkpoints/CC_Test2_1.uasset
new file mode 100644
index 00000000..ec736e3e
--- /dev/null
+++ b/EndlessVendetta/Content/BountySystem/TestBounties/Test_Bounty2/checkpoints/CC_Test2_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea139267d19360db4dadf77cd0e2684922997ddaec704ff427b261a38051cfab
+size 39284
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 161871e8..79509a2c 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:97d5406f3cd7dcb656b8f29ebc71700d765f690ece26250ae04a0de9b2e19ce1
-size 22718
+oid sha256:f207cb75089283938e0639bb29831b31734031856f5e3c0ba7a08c72fa9c1605
+size 24132
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index d8d11add..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c253fc4685a93abd7626303f34194de38d32f2d1549008ec1051e50eff7e5c62
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
index c5c3b84e..1d65a5bd 100644
--- a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
+++ b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331
-size 158206
+oid sha256:5cc11f2015bdafd405b5b35cb75effe550762a10721f8b38b78dcde79c3e9e39
+size 43745
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/N1/E7M6U3RRQJ0NKZWADRZU2F.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/N1/E7M6U3RRQJ0NKZWADRZU2F.uasset
new file mode 100644
index 00000000..a396b15f
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/BountySystemTestLevel/C/N1/E7M6U3RRQJ0NKZWADRZU2F.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04de015b0bb32939230883654ad41bf7054c369134749aeb11e98f963a1c0a09
+size 4464
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset
index 052f4dbc..0f60fc68 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/0/TQ/3ACFHBDWFABKU596RXRO53.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a79b1aa4df4ba710fb0c190153eca14aafc650f2283ab6f75fdef50ec8187457
-size 2266
+oid sha256:7d5d4d254a7f11e0a82a85632804ab80103b7a94485e8f6764cc8a71dfbb7cf2
+size 2356
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset
index fb35d4ae..6d951b32 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/1/30/W9Z34RUFOXLO8DC8TGLS52.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b9983df2ebcf1a8ea3b0984d5a69729548ac7b6e738d1bb05a4422a57087faf5
-size 2266
+oid sha256:0cf023f6d69a487faf937e406d8ad0571784576efef2732d587cfd7b0fbc06b0
+size 2356
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset
index ffee1d42..b0300fc8 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/VN/8BVAC6SV0C7HY7NQZUMR3A.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:655a0e0a9a85c00698ba8db09c5273a150c8751bb22ae98951aceca46be08e61
-size 2268
+oid sha256:762ed00b866ef1c1c08482a322e6ee4b34869ed2c489d9c3ee5a5a54b594f03e
+size 2358
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/X0/UIXBS52CP92S41MZVNKQ5N.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/X0/UIXBS52CP92S41MZVNKQ5N.uasset
new file mode 100644
index 00000000..611bccd6
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/3/X0/UIXBS52CP92S41MZVNKQ5N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7feb47b555948d4b652cbf2844eb4d6a6de101610e116a17a9bc211132970104
+size 2270
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset
index dddfcf3e..9611b21c 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/O7/YR3DRO0R6AREA4XTW0JVGN.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ce01ca0c1ff2b1b33409de4eb58726f2666d8d6448567a5b0625d7b79e1438fd
-size 2266
+oid sha256:747d3daaa877de9903dddbbce38df48b4d7791c4a19f94a0b40dbabd9ae613a2
+size 2356
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset
index f16bdbc9..2bd727dc 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/4/OR/RK9JDE40KKJZQWFMFL26I5.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:32078880cc6806c270d8d27d528e43c3fc80cba4665271bb3ac2af6f7953ce72
-size 2266
+oid sha256:10215e56b02b528b6db32375c7ad77f3ec95c2b1b96d37fee7f3cae687c10a6b
+size 2356
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset
index e193b09f..2ba42637 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/5/3P/SF481C8C6IO4CAHI6873XE.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:57788d46a02cc5322526c77cd47d5cd75659ffc5c327293a7caa8d3f9457b944
-size 2272
+oid sha256:3f0332abd88de716a1f9a7d2aa75f2a0106e6e05ac04b8752f2bf7ef1f07ac88
+size 2362
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset
index 27ff8b05..d66c978d 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/7/IO/6Y51GE24EVFOHXCG615BY1.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:547a9c620a0f9ad81097e2593122e87fecc7a71aac871bc70801ec438da613e0
-size 2280
+oid sha256:10bc3f7b244305eec4fac0ce6ea3798cc21689af65664c8e0dc1e8b22e47a123
+size 2370
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset
index acf08f54..12762e0c 100644
--- a/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/BountySystemTestLevel/D/WD/LGTPJJO55ED5H60IZ3025H.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1c1adbd3bf1a497e1cdc01c183a824327dee8588e190117f15951d7aca76a44b
-size 2268
+oid sha256:ebb4ae789fd6106278e299904384cfd060a5e59110a0a4091ea77b4b50b81976
+size 2358
diff --git a/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini b/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
new file mode 100644
index 00000000..d5ebb91b
--- /dev/null
+++ b/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
@@ -0,0 +1,32 @@
+
+
+[/Script/HoloLensPlatformEditor.HoloLensTargetSettings]
+bBuildForEmulation=False
+bBuildForDevice=True
+bUseNameForLogo=True
+bBuildForRetailWindowsStore=False
+bAutoIncrementVersion=False
+bShouldCreateAppInstaller=False
+AppInstallerInstallationURL=
+HoursBetweenUpdateChecks=0
+bEnablePIXProfiling=False
+TileBackgroundColor=(B=64,G=0,R=0,A=255)
+SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255)
++PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=())
+TargetDeviceFamily=Windows.Holographic
+MinimumPlatformVersion=
+MaximumPlatformVersionTested=10.0.18362.0
+MaxTrianglesPerCubicMeter=500.000000
+SpatialMeshingVolumeSize=20.000000
+CompilerVersion=Default
+Windows10SDKVersion=10.0.18362.0
++CapabilityList=internetClientServer
++CapabilityList=privateNetworkClientServer
++Uap2CapabilityList=spatialPerception
+bSetDefaultCapabilities=False
+SpatializationPlugin=
+SourceDataOverridePlugin=
+ReverbPlugin=
+OcclusionPlugin=
+SoundCueCookQualityIndex=-1
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
index 9e622442..7cf44c2a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.cpp
@@ -142,6 +142,7 @@ void ABountyDirector::SideBountyCompleted(int SideBountyIndex)
ActiveBounty->UpdateBountyCheckpoints(ActiveSideBounties[SideBountyIndex]->GetReplacementCheckpoints());
// WHEN MARCEL STOPS PLAYING WITH PLAYER CHAR, REMOVE THIS SIDE BOUNTY FROM ACTIVE BOUNTIES
+ ActiveSideBounties[SideBountyIndex]->CollectRewards();
ActiveSideBounties[SideBountyIndex]->DestroyCheckpoints();
ActiveSideBounties[SideBountyIndex]->Destroy();
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
index 00b69ef9..c5c67311 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyDirector.h
@@ -73,25 +73,25 @@ public:
UFUNCTION(BlueprintCallable, Category = "Bounty")
FString GetBountyTitle()
{
- return IsValid(ActiveBounty) ? FString("N/A") : ActiveBounty->GetBountyTitle();
+ return !IsValid(ActiveBounty) ? FString("N/A") : ActiveBounty->GetBountyTitle();
}
UFUNCTION(BlueprintCallable, Category = "Bounty")
FString GetBountyDescription()
{
- return IsValid(ActiveBounty) ? FString("N/A") : ActiveBounty->GetBountyDesc();
+ return !IsValid(ActiveBounty) ? FString("N/A") : ActiveBounty->GetBountyDesc();
}
UFUNCTION(BlueprintCallable, Category = "Bounty")
FString GetSideBountyTitle(int SideBountyIndex)
{
- return (SideBountyIndex > 2 || SideBountyIndex < 0 || IsValid(ActiveSideBounties[SideBountyIndex])) ? FString("N/A") : ActiveSideBounties[SideBountyIndex]->GetBountyTitle();
+ return (SideBountyIndex > 2 || SideBountyIndex < 0 || !IsValid(ActiveSideBounties[SideBountyIndex])) ? FString("N/A") : ActiveSideBounties[SideBountyIndex]->GetBountyTitle();
}
UFUNCTION(BlueprintCallable, Category = "Bounty")
FString GetSideBountyDescription(int SideBountyIndex)
{
- return (SideBountyIndex > 2 || SideBountyIndex < 0 || IsValid(ActiveSideBounties[SideBountyIndex])) ? FString("N/A") : ActiveSideBounties[SideBountyIndex]->GetBountyDesc();
+ return (SideBountyIndex > 2 || SideBountyIndex < 0 || !IsValid(ActiveSideBounties[SideBountyIndex])) ? FString("N/A") : ActiveSideBounties[SideBountyIndex]->GetBountyDesc();
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
index e78f6b94..7d63f3ba 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/SideBountyClass.cpp
@@ -16,6 +16,7 @@ void ASideBountyClass::IncrementBountyCheckpoint()
if (Completed)
{
+
CompletedSideBounty.Broadcast(ActiveSBC_Index);
}
}
From 44bf11634041221888a56d46ecb45bd717326b79 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Thu, 28 Sep 2023 21:26:45 +0100
Subject: [PATCH 017/112] Add AI Task for Random Patrolling of a Set Area
---
.../AI/BTTask_FindRandomLocation.cpp | 32 +++++++++++++++++++
.../AI/BTTask_FindRandomLocation.h | 24 ++++++++++++++
2 files changed, 56 insertions(+)
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.cpp
new file mode 100644
index 00000000..62a3d9b8
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.cpp
@@ -0,0 +1,32 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "BTTask_FindRandomLocation.h"
+
+#include "AI_EnemyController.h"
+#include "NavigationSystem.h"
+#include "BehaviorTree/BlackboardComponent.h"
+
+UBTTask_FindRandomLocation::UBTTask_FindRandomLocation(FObjectInitializer const& ObjectInitializer)
+{
+ NodeName = TEXT("Find Random Location");
+}
+
+EBTNodeResult::Type UBTTask_FindRandomLocation::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
+{
+ if (const AAI_EnemyController* const AIController = Cast(OwnerComp.GetAIOwner()))
+ {
+ if (UBlackboardComponent* const Blackboard = OwnerComp.GetBlackboardComponent())
+ {
+ FVector const Origin = AIController->GetPawn()->GetActorLocation();
+ const UNavigationSystemV1* const NavSystem = UNavigationSystemV1::GetCurrent(GetWorld());
+ if (FNavLocation RandomLocation; NavSystem->GetRandomPointInNavigableRadius(Origin, SearchRadius, RandomLocation))
+ {
+ Blackboard->SetValueAsVector(GetSelectedBlackboardKey(), RandomLocation.Location);
+ FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded);
+ return EBTNodeResult::Succeeded;
+ }
+ }
+ }
+ return EBTNodeResult::Failed;
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.h b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.h
new file mode 100644
index 00000000..e3b5df85
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindRandomLocation.h
@@ -0,0 +1,24 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "BehaviorTree/Tasks/BTTask_BlackboardBase.h"
+#include "BTTask_FindRandomLocation.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API UBTTask_FindRandomLocation : public UBTTask_BlackboardBase
+{
+ GENERATED_BODY()
+
+public:
+ explicit UBTTask_FindRandomLocation(FObjectInitializer const& ObjectInitializer);
+ virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
+
+private:
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AI", meta = (AllowPrivateAccess = "true"))
+ float SearchRadius = 1000.f;
+};
From 22e615d7cf51bc9ab8455c01c97d7ac8eb683345 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Thu, 28 Sep 2023 21:29:04 +0100
Subject: [PATCH 018/112] Add AI Task for Getting the Player Location or an
Area Around Them
---
.../AI/BTTask_FindPlayerLocation.cpp | 39 +++++++++++++++++++
.../AI/BTTask_FindPlayerLocation.h | 27 +++++++++++++
2 files changed, 66 insertions(+)
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.cpp
new file mode 100644
index 00000000..7607af23
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.cpp
@@ -0,0 +1,39 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "BTTask_FindPlayerLocation.h"
+
+#include "NavigationSystem.h"
+#include "BehaviorTree/BlackboardComponent.h"
+#include "GameFramework/Character.h"
+
+UBTTask_FindPlayerLocation::UBTTask_FindPlayerLocation(FObjectInitializer const& ObjectInitializer)
+{
+ NodeName = TEXT("Find Player Location");
+}
+
+EBTNodeResult::Type UBTTask_FindPlayerLocation::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
+{
+ if (const ACharacter* const Player = Cast(GetWorld()->GetFirstPlayerController()->GetPawn()))
+ {
+ if (UBlackboardComponent* const Blackboard = OwnerComp.GetBlackboardComponent())
+ {
+ if (SearchRandom)
+ {
+ FVector const Origin = Player->GetActorLocation();
+ const UNavigationSystemV1* const NavSystem = UNavigationSystemV1::GetCurrent(GetWorld());
+ if (FNavLocation RandomLocation; NavSystem->GetRandomPointInNavigableRadius(Origin, SearchRadius, RandomLocation))
+ {
+ Blackboard->SetValueAsVector(GetSelectedBlackboardKey(), RandomLocation.Location);
+ }
+ }
+ else
+ {
+ Blackboard->SetValueAsVector(GetSelectedBlackboardKey(), Player->GetActorLocation());
+ }
+ FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded);
+ return EBTNodeResult::Succeeded;
+ }
+ }
+ return EBTNodeResult::Failed;
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.h b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.h
new file mode 100644
index 00000000..6161bd90
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindPlayerLocation.h
@@ -0,0 +1,27 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "BehaviorTree/Tasks/BTTask_BlackboardBase.h"
+#include "BTTask_FindPlayerLocation.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API UBTTask_FindPlayerLocation : public UBTTask_BlackboardBase
+{
+ GENERATED_BODY()
+
+public:
+ explicit UBTTask_FindPlayerLocation(FObjectInitializer const& ObjectInitializer);
+ virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
+
+private:
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AI", meta = (AllowPrivateAccess = "true"))
+ float SearchRadius = 150.f;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AI", meta = (AllowPrivateAccess = "true"))
+ bool SearchRandom = false;
+};
From f10fda514247a85289e636ea0ad5b856deaa8eb8 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Thu, 28 Sep 2023 21:30:06 +0100
Subject: [PATCH 019/112] Add Blackboard and Behaviour Tree for Enemy AI
---
EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset | 3 +++
.../Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset | 3 +++
EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset | 3 +++
.../Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset | 3 +++
.../Maps/FirstPersonMap/B/EL/ZUCMIANGP54V86XN0JR5Y6.uasset | 3 +++
.../Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset | 3 +++
6 files changed, 18 insertions(+)
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/B/EL/ZUCMIANGP54V86XN0JR5Y6.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
new file mode 100644
index 00000000..f631ee69
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e12facb03e605fcf3b7459c80c0ce5bd857df9f837d92a0b1f802dcf251ceff
+size 2586
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset
new file mode 100644
index 00000000..ee381207
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f5a7fcd4447476e36ad777f4db7b6e5898905b85f6fa1bb8b193a98ec26066dc
+size 32684
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
new file mode 100644
index 00000000..2d4c633a
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f48b1e9b530fcb9a22eda28d4347ef5562fc9eaf7562f1d206c36b1ae0714889
+size 10205
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset
new file mode 100644
index 00000000..f061064d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1988331cb675ef5854b9e0bf00b72da4746c2034323a0749b398193134f3c9d3
+size 5288
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/B/EL/ZUCMIANGP54V86XN0JR5Y6.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/B/EL/ZUCMIANGP54V86XN0JR5Y6.uasset
new file mode 100644
index 00000000..a5caac61
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/B/EL/ZUCMIANGP54V86XN0JR5Y6.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce6567235fd97e70957e706942ac503a48630467d721fee98bbfa4eb26a8b294
+size 27307
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset
new file mode 100644
index 00000000..d12d268b
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:710bc3c5911ac600db4de37b019e48d5d410f4b7b21927e2bf74800cde15de5b
+size 9113
From d5223bcf4f482bf32f021ae2e31ab5d7b68a8ac8 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Thu, 28 Sep 2023 22:37:31 +0100
Subject: [PATCH 020/112] Started funcionality for pistol and singlefire
weapons
---
.../DefaultEditorPerProjectUserSettings.ini | 196 +++++++++++++++++-
EndlessVendetta/Config/DefaultEngine.ini | 8 +-
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-
.../Blueprints/BP_PickUp_Rifle.uasset | 4 +-
.../FirstPerson/GunMechanicWorld.uasset | 3 +
.../Input/Actions/IA_HoldShoot.uasset | 3 +
.../FirstPerson/Input/Actions/IA_Shoot.uasset | 3 -
.../Input/Actions/IA_TapShoot.uasset | 3 +
.../FirstPerson/Input/IMC_Default.uasset | 4 +-
.../FirstPerson/Input/IMC_Weapons.uasset | 4 +-
.../FirstPerson/Maps/GunMechanicTester.umap | 4 +-
.../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 3 +
.../EndlessVendetta/BaseWeaponClass.cpp | 40 +++-
.../Source/EndlessVendetta/BaseWeaponClass.h | 17 +-
.../EndlessVendettaCharacter.cpp | 12 ++
.../EndlessVendettaCharacter.h | 8 +
.../EndlessVendetta/WeaponItemClass.cpp | 8 +-
.../Source/EndlessVendetta/WeaponItemClass.h | 5 +-
18 files changed, 302 insertions(+), 27 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/GunMechanicWorld.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset
delete mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
diff --git a/EndlessVendetta/Config/DefaultEditorPerProjectUserSettings.ini b/EndlessVendetta/Config/DefaultEditorPerProjectUserSettings.ini
index 220a5519..094343ea 100644
--- a/EndlessVendetta/Config/DefaultEditorPerProjectUserSettings.ini
+++ b/EndlessVendetta/Config/DefaultEditorPerProjectUserSettings.ini
@@ -1,2 +1,196 @@
[ContentBrowser]
-ContentBrowserTab1.SelectedPaths=/Game/FirstPerson
\ No newline at end of file
+ContentBrowserTab1.SelectedPaths=/Game/FirstPerson
+
+[/Script/UnrealEd.LevelEditorPlaySettings]
+PlayFromHerePlayerStartClassName=/Script/Engine.PlayerStartPIE
+GameGetsMouseControl=False
+UseMouseForTouch=False
+ShowMouseControlLabel=True
+MouseControlLabelPosition=LabelAnchorMode_TopLeft
+ViewportGetsHMDControl=False
+ShouldMinimizeEditorOnVRPIE=True
+bShouldMinimizeEditorOnNonVRPIE=False
+bEmulateStereo=False
+AutoRecompileBlueprints=True
+EnableGameSound=True
+SoloAudioInFirstPIEClient=False
+EnablePIEEnterAndExitSounds=False
+PlayInEditorSoundQualityLevel=0
+bUseNonRealtimeAudioDevice=False
+bOnlyLoadVisibleLevelsInPIE=False
+bPreferToStreamLevelsInPIE=False
+bPromoteOutputLogWarningsDuringPIE=False
+NewWindowWidth=1280
+NewWindowHeight=720
+NewWindowPosition=(X=-1,Y=-1)
+CenterNewWindow=False
+PIEAlwaysOnTop=False
+DisableStandaloneSound=False
+AdditionalLaunchParameters=
+BuildGameBeforeLaunch=PlayOnBuild_Default
+LaunchConfiguration=LaunchConfig_Default
+PackFilesForLaunch=NoPak
+bAutoCompileBlueprintsOnLaunch=True
+bLaunchSeparateServer=False
+PlayNetMode=PIE_Standalone
+RunUnderOneProcess=True
+PlayNetDedicated=False
+PlayNumberOfClients=1
+PrimaryPIEClientIndex=0
+ServerPort=17777
+ClientWindowWidth=640
+AutoConnectToServer=True
+RouteGamepadToSecondWindow=False
+CreateAudioDeviceForEveryPlayer=False
+ClientWindowHeight=480
+ServerMapNameOverride=
+AdditionalServerGameOptions=
+AdditionalLaunchOptions=
+bShowServerDebugDrawingByDefault=True
+ServerDebugDrawingColorTintStrength=0.000000
+ServerDebugDrawingColorTint=(R=0.000000,G=0.000000,B=0.000000,A=1.000000)
+AdditionalServerLaunchParameters=
+ServerFixedFPS=0
+NetworkEmulationSettings=(bIsNetworkEmulationEnabled=False,EmulationTarget=Server,CurrentProfile="Custom",OutPackets=(MinLatency=0,MaxLatency=0,PacketLossPercentage=0),InPackets=(MinLatency=0,MaxLatency=0,PacketLossPercentage=0))
+LastSize=(X=0,Y=0)
+LastExecutedLaunchDevice=Windows@MARCELSPC
+LastExecutedLaunchName=MARCELSPC
+LastExecutedLaunchModeType=LaunchMode_OnDevice
+LastExecutedPlayModeLocation=PlayLocation_DefaultPlayerStart
+LastExecutedPlayModeType=PlayMode_InViewPort
+LastExecutedPIEPreviewDevice=
+-LaptopScreenResolutions=(Description="Apple MacBook Air 11",Width=1366,Height=768,AspectRatio="16:9",bCanSwapAspectRatio=true)
+-LaptopScreenResolutions=(Description="Apple MacBook Air 13\"",Width=1440,Height=900,AspectRatio="16:10",bCanSwapAspectRatio=true)
+-LaptopScreenResolutions=(Description="Apple MacBook Pro 13\"",Width=1280,Height=800,AspectRatio="16:10",bCanSwapAspectRatio=true)
+-LaptopScreenResolutions=(Description="Apple MacBook Pro 13\" (Retina)",Width=2560,Height=1600,AspectRatio="16:10",bCanSwapAspectRatio=true)
+-LaptopScreenResolutions=(Description="Apple MacBook Pro 15\"",Width=1440,Height=900,AspectRatio="16:10",bCanSwapAspectRatio=true)
+-LaptopScreenResolutions=(Description="Apple MacBook Pro 15\" (Retina)",Width=2880,Height=1800,AspectRatio="16:10",bCanSwapAspectRatio=true)
+-LaptopScreenResolutions=(Description="Generic 14-15.6\" Notebook",Width=1366,Height=768,AspectRatio="16:9",bCanSwapAspectRatio=true)
++LaptopScreenResolutions=(Description="Apple MacBook Air 11",Width=1366,Height=768,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
++LaptopScreenResolutions=(Description="Apple MacBook Air 13\"",Width=1440,Height=900,AspectRatio="16:10",bCanSwapAspectRatio=True,ProfileName="")
++LaptopScreenResolutions=(Description="Apple MacBook Pro 13\"",Width=1280,Height=800,AspectRatio="16:10",bCanSwapAspectRatio=True,ProfileName="")
++LaptopScreenResolutions=(Description="Apple MacBook Pro 13\" (Retina)",Width=2560,Height=1600,AspectRatio="16:10",bCanSwapAspectRatio=True,ProfileName="")
++LaptopScreenResolutions=(Description="Apple MacBook Pro 15\"",Width=1440,Height=900,AspectRatio="16:10",bCanSwapAspectRatio=True,ProfileName="")
++LaptopScreenResolutions=(Description="Apple MacBook Pro 15\" (Retina)",Width=2880,Height=1800,AspectRatio="16:10",bCanSwapAspectRatio=True,ProfileName="")
++LaptopScreenResolutions=(Description="Generic 14-15.6\" Notebook",Width=1366,Height=768,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
+-MonitorScreenResolutions=(Description="19\" monitor",Width=1440,Height=900,AspectRatio="16:10",bCanSwapAspectRatio=true)
+-MonitorScreenResolutions=(Description="20\" monitor",Width=1600,Height=900,AspectRatio="16:9",bCanSwapAspectRatio=true)
+-MonitorScreenResolutions=(Description="22\" monitor",Width=1680,Height=1050,AspectRatio="16:10",bCanSwapAspectRatio=true)
+-MonitorScreenResolutions=(Description="21.5-24\" monitor",Width=1920,Height=1080,AspectRatio="16:9",bCanSwapAspectRatio=true)
+-MonitorScreenResolutions=(Description="27\" monitor",Width=2560,Height=1440,AspectRatio="16:9",bCanSwapAspectRatio=true)
++MonitorScreenResolutions=(Description="19\" monitor",Width=1440,Height=900,AspectRatio="16:10",bCanSwapAspectRatio=True,ProfileName="")
++MonitorScreenResolutions=(Description="20\" monitor",Width=1600,Height=900,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
++MonitorScreenResolutions=(Description="22\" monitor",Width=1680,Height=1050,AspectRatio="16:10",bCanSwapAspectRatio=True,ProfileName="")
++MonitorScreenResolutions=(Description="21.5-24\" monitor",Width=1920,Height=1080,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
++MonitorScreenResolutions=(Description="27\" monitor",Width=2560,Height=1440,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
+-PhoneScreenResolutions=(Description="Apple iPhone 5S",Width=320,Height=568,AspectRatio="~16:9",bCanSwapAspectRatio=true,ProfileName="iPhone5S")
+-PhoneScreenResolutions=(Description="Apple iPhone 6",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone6")
+-PhoneScreenResolutions=(Description="Apple iPhone 6+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone6Plus")
+-PhoneScreenResolutions=(Description="Apple iPhone 6S",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone6S")
+-PhoneScreenResolutions=(Description="Apple iPhone 6S+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone6SPlus")
+-PhoneScreenResolutions=(Description="Apple iPhone 7",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone7")
+-PhoneScreenResolutions=(Description="Apple iPhone 7+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone7Plus")
+-PhoneScreenResolutions=(Description="Apple iPhone 8",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone8")
+-PhoneScreenResolutions=(Description="Apple iPhone 8+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhone8Plus")
+-PhoneScreenResolutions=(Description="Apple iPhone X",Width=375,Height=812,AspectRatio="19.5:9",bCanSwapAspectRatio=true,ProfileName="iPhoneX")
+-PhoneScreenResolutions=(Description="Apple iPhone XS",Width=375,Height=812,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhoneXS")
+-PhoneScreenResolutions=(Description="Apple iPhone XS Max",Width=414,Height=896,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhoneXSMax")
+-PhoneScreenResolutions=(Description="Apple iPhone XR",Width=414,Height=896,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="iPhoneXR")
+-PhoneScreenResolutions=(Description="HTC One",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_High")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S4",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_Low")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S6",Width=1440,Height=2560,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_Mali_T7xx")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S7",Width=1440,Height=2560,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_High")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S8 (Mali)",Width=1080,Height=2220,AspectRatio="18.5:9",bCanSwapAspectRatio=true,ProfileName="Android_Mali_G71")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S8 (Adreno)",Width=1080,Height=2220,AspectRatio="18.5:9",bCanSwapAspectRatio=true,ProfileName="Android_Adreno5xx")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S9 (Mali)",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=true,ProfileName="Android_High")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S9 (Adreno)",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=true,ProfileName="Android_High")
+-PhoneScreenResolutions=(Description="Samsung Galaxy Note 9 (Mali)",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=true,ProfileName="Android_High")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S10 (Adreno)",Width=1440,Height=3040,AspectRatio="19:9",bCanSwapAspectRatio=true,ProfileName="Android_Adreno6xx")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S10 (Mali)",Width=1440,Height=3040,AspectRatio="19:9",bCanSwapAspectRatio=true,ProfileName="Android_Mali_G76")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S10e (Adreno)",Width=1080,Height=2280,AspectRatio="19:9",bCanSwapAspectRatio=true,ProfileName="Android_Adreno6xx")
+-PhoneScreenResolutions=(Description="Samsung Galaxy S10e (Mali)",Width=1080,Height=2280,AspectRatio="19:9",bCanSwapAspectRatio=true,ProfileName="Android_Mali_G76")
+-PhoneScreenResolutions=(Description="Google Pixel",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_Mid")
+-PhoneScreenResolutions=(Description="Google Pixel XL",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_Mid")
+-PhoneScreenResolutions=(Description="Google Pixel 2",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_Mid")
+-PhoneScreenResolutions=(Description="Google Pixel 2 XL",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_Mid")
+-PhoneScreenResolutions=(Description="Google Pixel 3",Width=1080,Height=2160,AspectRatio="18:9",bCanSwapAspectRatio=true,ProfileName="Android_Mid")
+-PhoneScreenResolutions=(Description="Google Pixel 3 XL",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=true,ProfileName="Android_Mid")
+-PhoneScreenResolutions=(Description="Razer Phone",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=true,ProfileName="Android_Mid")
++PhoneScreenResolutions=(Description="Apple iPhone 5S",Width=320,Height=568,AspectRatio="~16:9",bCanSwapAspectRatio=True,ProfileName="iPhone5S")
++PhoneScreenResolutions=(Description="Apple iPhone 6",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone6")
++PhoneScreenResolutions=(Description="Apple iPhone 6+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone6Plus")
++PhoneScreenResolutions=(Description="Apple iPhone 6S",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone6S")
++PhoneScreenResolutions=(Description="Apple iPhone 6S+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone6SPlus")
++PhoneScreenResolutions=(Description="Apple iPhone 7",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone7")
++PhoneScreenResolutions=(Description="Apple iPhone 7+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone7Plus")
++PhoneScreenResolutions=(Description="Apple iPhone 8",Width=375,Height=667,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone8")
++PhoneScreenResolutions=(Description="Apple iPhone 8+",Width=414,Height=736,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhone8Plus")
++PhoneScreenResolutions=(Description="Apple iPhone X",Width=375,Height=812,AspectRatio="19.5:9",bCanSwapAspectRatio=True,ProfileName="iPhoneX")
++PhoneScreenResolutions=(Description="Apple iPhone XS",Width=375,Height=812,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhoneXS")
++PhoneScreenResolutions=(Description="Apple iPhone XS Max",Width=414,Height=896,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhoneXSMax")
++PhoneScreenResolutions=(Description="Apple iPhone XR",Width=414,Height=896,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="iPhoneXR")
++PhoneScreenResolutions=(Description="HTC One",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_High")
++PhoneScreenResolutions=(Description="Samsung Galaxy S4",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_Low")
++PhoneScreenResolutions=(Description="Samsung Galaxy S6",Width=1440,Height=2560,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_Mali_T7xx")
++PhoneScreenResolutions=(Description="Samsung Galaxy S7",Width=1440,Height=2560,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_High")
++PhoneScreenResolutions=(Description="Samsung Galaxy S8 (Mali)",Width=1080,Height=2220,AspectRatio="18.5:9",bCanSwapAspectRatio=True,ProfileName="Android_Mali_G71")
++PhoneScreenResolutions=(Description="Samsung Galaxy S8 (Adreno)",Width=1080,Height=2220,AspectRatio="18.5:9",bCanSwapAspectRatio=True,ProfileName="Android_Adreno5xx")
++PhoneScreenResolutions=(Description="Samsung Galaxy S9 (Mali)",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=True,ProfileName="Android_High")
++PhoneScreenResolutions=(Description="Samsung Galaxy S9 (Adreno)",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=True,ProfileName="Android_High")
++PhoneScreenResolutions=(Description="Samsung Galaxy Note 9 (Mali)",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=True,ProfileName="Android_High")
++PhoneScreenResolutions=(Description="Samsung Galaxy S10 (Adreno)",Width=1440,Height=3040,AspectRatio="19:9",bCanSwapAspectRatio=True,ProfileName="Android_Adreno6xx")
++PhoneScreenResolutions=(Description="Samsung Galaxy S10 (Mali)",Width=1440,Height=3040,AspectRatio="19:9",bCanSwapAspectRatio=True,ProfileName="Android_Mali_G76")
++PhoneScreenResolutions=(Description="Samsung Galaxy S10e (Adreno)",Width=1080,Height=2280,AspectRatio="19:9",bCanSwapAspectRatio=True,ProfileName="Android_Adreno6xx")
++PhoneScreenResolutions=(Description="Samsung Galaxy S10e (Mali)",Width=1080,Height=2280,AspectRatio="19:9",bCanSwapAspectRatio=True,ProfileName="Android_Mali_G76")
++PhoneScreenResolutions=(Description="Google Pixel",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_Mid")
++PhoneScreenResolutions=(Description="Google Pixel XL",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_Mid")
++PhoneScreenResolutions=(Description="Google Pixel 2",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_Mid")
++PhoneScreenResolutions=(Description="Google Pixel 2 XL",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_Mid")
++PhoneScreenResolutions=(Description="Google Pixel 3",Width=1080,Height=2160,AspectRatio="18:9",bCanSwapAspectRatio=True,ProfileName="Android_Mid")
++PhoneScreenResolutions=(Description="Google Pixel 3 XL",Width=1440,Height=2960,AspectRatio="18.5:9",bCanSwapAspectRatio=True,ProfileName="Android_Mid")
++PhoneScreenResolutions=(Description="Razer Phone",Width=1080,Height=1920,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="Android_Mid")
+-TabletScreenResolutions=(Description="iPad Pro 12.9-inch (3rd gen.)",Width=1024,Height=1366,AspectRatio="~3:4",bCanSwapAspectRatio=true,ProfileName="iPadPro3_129")
+-TabletScreenResolutions=(Description="iPad Pro 12.9-inch (2nd gen.)",Width=1024,Height=1366,AspectRatio="~3:4",bCanSwapAspectRatio=true,ProfileName="iPadPro2_129")
+-TabletScreenResolutions=(Description="iPad Pro 11-inch",Width=834,Height=1194,AspectRatio="5:7",bCanSwapAspectRatio=true,ProfileName="iPadPro11")
+-TabletScreenResolutions=(Description="iPad Pro 10.5-inch",Width=834,Height=1112,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPadPro105")
+-TabletScreenResolutions=(Description="iPad Pro 12.9-inch",Width=1024,Height=1366,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPadPro129")
+-TabletScreenResolutions=(Description="iPad Pro 9.7-inch",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPadPro97")
+-TabletScreenResolutions=(Description="iPad (6th gen.)",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPad6")
+-TabletScreenResolutions=(Description="iPad (5th gen.)",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPad5")
+-TabletScreenResolutions=(Description="iPad Air 3",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPadAir3")
+-TabletScreenResolutions=(Description="iPad Air 2",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPadAir2")
+-TabletScreenResolutions=(Description="iPad Mini 5",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPadMini5")
+-TabletScreenResolutions=(Description="iPad Mini 4",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=true,ProfileName="iPadMini4")
+-TabletScreenResolutions=(Description="LG G Pad X 8.0",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=true)
+-TabletScreenResolutions=(Description="Asus Zenpad 3s 10",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=true)
+-TabletScreenResolutions=(Description="Huawei MediaPad M3",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=true)
+-TabletScreenResolutions=(Description="Microsoft Surface RT",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=true)
+-TabletScreenResolutions=(Description="Microsoft Surface Pro",Width=1080,Height=1920,AspectRatio="9:16",bCanSwapAspectRatio=true)
++TabletScreenResolutions=(Description="iPad Pro 12.9-inch (3rd gen.)",Width=1024,Height=1366,AspectRatio="~3:4",bCanSwapAspectRatio=True,ProfileName="iPadPro3_129")
++TabletScreenResolutions=(Description="iPad Pro 12.9-inch (2nd gen.)",Width=1024,Height=1366,AspectRatio="~3:4",bCanSwapAspectRatio=True,ProfileName="iPadPro2_129")
++TabletScreenResolutions=(Description="iPad Pro 11-inch",Width=834,Height=1194,AspectRatio="5:7",bCanSwapAspectRatio=True,ProfileName="iPadPro11")
++TabletScreenResolutions=(Description="iPad Pro 10.5-inch",Width=834,Height=1112,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPadPro105")
++TabletScreenResolutions=(Description="iPad Pro 12.9-inch",Width=1024,Height=1366,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPadPro129")
++TabletScreenResolutions=(Description="iPad Pro 9.7-inch",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPadPro97")
++TabletScreenResolutions=(Description="iPad (6th gen.)",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPad6")
++TabletScreenResolutions=(Description="iPad (5th gen.)",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPad5")
++TabletScreenResolutions=(Description="iPad Air 3",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPadAir3")
++TabletScreenResolutions=(Description="iPad Air 2",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPadAir2")
++TabletScreenResolutions=(Description="iPad Mini 5",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPadMini5")
++TabletScreenResolutions=(Description="iPad Mini 4",Width=768,Height=1024,AspectRatio="3:4",bCanSwapAspectRatio=True,ProfileName="iPadMini4")
++TabletScreenResolutions=(Description="LG G Pad X 8.0",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=True,ProfileName="")
++TabletScreenResolutions=(Description="Asus Zenpad 3s 10",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=True,ProfileName="")
++TabletScreenResolutions=(Description="Huawei MediaPad M3",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=True,ProfileName="")
++TabletScreenResolutions=(Description="Microsoft Surface RT",Width=768,Height=1366,AspectRatio="9:16",bCanSwapAspectRatio=True,ProfileName="")
++TabletScreenResolutions=(Description="Microsoft Surface Pro",Width=1080,Height=1920,AspectRatio="9:16",bCanSwapAspectRatio=True,ProfileName="")
+-TelevisionScreenResolutions=(Description="720p (HDTV, Blu-ray)",Width=1280,Height=720,AspectRatio="16:9",bCanSwapAspectRatio=true)
+-TelevisionScreenResolutions=(Description="1080i, 1080p (HDTV, Blu-ray)",Width=1920,Height=1080,AspectRatio="16:9",bCanSwapAspectRatio=true)
+-TelevisionScreenResolutions=(Description="4K Ultra HD",Width=3840,Height=2160,AspectRatio="16:9",bCanSwapAspectRatio=true)
+-TelevisionScreenResolutions=(Description="4K Digital Cinema",Width=4096,Height=2160,AspectRatio="1.90:1",bCanSwapAspectRatio=true)
++TelevisionScreenResolutions=(Description="720p (HDTV, Blu-ray)",Width=1280,Height=720,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
++TelevisionScreenResolutions=(Description="1080i, 1080p (HDTV, Blu-ray)",Width=1920,Height=1080,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
++TelevisionScreenResolutions=(Description="4K Ultra HD",Width=3840,Height=2160,AspectRatio="16:9",bCanSwapAspectRatio=True,ProfileName="")
++TelevisionScreenResolutions=(Description="4K Digital Cinema",Width=4096,Height=2160,AspectRatio="1.90:1",bCanSwapAspectRatio=True,ProfileName="")
+DeviceToEmulate=
+PIESafeZoneOverride=(Left=0.000000,Top=0.000000,Right=0.000000,Bottom=0.000000)
+
diff --git a/EndlessVendetta/Config/DefaultEngine.ini b/EndlessVendetta/Config/DefaultEngine.ini
index 1c20f465..f61108f4 100644
--- a/EndlessVendetta/Config/DefaultEngine.ini
+++ b/EndlessVendetta/Config/DefaultEngine.ini
@@ -6,14 +6,16 @@
[/Script/EngineSettings.GameMapsSettings]
EditorStartupMap=/Game/FirstPerson/Maps/GunMechanicTester.GunMechanicTester
LocalMapOptions=
-TransitionMap=
+TransitionMap=None
bUseSplitscreen=True
TwoPlayerSplitscreenLayout=Horizontal
ThreePlayerSplitscreenLayout=FavorTop
+FourPlayerSplitscreenLayout=Grid
+bOffsetPlayerGamepadIds=False
GameInstanceClass=/Script/Engine.GameInstance
GameDefaultMap=/Game/FirstPerson/Maps/GunMechanicTester.GunMechanicTester
-ServerDefaultMap=/Engine/Maps/Entry
-GlobalDefaultGameMode=/Script/EndlessVendetta.EndlessVendettaGameMode
+ServerDefaultMap=/Engine/Maps/Entry.Entry
+GlobalDefaultGameMode=/Game/FirstPerson/GunMechanicWorld.GunMechanicWorld_C
GlobalDefaultServerGameMode=None
[/Script/Engine.RendererSettings]
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 00b38c8d..034d9419 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:46657eb5de2de0259508b2ff818d484f06f895c13f8bb3d04c6fc34ea61659a1
-size 23694
+oid sha256:7cdc8c835b9e8e0bf81e8bc89d0ea3027bae94e2174be261c132bd300f1fad51
+size 23989
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset
index c40095d8..42fff7f9 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:91c5ce4a3278b69b5104cd1d2972be90b80fc199098202556009b1d28b52fe38
-size 32842
+oid sha256:4d156d6fe24779674a35f18f9209313b0c2096d22772400c4d10c241a2e59e9e
+size 21649
diff --git a/EndlessVendetta/Content/FirstPerson/GunMechanicWorld.uasset b/EndlessVendetta/Content/FirstPerson/GunMechanicWorld.uasset
new file mode 100644
index 00000000..551d8f69
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/GunMechanicWorld.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:50316ead250bb810a80831ade33e194f2de7ccb433dc172e5217540998e2854e
+size 19098
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset
new file mode 100644
index 00000000..ac52169f
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1360a5e75da75d76374ea2091191ab85eab8ae0407f660ec7e242bdb51056670
+size 1659
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset
deleted file mode 100644
index 108736e1..00000000
--- a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e1d44dcf8506d3f89055e8f440e10943ff7f436e1bc5ec345c2a79069e2327d4
-size 1598
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset
new file mode 100644
index 00000000..b951ed44
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3d02927e6f81929b1b6715400ce5f1a62361f239a5baad938902ae86b61ddc55
+size 1657
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
index c85553cd..ea55777d 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ffa41b9939bbfe39ea2480464028578938aa1a8c0acc1edeac030ade6d1d9d76
-size 14001
+oid sha256:1006f1f08d6d5428a9c4689b38adff8ae38cb5a4b71ed3d8831ad0ef4da32363
+size 15167
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset
index e1400043..e0d25572 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cbc3f6b581c994996d42e89d377343eb9699442117748a71f9ead311d203992b
-size 4115
+oid sha256:99664f7a2d02cd77eec769cd0a690345e80de975fcacb8a615346583218e1b15
+size 4138
diff --git a/EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap b/EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap
index 503b25b8..9b60a76e 100644
--- a/EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap
+++ b/EndlessVendetta/Content/FirstPerson/Maps/GunMechanicTester.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ee182b80d3a23ed532f8e4efed1b99c1c648c6076e3e6d72b75e8a511784ff06
-size 19378
+oid sha256:317895349b964df99a6a8316ea5f4664ebf4127af8e56f543893d36cc49afbfe
+size 19651
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
new file mode 100644
index 00000000..4f6bab25
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fdab805d14a7bc4f2fa61abc0106161cf2626e8857ae14089d5e4c93f9a320d6
+size 5061
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
index 3d2bf453..35d57eb1 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
@@ -2,8 +2,9 @@
#include "BaseWeaponClass.h"
-
+#include "EndlessVendettaCharacter.h"
#include "Components/CapsuleComponent.h"
+#include "Kismet/GameplayStatics.h"
// Sets default values
@@ -18,6 +19,24 @@ void ABaseWeaponClass::BeginPlay()
{
Super::BeginPlay();
+ // Attempt to find the player character
+ APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0);
+ player = Cast(PlayerController->GetCharacter());
+ if (PlayerController)
+ {
+ if (player)
+ {
+ UE_LOG(LogTemp, Display, TEXT("BeginPlay: Player found."));
+ }
+ else
+ {
+ UE_LOG(LogTemp, Error, TEXT("BeginPlay: Player not found."));
+ }
+ }
+ else
+ {
+ UE_LOG(LogTemp, Error, TEXT("BeginPlay: Player controller not found."));
+ }
}
// Called every frame
@@ -26,3 +45,22 @@ void ABaseWeaponClass::Tick(float DeltaTime)
Super::Tick(DeltaTime);
}
+void ABaseWeaponClass::TapFire()
+{
+ FHitResult outHit;
+ FVector traceStart;
+ FVector traceEnd;
+ traceStart = player->GetActorLocation();
+ traceEnd = traceStart + (player->GetActorForwardVector() * 50);
+ UE_LOG(LogTemp, Display, TEXT("World: %s"), *GetWorld()->GetName());
+ FCollisionQueryParams collisionParams;
+ GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
+
+ //Debug line to see where the trace hit
+ DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true);
+ if (outHit.bBlockingHit)
+ {
+ UE_LOG(LogTemp, Display, TEXT("Hit something"));
+ }
+ UE_LOG(LogTemp, Display, TEXT("BOOMBOOMBIMBAMBIM"));
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
index 32225fe0..2fc1219a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
@@ -6,10 +6,11 @@
#include "WeaponItemClass.h"
#include "BaseWeaponClass.generated.h"
+class AEndlessVendettaCharacter;
class UCapsuleComponent;
UCLASS()
-class ENDLESSVENDETTA_API ABaseWeaponClass : public AWeaponItemClass
+class ENDLESSVENDETTA_API ABaseWeaponClass : public AActor
{
GENERATED_BODY()
@@ -39,5 +40,19 @@ public:
UPROPERTY(EditAnywhere)
UTexture2D* WeaponImage;
+
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void TapFire();
+
+ UPROPERTY(VisibleAnywhere)
+ ACharacter* player;
+
+
+
+
+ //Add HoldFire functionality after pistol is complete for holding fire for pistol and make it start spraying innacuratly.
+
+ // UFUNCTION(BlueprintCallable, Category = "Weapons")
+ // void HoldFire();
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 189f8513..62ffd896 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -73,6 +73,9 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
//Weapon Switching
EnhancedInputComponent->BindAction(EquipPrimaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipPrimary);
EnhancedInputComponent->BindAction(EquipSecondaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipSecondary);
+
+ //Weapon Shooting
+ EnhancedInputComponent->BindAction(TapShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
}
}
@@ -130,6 +133,15 @@ void AEndlessVendettaCharacter::EquipSecondary()
}
}
+//Calls the fire function in the baseWeaponClass
+void AEndlessVendettaCharacter::TapFireCaller()
+{
+ if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
+ {
+ PrimaryWeaponClass.GetDefaultObject()->TapFire();
+ }
+}
+
//POTENTIAL PICKUP SYSTEM NEEDS CHANGING BUT YES
//Called from Player BluePrints
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index c5c020fc..357f0cfd 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -49,6 +49,11 @@ class AEndlessVendettaCharacter : public ACharacter
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
class UInputAction* EquipSecondaryWeapon;
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
+ class UInputAction* TapShootAction;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
+ class UInputAction* HoldShootAction;
public:
AEndlessVendettaCharacter();
@@ -84,6 +89,9 @@ public:
ABaseWeaponClass* SecondaryWeapon;
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void TapFireCaller();
+
protected:
/** Called for movement input */
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
index d1e399a7..32f68147 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
@@ -25,12 +25,10 @@ void AWeaponItemClass::Tick(float DeltaTime)
}
//Called from WeaponInventory actor component class
-void AWeaponItemClass::Equip(ABaseWeaponClass* PickedUpWeapon)
+void AWeaponItemClass::Equip()
{
- //get the weapons in the array from component
- //whatever input is being pressed add that to the player socket
- //if there is no gun simply add it to the socket
- //if there is a weapon remove from socket and add the requested one
+ GetWorld();
+ UE_LOG(LogTemp, Display, TEXT("World Player is in: %s"), GetWorld());
}
//Called from WeaponInventory actor component class
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
index a1ad01bf..0ab0f0a6 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
@@ -25,11 +25,10 @@ public:
// Called every frame
virtual void Tick(float DeltaTime) override;
-private:
-
UFUNCTION()
- void Equip(ABaseWeaponClass* PickedUpWeapon);
+ void Equip();
UFUNCTION()
void Unequip(ABaseWeaponClass* PickedUpWeapon);
+
};
From d4c602e262fae36a7d2425aac5e4d98848c3a870 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Fri, 29 Sep 2023 00:07:12 +0100
Subject: [PATCH 021/112] Add EQS for AI to Find Valid Cover Locations
---
.../AI/Enemy/Basic/BB_BasicEnemy.uasset | 4 +-
.../AI/Enemy/Basic/BT_BasicEnemy.uasset | 4 +-
.../Content/AI/Enemy/Basic/EQSB_Player.uasset | 3 +
.../AI/Enemy/Basic/EQS_FindCover.uasset | 3 +
.../Content/AI/Enemy/Basic/EQS_Test.uasset | 3 +
.../FirstPerson/Maps/FirstPersonMap.umap | 4 +-
.../A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset | 2 +-
.../HoloLens/Config/HoloLensEngine.ini | 32 +++++++
.../EndlessVendetta/AI/AI_EnemyController.cpp | 83 +++++++++++++++++++
.../EndlessVendetta/AI/AI_EnemyController.h | 35 ++++++++
.../EndlessVendetta/AI/BTTask_FindCover.cpp | 14 ++++
.../EndlessVendetta/AI/BTTask_FindCover.h | 23 +++++
.../EndlessVendetta/AI/EnemyCharacter.cpp | 20 +++++
.../EndlessVendetta/AI/EnemyCharacter.h | 10 +++
14 files changed, 233 insertions(+), 7 deletions(-)
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset
create mode 100644 EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.h
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
index f631ee69..52c3d994 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7e12facb03e605fcf3b7459c80c0ce5bd857df9f837d92a0b1f802dcf251ceff
-size 2586
+oid sha256:0c439461f7778a2156b0c90fe965cd8bb56c84703110c655e5682b15da9ba2b7
+size 2952
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
index 2d4c633a..ced1ec89 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f48b1e9b530fcb9a22eda28d4347ef5562fc9eaf7562f1d206c36b1ae0714889
-size 10205
+oid sha256:a6d42687973696b95d580795273e6993dd6eba1d2e5d513e21bf0d876a05c6e1
+size 9634
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset
new file mode 100644
index 00000000..a1e8f59b
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4da78b93d151ff916a8b62f09f88ce28b8efeb76a9d1d468a6e56f95d50a711d
+size 17987
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset
new file mode 100644
index 00000000..6e74a14b
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7fcaaf5f822a38ea450d63d75ae96d5207fd7b0d37e0c06edc04938dc3d19e48
+size 11056
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset
new file mode 100644
index 00000000..eb8c4663
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5f5b2ddf1641fad4bf9b75104089070dd382ab3b630619aa5cbb0fb19e215f22
+size 22729
diff --git a/EndlessVendetta/Content/FirstPerson/Maps/FirstPersonMap.umap b/EndlessVendetta/Content/FirstPerson/Maps/FirstPersonMap.umap
index 18ab88e2..54eb07cc 100644
--- a/EndlessVendetta/Content/FirstPerson/Maps/FirstPersonMap.umap
+++ b/EndlessVendetta/Content/FirstPerson/Maps/FirstPersonMap.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:50dc7643805f79735dcfd5446b36ff8ddea8adeda4b88438744192186c26f707
-size 19238
+oid sha256:89c980519d00e643fc39c075bf791f256c5cbedde3f1714c9b8dc549b66f747d
+size 19936
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset
index f061064d..d2ed851f 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/A/OW/M2M9BG6AWDJW3UNODUVGA2.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1988331cb675ef5854b9e0bf00b72da4746c2034323a0749b398193134f3c9d3
+oid sha256:e389d4fdd420c3db3068711fe04fd3fa8d65bdb13895ef085fc9deb499078797
size 5288
diff --git a/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini b/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
new file mode 100644
index 00000000..d5ebb91b
--- /dev/null
+++ b/EndlessVendetta/Platforms/HoloLens/Config/HoloLensEngine.ini
@@ -0,0 +1,32 @@
+
+
+[/Script/HoloLensPlatformEditor.HoloLensTargetSettings]
+bBuildForEmulation=False
+bBuildForDevice=True
+bUseNameForLogo=True
+bBuildForRetailWindowsStore=False
+bAutoIncrementVersion=False
+bShouldCreateAppInstaller=False
+AppInstallerInstallationURL=
+HoursBetweenUpdateChecks=0
+bEnablePIXProfiling=False
+TileBackgroundColor=(B=64,G=0,R=0,A=255)
+SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255)
++PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=())
+TargetDeviceFamily=Windows.Holographic
+MinimumPlatformVersion=
+MaximumPlatformVersionTested=10.0.18362.0
+MaxTrianglesPerCubicMeter=500.000000
+SpatialMeshingVolumeSize=20.000000
+CompilerVersion=Default
+Windows10SDKVersion=10.0.18362.0
++CapabilityList=internetClientServer
++CapabilityList=privateNetworkClientServer
++Uap2CapabilityList=spatialPerception
+bSetDefaultCapabilities=False
+SpatializationPlugin=
+SourceDataOverridePlugin=
+ReverbPlugin=
+OcclusionPlugin=
+SoundCueCookQualityIndex=-1
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
new file mode 100644
index 00000000..eca94318
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
@@ -0,0 +1,83 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "AI_EnemyController.h"
+
+#include "EnemyCharacter.h"
+#include "BehaviorTree/BlackboardComponent.h"
+#include "Perception/AIPerceptionComponent.h"
+#include "Perception/AISenseConfig_Sight.h"
+
+
+// Sets default values
+AAI_EnemyController::AAI_EnemyController(FObjectInitializer const& ObjectInitializer)
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+ SetupPerceptionSystem();
+}
+
+// Called when the game starts or when spawned
+void AAI_EnemyController::BeginPlay()
+{
+ Super::BeginPlay();
+}
+
+void AAI_EnemyController::OnPossess(APawn* InPawn)
+{
+ Super::OnPossess(InPawn);
+ if (const AEnemyCharacter* EnemyCharacter = Cast(InPawn))
+ {
+ if (UBehaviorTree* const BehaviorTree = EnemyCharacter->GetBehaviorTree())
+ {
+ UBlackboardComponent* TempBlackboardPtr;
+ UseBlackboard(BehaviorTree->BlackboardAsset, TempBlackboardPtr);
+ Blackboard = TempBlackboardPtr;
+ RunBehaviorTree(BehaviorTree);
+ }
+ }
+}
+
+// Called every frame
+void AAI_EnemyController::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+}
+
+void AAI_EnemyController::SetupPerceptionSystem()
+{
+ SightConfig = CreateDefaultSubobject(TEXT("Sight Config"));
+ if (IsValid(SightConfig))
+ {
+ SetPerceptionComponent(*CreateDefaultSubobject(TEXT("Perception Component")));
+ SightConfig->SightRadius = 1000.0f;
+ SightConfig->LoseSightRadius = 1100.0f;
+ SightConfig->PeripheralVisionAngleDegrees = 90.0f;
+ SightConfig->SetMaxAge(5.0f);
+ SightConfig->AutoSuccessRangeFromLastSeenLocation = 520.0f;
+ SightConfig->DetectionByAffiliation.bDetectEnemies = true;
+ SightConfig->DetectionByAffiliation.bDetectFriendlies = true;
+ SightConfig->DetectionByAffiliation.bDetectNeutrals = true;
+ GetPerceptionComponent()->SetDominantSense(*SightConfig->GetSenseImplementation());
+ GetPerceptionComponent()->OnTargetPerceptionUpdated.AddDynamic(this, &AAI_EnemyController::OnTargetPerceptionUpdated);
+ GetPerceptionComponent()->ConfigureSense(*SightConfig);
+ }
+}
+
+void AAI_EnemyController::OnTargetPerceptionUpdated(AActor* Actor, FAIStimulus const Stimulus)
+{
+ if (AEnemyCharacter* const EnemyCharacter = Cast(Actor))
+ {
+ if (Stimulus.WasSuccessfullySensed())
+ {
+ GetBlackboardComponent()->SetValueAsObject("TargetActor", Actor);
+ GetBlackboardComponent()->SetValueAsVector("TargetLocation", Stimulus.StimulusLocation);
+ }
+ else
+ {
+ GetBlackboardComponent()->ClearValue("TargetActor");
+ GetBlackboardComponent()->ClearValue("TargetLocation");
+ }
+ }
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.h b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.h
new file mode 100644
index 00000000..786bb0c3
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.h
@@ -0,0 +1,35 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "AIController.h"
+#include "Perception/AIPerceptionTypes.h"
+#include "AI_EnemyController.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API AAI_EnemyController : public AAIController
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ explicit AAI_EnemyController(FObjectInitializer const& ObjectInitializer);
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+ virtual void OnPossess(APawn* InPawn) override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+private:
+ class UAISenseConfig_Sight* SightConfig;
+ void SetupPerceptionSystem();
+
+ UFUNCTION()
+ void OnTargetPerceptionUpdated(AActor* Actor, FAIStimulus const Stimulus);
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.cpp
new file mode 100644
index 00000000..af60b35c
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.cpp
@@ -0,0 +1,14 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "BTTask_FindCover.h"
+
+UBTTask_FindCover::UBTTask_FindCover(FObjectInitializer const& ObjectInitializer)
+{
+ NodeName = TEXT("Find Vaild Cover");
+}
+
+EBTNodeResult::Type UBTTask_FindCover::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
+{
+ return EBTNodeResult::Failed;
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.h b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.h
new file mode 100644
index 00000000..8c1fa208
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_FindCover.h
@@ -0,0 +1,23 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "BehaviorTree/Tasks/BTTask_BlackboardBase.h"
+#include "BTTask_FindCover.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API UBTTask_FindCover : public UBTTask_BlackboardBase
+{
+ GENERATED_BODY()
+public:
+ explicit UBTTask_FindCover(FObjectInitializer const& ObjectInitializer);
+ virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
+
+private:
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AI", meta = (AllowPrivateAccess = "true"))
+ float SearchRadius = 1000.f;
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp
index 57a5285f..14827c11 100644
--- a/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.cpp
@@ -3,12 +3,17 @@
#include "EnemyCharacter.h"
+#include "Perception/AIPerceptionStimuliSourceComponent.h"
+#include "Perception/AISense_Sight.h"
+
+class UAISense_Sight;
// Sets default values
AEnemyCharacter::AEnemyCharacter()
{
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
+ SetupStimuliSourceComponent();
}
// Called when the game starts or when spawned
@@ -30,3 +35,18 @@ void AEnemyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComp
Super::SetupPlayerInputComponent(PlayerInputComponent);
}
+UBehaviorTree* AEnemyCharacter::GetBehaviorTree() const
+{
+ return BehaviorTree;
+}
+
+void AEnemyCharacter::SetupStimuliSourceComponent()
+{
+ StimuliSourceComponent = CreateDefaultSubobject(TEXT("Stimuli Source Component"));
+ if (IsValid(StimuliSourceComponent))
+ {
+ StimuliSourceComponent->RegisterForSense(TSubclassOf());
+ StimuliSourceComponent->RegisterWithPerceptionSystem();
+ }
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h
index 74e529e5..23e7e3be 100644
--- a/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/EnemyCharacter.h
@@ -3,6 +3,7 @@
#pragma once
#include "CoreMinimal.h"
+#include "BehaviorTree/BehaviorTree.h"
#include "GameFramework/Character.h"
#include "EnemyCharacter.generated.h"
@@ -19,10 +20,19 @@ protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AI")
+ UBehaviorTree* BehaviorTree;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
// Called to bind functionality to input
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
+
+ UFUNCTION(BlueprintCallable, Category = "AI")
+ UBehaviorTree* GetBehaviorTree() const;
+
+private:
+ class UAIPerceptionStimuliSourceComponent* StimuliSourceComponent;
+ void SetupStimuliSourceComponent();
};
From 2757895ab9fd0ba96712c946d26a73d114fd2714 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 29 Sep 2023 16:13:36 +0100
Subject: [PATCH 022/112] Added Arrow Comp and New Tag to Player BP
---
.../FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset | 4 ++--
.../StarterContent/Blueprints/Blueprint_CeilingLight.uasset | 4 ++--
.../Content/StarterContent/Particles/P_Ambient_Dust.uasset | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 034d9419..3966ce80 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7cdc8c835b9e8e0bf81e8bc89d0ea3027bae94e2174be261c132bd300f1fad51
-size 23989
+oid sha256:d567687e62b21f8c8c96c320928de71d9c2de143c13ae51aa7484f74e0abe0bc
+size 25589
diff --git a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
index 1d65a5bd..c5c3b84e 100644
--- a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
+++ b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5cc11f2015bdafd405b5b35cb75effe550762a10721f8b38b78dcde79c3e9e39
-size 43745
+oid sha256:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331
+size 158206
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index bf2e4391..bd4bbca0 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d
-size 43456
+oid sha256:85646f10125ee134d64359d6de90f20c6aca59da9ccd8558c8fdcb450ec61cfd
+size 53268
From cde2375851d384955d2571e1305fa24f68fc750c Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 29 Sep 2023 16:20:35 +0100
Subject: [PATCH 023/112] Added Weapon System Directory
---
.../Content/StarterContent/Particles/P_Ambient_Dust.uasset | 2 +-
.../Source/EndlessVendetta/EndlessVendettaCharacter.h | 2 +-
.../EndlessVendetta/{ => WeaponSystem}/BaseWeaponClass.cpp | 2 +-
.../Source/EndlessVendetta/{ => WeaponSystem}/BaseWeaponClass.h | 0
.../Source/EndlessVendetta/{ => WeaponSystem}/PistolClass.cpp | 0
.../Source/EndlessVendetta/{ => WeaponSystem}/PistolClass.h | 0
.../EndlessVendetta/{ => WeaponSystem}/WeaponItemClass.cpp | 0
.../Source/EndlessVendetta/{ => WeaponSystem}/WeaponItemClass.h | 0
8 files changed, 3 insertions(+), 3 deletions(-)
rename EndlessVendetta/Source/EndlessVendetta/{ => WeaponSystem}/BaseWeaponClass.cpp (97%)
rename EndlessVendetta/Source/EndlessVendetta/{ => WeaponSystem}/BaseWeaponClass.h (100%)
rename EndlessVendetta/Source/EndlessVendetta/{ => WeaponSystem}/PistolClass.cpp (100%)
rename EndlessVendetta/Source/EndlessVendetta/{ => WeaponSystem}/PistolClass.h (100%)
rename EndlessVendetta/Source/EndlessVendetta/{ => WeaponSystem}/WeaponItemClass.cpp (100%)
rename EndlessVendetta/Source/EndlessVendetta/{ => WeaponSystem}/WeaponItemClass.h (100%)
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index bd4bbca0..919b2265 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:85646f10125ee134d64359d6de90f20c6aca59da9ccd8558c8fdcb450ec61cfd
+oid sha256:c4e71b06a28a12efdd7d2eb8526af3f1821a01324d2a0e16feb3eb88bcf8c89f
size 53268
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 357f0cfd..46f3e4c0 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -3,7 +3,7 @@
#pragma once
#include "CoreMinimal.h"
-#include "BaseWeaponClass.h"
+#include "WeaponSystem/BaseWeaponClass.h"
#include "GameFramework/Character.h"
#include "InputActionValue.h"
#include "Components/ArrowComponent.h"
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
similarity index 97%
rename from EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
rename to EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 35d57eb1..0d14f19d 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -2,7 +2,7 @@
#include "BaseWeaponClass.h"
-#include "EndlessVendettaCharacter.h"
+#include "EndlessVendetta/EndlessVendettaCharacter.h"
#include "Components/CapsuleComponent.h"
#include "Kismet/GameplayStatics.h"
diff --git a/EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/BaseWeaponClass.h
rename to EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/PistolClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/PistolClass.cpp
rename to EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp
diff --git a/EndlessVendetta/Source/EndlessVendetta/PistolClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/PistolClass.h
rename to EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponItemClass.cpp
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.cpp
rename to EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponItemClass.cpp
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponItemClass.h
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/WeaponItemClass.h
rename to EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponItemClass.h
From fa3e28f07526029b4b3a69ab4c0c5763924a271e Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 29 Sep 2023 16:59:03 +0100
Subject: [PATCH 024/112] Created Gadget System Test Level
---
EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap | 3 +++
.../Content/StarterContent/Particles/P_Ambient_Dust.uasset | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
create mode 100644 EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
new file mode 100644
index 00000000..29995f18
--- /dev/null
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c379fa13b284e76785e0bca667577f04256220a612899c64cdfbbbaaf5b7c47
+size 99918
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index 919b2265..ec55f660 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c4e71b06a28a12efdd7d2eb8526af3f1821a01324d2a0e16feb3eb88bcf8c89f
+oid sha256:44be6c9290787003db24558430758031dda2c5017643f3439757379c9ec93051
size 53268
From fa8c6f681cfb6183da72451bbe62adb669e17d3a Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 29 Sep 2023 20:00:25 +0100
Subject: [PATCH 025/112] Implemented a Gadget Base and Manager
Tested using test gadgets without any behaviour beyond uelogs
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-
.../Input/Actions/IA_Combat.uasset | 3 +
.../FirstPerson/Input/Actions/IA_Recon.uasset | 3 +
.../FirstPerson/Input/IMC_Default.uasset | 4 +-
.../Content/Gadgets/GM_GadgetManager.uasset | 3 +
.../TestGadgets/CG_ExampleCombat.uasset | 3 +
.../Gadgets/TestGadgets/IA_UseGadget.uasset | 3 +
.../Gadgets/TestGadgets/IMC_Gadget.uasset | 3 +
.../TestGadgets/RC_ExampleRecon.uasset | 3 +
.../Content/Levels/GadgetSystemTestLevel.umap | 4 +-
.../Particles/P_Ambient_Dust.uasset | 4 +-
.../Props/MaterialSphere.uasset | 4 +-
.../EndlessVendettaCharacter.cpp | 51 +++++++++-
.../EndlessVendettaCharacter.h | 15 +++
.../GadgetSystem/CombatGadget.cpp | 5 +
.../GadgetSystem/CombatGadget.h | 17 ++++
.../GadgetSystem/GadgetBase.cpp | 92 +++++++++++++++++++
.../EndlessVendetta/GadgetSystem/GadgetBase.h | 83 +++++++++++++++++
.../GadgetClasses/ExampleCombatClass.cpp | 34 +++++++
.../GadgetClasses/ExampleCombatClass.h | 24 +++++
.../GadgetClasses/ExampleReconClass.cpp | 35 +++++++
.../GadgetClasses/ExampleReconClass.h | 25 +++++
.../GadgetSystem/GadgetManager.cpp | 45 +++++++++
.../GadgetSystem/GadgetManager.h | 75 +++++++++++++++
.../GadgetSystem/ReconGadget.cpp | 5 +
.../GadgetSystem/ReconGadget.h | 17 ++++
26 files changed, 553 insertions(+), 11 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Combat.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Recon.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/TestGadgets/CG_ExampleCombat.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/TestGadgets/IA_UseGadget.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/TestGadgets/IMC_Gadget.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.h
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 3966ce80..a993997e 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d567687e62b21f8c8c96c320928de71d9c2de143c13ae51aa7484f74e0abe0bc
-size 25589
+oid sha256:3192f3e53f9cde4484a9e8fd75184a71bf9ea1da5876fee94ceded15c274685a
+size 26191
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Combat.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Combat.uasset
new file mode 100644
index 00000000..0562b346
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Combat.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:00f4ed84367ee429face15faba364bc15ee2d562096d2f845a3a3a6deb69dc3d
+size 1360
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Recon.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Recon.uasset
new file mode 100644
index 00000000..aa886642
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Recon.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fc86691c4b8b22416ce275bedd78c738d4b9ee2ddcb59ea7c130933c15a290dd
+size 1355
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
index ea55777d..55abcd6c 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1006f1f08d6d5428a9c4689b38adff8ae38cb5a4b71ed3d8831ad0ef4da32363
-size 15167
+oid sha256:3af06cb5478091fcf55d1069e28395f32708276bd53cc5dce82faa2a2d1f822b
+size 16317
diff --git a/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset b/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
new file mode 100644
index 00000000..40b371f1
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e321d507454cc656ecee8ffaa8ce7a439b7bc824731e2932c160289609e6fe14
+size 22647
diff --git a/EndlessVendetta/Content/Gadgets/TestGadgets/CG_ExampleCombat.uasset b/EndlessVendetta/Content/Gadgets/TestGadgets/CG_ExampleCombat.uasset
new file mode 100644
index 00000000..154f762a
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/TestGadgets/CG_ExampleCombat.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5647c792435713b3b313153fd4a9985e6f0a69adca680e12c8e309ff35ee89b9
+size 29363
diff --git a/EndlessVendetta/Content/Gadgets/TestGadgets/IA_UseGadget.uasset b/EndlessVendetta/Content/Gadgets/TestGadgets/IA_UseGadget.uasset
new file mode 100644
index 00000000..6ff56db6
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/TestGadgets/IA_UseGadget.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:612640a4303e85695119bd2552ac09775debae2b5f0e4c04317f4b7bcf45680b
+size 1363
diff --git a/EndlessVendetta/Content/Gadgets/TestGadgets/IMC_Gadget.uasset b/EndlessVendetta/Content/Gadgets/TestGadgets/IMC_Gadget.uasset
new file mode 100644
index 00000000..bab4f88c
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/TestGadgets/IMC_Gadget.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c0a91a49b1c3887fd037daaa0033990d9f49625e36b765e196d5f5765a8638a
+size 2477
diff --git a/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset b/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
new file mode 100644
index 00000000..88a1933b
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:83a5888b61a03cd032e12e5ed42b2aa5f13ca709b06b50ed9726e7404419cfea
+size 29907
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 29995f18..7ae1bbe3 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9c379fa13b284e76785e0bca667577f04256220a612899c64cdfbbbaaf5b7c47
-size 99918
+oid sha256:5187272f65c655c1bbca4f6a814ab42219fcb74a566fb68d72cc23cfa8b92999
+size 101262
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index ec55f660..bf2e4391 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:44be6c9290787003db24558430758031dda2c5017643f3439757379c9ec93051
-size 53268
+oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d
+size 43456
diff --git a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
index 56bddfc9..b2376d1b 100644
--- a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
+++ b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3a8777c01491888bba9f40eda9d2bed76a611f0e80f75917501ce69c1a321342
-size 47333
+oid sha256:f5a41a71ca352997a9dba7abac1a00868a31a8942a621cb7d614a00c0d6311de
+size 47710
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 62ffd896..53174fdf 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -50,7 +50,11 @@ void AEndlessVendettaCharacter::BeginPlay()
Subsystem->AddMappingContext(DefaultMappingContext, 0);
}
}
-
+ AActor* GadgetManagerActor = GetWorld()->SpawnActor(GadgetManagerClass, GetActorLocation(), GetActorRotation());
+ GadgetManager = Cast(GadgetManagerActor);
+ FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+ GadgetManagerActor->AttachToComponent(GetRootComponent(), AttachmentRules);
+ GadgetManager->SpawnGadgets(GetRootComponent());
}
//////////////////////////////////////////////////////////////////////////// Input
@@ -70,6 +74,10 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
//Looking
EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::Look);
+ // Gadget Toggling
+ EnhancedInputComponent->BindAction(ReconAction, ETriggerEvent::Started, this, &AEndlessVendettaCharacter::ToggleRecon);
+ EnhancedInputComponent->BindAction(CombatAction, ETriggerEvent::Started, this, &AEndlessVendettaCharacter::ToggleCombat);
+
//Weapon Switching
EnhancedInputComponent->BindAction(EquipPrimaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipPrimary);
EnhancedInputComponent->BindAction(EquipSecondaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipSecondary);
@@ -79,6 +87,47 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
}
}
+void AEndlessVendettaCharacter::ToggleRecon()
+{
+ if (IsValid(PrimaryWeapon)) EquipPrimary();
+ if (IsValid(SecondaryWeapon)) EquipSecondary();
+
+ if (GadgetManager->IsReconEquipped())
+ {
+ GadgetManager->TryToUnequipRecon();
+ return;
+ }
+
+ if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat())
+ {
+ // Do nothing if combat is equipped and can't be unequipped at this moment
+ return;
+ }
+
+ GadgetManager->EquipRecon();
+}
+
+void AEndlessVendettaCharacter::ToggleCombat()
+{
+ if (IsValid(PrimaryWeapon)) EquipPrimary();
+ if (IsValid(SecondaryWeapon)) EquipSecondary();
+
+ if (GadgetManager->IsCombatEquipped())
+ {
+ GadgetManager->TryToUnequipCombat();
+ return;
+ }
+
+ if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon())
+ {
+ // Do nothing if recon is equipped and can't be unequipped at the moment
+ return;
+ }
+
+ GadgetManager->EquipCombat();
+}
+
+
//When 1 is pressed it calls EquipPrimary
void AEndlessVendettaCharacter::EquipPrimary()
{
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 46f3e4c0..cf41bef6 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -7,6 +7,7 @@
#include "GameFramework/Character.h"
#include "InputActionValue.h"
#include "Components/ArrowComponent.h"
+#include "GadgetSystem/GadgetManager.h"
#include "EndlessVendettaCharacter.generated.h"
class UWeaponInventory;
@@ -42,6 +43,12 @@ class AEndlessVendettaCharacter : public ACharacter
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
class UInputAction* MoveAction;
+ // Gadget Actions
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
+ UInputAction* ReconAction;
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
+ UInputAction* CombatAction;
+
/** Weapon Equip Action */
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
class UInputAction* EquipPrimaryWeapon;
@@ -61,6 +68,10 @@ public:
protected:
virtual void BeginPlay();
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ TSubclassOf GadgetManagerClass;
+ AGadgetManager* GadgetManager;
+
public:
/** Look Input Action */
@@ -99,6 +110,10 @@ protected:
/** Called for looking input */
void Look(const FInputActionValue& Value);
+
+ void ToggleRecon();
+
+ void ToggleCombat();
void EquipPrimary();
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.cpp
new file mode 100644
index 00000000..55976a01
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.cpp
@@ -0,0 +1,5 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "CombatGadget.h"
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.h
new file mode 100644
index 00000000..7175c889
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/CombatGadget.h
@@ -0,0 +1,17 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GadgetBase.h"
+#include "CombatGadget.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API ACombatGadget : public AGadgetBase
+{
+ GENERATED_BODY()
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp
new file mode 100644
index 00000000..107df86f
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp
@@ -0,0 +1,92 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "GadgetBase.h"
+
+#include "EnhancedInputComponent.h"
+#include "EnhancedInputSubsystems.h"
+
+// Sets default values
+AGadgetBase::AGadgetBase()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+}
+
+// Called when the game starts or when spawned
+void AGadgetBase::BeginPlay()
+{
+ Super::BeginPlay();
+
+ PlayerController = GetWorld()->GetFirstPlayerController();
+}
+
+// Called every frame
+void AGadgetBase::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+
+}
+
+void AGadgetBase::Equip()
+{
+ SetActorRelativeLocation(EquippedOffset);
+ Equipped = true;
+
+
+
+ UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(PlayerController->GetLocalPlayer());
+ Subsystem->AddMappingContext(GadgetMappingContext, 2);
+ UEnhancedInputComponent* EnhancedInputComponent = Cast(PlayerController->InputComponent);
+ EnhancedInputComponent->BindAction(ActivateAction, ETriggerEvent::Started, this, &AGadgetBase::Activate);
+}
+
+bool AGadgetBase::Unequip()
+{
+ if (GadgetInUse) return false;
+
+ SetActorRelativeLocation(UnequippedOffset);
+ Equipped = false;
+
+ UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(PlayerController->GetLocalPlayer());
+ Subsystem->RemoveMappingContext(GadgetMappingContext);
+ UEnhancedInputComponent* EnhancedInputComponent = Cast(PlayerController->InputComponent);
+ EnhancedInputComponent->ClearActionBindings();
+
+ return true;
+}
+
+void AGadgetBase::Activate()
+{
+ StartInUseTimer();
+}
+
+void AGadgetBase::FinishedUsing()
+{
+ UE_LOG(LogTemp, Warning, TEXT("Gadget is no longer being used"));
+
+ GadgetInUse = false;
+ InUseHandle.Invalidate();
+
+ StartGadgetCooldown();
+}
+
+// -------------- Timers --------------
+
+void AGadgetBase::StartGadgetCooldown()
+{
+ GadgetOnCooldown = true;
+ GetWorld()->GetTimerManager().SetTimer(CooldownHandle, this, &AGadgetBase::ReadyGadget, CooldownTime, false);
+}
+
+void AGadgetBase::StartInUseTimer()
+{
+ UE_LOG(LogTemp, Warning, TEXT("Gadget In Use Timer Started"));
+
+ GadgetInUse = true;
+ GetWorld()->GetTimerManager().SetTimer(InUseHandle, this, &AGadgetBase::FinishedUsing, GadgetMaxUptime, false);
+}
+
+
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
new file mode 100644
index 00000000..37f5190e
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
@@ -0,0 +1,83 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "EnhancedInputSubsystemInterface.h"
+#include "GameFramework/Actor.h"
+#include "GadgetBase.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API AGadgetBase : public AActor
+{
+ GENERATED_BODY()
+
+ APlayerController* PlayerController;
+
+ FTimerHandle CooldownHandle;
+ void StartGadgetCooldown();
+ bool GadgetOnCooldown = false;
+
+ FTimerHandle InUseHandle;
+ void StartInUseTimer();
+ bool GadgetInUse = false;
+
+ void ReadyGadget()
+ {
+ UE_LOG(LogTemp, Warning, TEXT("Gadget is now ready to be used again"));
+ GadgetOnCooldown = false;
+ }
+
+protected:
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ FVector EquippedOffset = FVector(0, 0, 0);
+
+ UPROPERTY(EditDefaultsOnly, CAtegory = "Gadget")
+ FVector UnequippedOffset = FVector(0, 0, -1000);
+
+ UPROPERTY(EditDefaultsOnly, cATEGORY = "Gadget")
+ float GadgetMaxUptime;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ float CooldownTime;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ UInputMappingContext* GadgetMappingContext;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ UInputAction* ActivateAction;
+
+ // Used by child classes to run custom gadget behaviour
+ virtual void Activate();
+
+ // Starts Cooldown and automatically unequips gadget, used by child classes to implement custom behaviour
+ virtual void FinishedUsing();
+
+ bool GadgetCantBeUsed()
+ {
+ return GadgetOnCooldown|| GadgetInUse;
+ }
+
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ bool Equipped = false;
+
+ void Equip();
+
+ // Return true if unequip succeeds
+ bool Unequip();
+
+ FVector GetUnequippedOffset()
+ {
+ return UnequippedOffset;
+ }
+
+ // Sets default values for this actor's properties
+ AGadgetBase();
+
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.cpp
new file mode 100644
index 00000000..4e759791
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.cpp
@@ -0,0 +1,34 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "ExampleCombatClass.h"
+
+void AExampleCombatClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+ SetActorTickEnabled(false);
+}
+
+
+void AExampleCombatClass::Tick(float DeltaSeconds)
+{
+ Super::Tick(DeltaSeconds);
+
+ UE_LOG(LogTemp, Warning, TEXT("Example Combat is being used..."));
+}
+
+void AExampleCombatClass::Activate()
+{
+ if (GadgetCantBeUsed()) return;
+
+ Super::Activate();
+ SetActorTickEnabled(true);
+}
+
+void AExampleCombatClass::FinishedUsing()
+{
+ SetActorTickEnabled(false);
+
+ Super::FinishedUsing();
+}
\ No newline at end of file
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.h
new file mode 100644
index 00000000..d53cfefb
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleCombatClass.h
@@ -0,0 +1,24 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "EndlessVendetta/GadgetSystem/CombatGadget.h"
+#include "ExampleCombatClass.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API AExampleCombatClass : public ACombatGadget
+{
+ GENERATED_BODY()
+
+ virtual void BeginPlay() override;
+
+ virtual void Tick(float DeltaSeconds) override;
+
+ virtual void Activate() override;
+
+ virtual void FinishedUsing() override;
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.cpp
new file mode 100644
index 00000000..cfa574cf
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.cpp
@@ -0,0 +1,35 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "ExampleReconClass.h"
+
+void AExampleReconClass::BeginPlay()
+{
+ Super::BeginPlay();
+ SetActorTickEnabled(false);
+}
+
+
+void AExampleReconClass::Tick(float DeltaSeconds)
+{
+ Super::Tick(DeltaSeconds);
+
+ UE_LOG(LogTemp, Warning, TEXT("Example Recon is being used..."));
+}
+
+void AExampleReconClass::Activate()
+{
+ if (GadgetCantBeUsed()) return;
+
+ Super::Activate();
+ SetActorTickEnabled(true);
+}
+
+void AExampleReconClass::FinishedUsing()
+{
+ SetActorTickEnabled(false);
+
+ Super::FinishedUsing();
+}
+
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.h
new file mode 100644
index 00000000..7abc52af
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/ExampleReconClass.h
@@ -0,0 +1,25 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "EndlessVendetta/GadgetSystem/ReconGadget.h"
+#include "ExampleReconClass.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API AExampleReconClass : public AReconGadget
+{
+ GENERATED_BODY()
+
+ virtual void BeginPlay() override;
+
+ virtual void Tick(float DeltaSeconds) override;
+
+ virtual void Activate() override;
+
+ virtual void FinishedUsing() override;
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp
new file mode 100644
index 00000000..6e5a8ee4
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp
@@ -0,0 +1,45 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "GadgetManager.h"
+
+// Sets default values
+AGadgetManager::AGadgetManager()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+}
+
+// Called when the game starts or when spawned
+void AGadgetManager::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void AGadgetManager::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+
+}
+
+void AGadgetManager::SpawnGadgets(USceneComponent* PlayersRootComponent)
+{
+ if (!IsValid(ReconClass) || !IsValid(CombatClass)) UE_LOG(LogTemp, Fatal, TEXT("Recon or Combat class hasn't been set"));
+
+ FActorSpawnParameters SpawnParams;
+ SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ const FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+
+ AActor* SpawnedActor = GetWorld()->SpawnActor(ReconClass, GetActorLocation(), GetActorRotation(), SpawnParams);
+ ReconGadget = Cast(SpawnedActor);
+ SpawnedActor->AttachToComponent(PlayersRootComponent, AttachmentRules);
+ SpawnedActor->SetActorRelativeLocation(ReconGadget->GetUnequippedOffset());
+
+ SpawnedActor = GetWorld()->SpawnActor(CombatClass, GetActorLocation(), GetActorRotation(), SpawnParams);
+ CombatGadget = Cast(SpawnedActor);
+ SpawnedActor->AttachToComponent(PlayersRootComponent, AttachmentRules);
+ SpawnedActor->SetActorRelativeLocation(CombatGadget->GetUnequippedOffset());
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
new file mode 100644
index 00000000..837c1222
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
@@ -0,0 +1,75 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "CombatGadget.h"
+#include "ReconGadget.h"
+#include "GameFramework/Actor.h"
+#include "GadgetManager.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API AGadgetManager : public AActor
+{
+ GENERATED_BODY()
+
+ AReconGadget* ReconGadget;
+ ACombatGadget* CombatGadget;
+
+protected:
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ TSubclassOf ReconClass;
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ TSubclassOf CombatClass;
+
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ void SpawnGadgets(USceneComponent* PlayersRootComponent);
+
+ // Sets default values for this actor's properties
+ AGadgetManager();
+
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+ void EquipRecon()
+ {
+ ReconGadget->Equip();
+ }
+
+ void EquipCombat()
+ {
+ CombatGadget->Equip();
+ }
+
+ bool IsReconEquipped()
+ {
+ return ReconGadget->Equipped;
+ }
+
+ bool IsCombatEquipped()
+ {
+ return CombatGadget->Equipped;
+ }
+
+ bool TryToUnequipRecon()
+ {
+ if (ReconGadget->Equipped)
+ {
+ return ReconGadget->Unequip();
+ }
+ return false;
+ }
+
+ bool TryToUnequipCombat()
+ {
+ if (CombatGadget->Equipped)
+ {
+ return CombatGadget->Unequip();
+ }
+ return false;
+ }
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.cpp
new file mode 100644
index 00000000..03c10623
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.cpp
@@ -0,0 +1,5 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "ReconGadget.h"
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.h
new file mode 100644
index 00000000..7122d3bb
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/ReconGadget.h
@@ -0,0 +1,17 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GadgetBase.h"
+#include "ReconGadget.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API AReconGadget : public AGadgetBase
+{
+ GENERATED_BODY()
+
+};
From 6cf1fc1869a03b5edb7ed0fdeb39a30c8e92aeae Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sat, 30 Sep 2023 11:58:53 +0100
Subject: [PATCH 026/112] Implemented Unequipping Gadgets when Equipping Gun
---
.../Gadgets/TestGadgets/RC_ExampleRecon.uasset | 2 +-
.../StarterContent/Architecture/Floor_400x400.uasset | 4 ++--
.../StarterContent/Props/MaterialSphere.uasset | 4 ++--
.../EndlessVendetta/EndlessVendettaCharacter.cpp | 12 ++++++++++++
4 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset b/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
index 88a1933b..484c5c92 100644
--- a/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
+++ b/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:83a5888b61a03cd032e12e5ed42b2aa5f13ca709b06b50ed9726e7404419cfea
+oid sha256:1c4186b567ed68cae389b7f52baee361aec478d019d5b727ecc6132b12c8d02b
size 29907
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index c2a34afc..8a892c7b 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
-size 14948
+oid sha256:4bad1f067f8be7d35d0fdde8fb883c0f0ec45cedecadc67f58f2f0d9b4e484fb
+size 14831
diff --git a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
index b2376d1b..56bddfc9 100644
--- a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
+++ b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f5a41a71ca352997a9dba7abac1a00868a31a8942a621cb7d614a00c0d6311de
-size 47710
+oid sha256:3a8777c01491888bba9f40eda9d2bed76a611f0e80f75917501ce69c1a321342
+size 47333
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 53174fdf..1f197632 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -131,6 +131,12 @@ void AEndlessVendettaCharacter::ToggleCombat()
//When 1 is pressed it calls EquipPrimary
void AEndlessVendettaCharacter::EquipPrimary()
{
+ // Marcel I respect you, like you and what not, please for the love of god don't touch these two guard clauses
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;/////////////////////////
+ if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;///////////////////////
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
//If primary weapon is not there but secondary weapon is it will call equipSecondary.
//EquipSecondary checks and sees that secondary is there so it will call to destroy itself
//Code goes back and sees primary weapon is not there anymore and spawns it in.
@@ -162,6 +168,12 @@ void AEndlessVendettaCharacter::EquipPrimary()
void AEndlessVendettaCharacter::EquipSecondary()
{
+ // Marcel I respect you, like you and what not, please for the love of god don't touch these two guard clauses
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;/////////////////////////
+ if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;///////////////////////
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
if (!IsValid(SecondaryWeapon))
{
if (IsValid(PrimaryWeapon)) EquipPrimary();
From f2215f05e4c6bc7bde67adac53d49e0644233a17 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sat, 30 Sep 2023 16:05:28 +0100
Subject: [PATCH 027/112] Fixed Missing Ref when Quickly Switching Equipment
---
.../TestGadgets/RC_ExampleRecon.uasset | 4 +-
.../Architecture/Floor_400x400.uasset | 4 +-
.../Particles/P_Ambient_Dust.uasset | 4 +-
.../EndlessVendettaCharacter.cpp | 132 ++++++++++++------
.../GadgetSystem/GadgetManager.h | 10 +-
5 files changed, 96 insertions(+), 58 deletions(-)
diff --git a/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset b/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
index 484c5c92..7630574b 100644
--- a/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
+++ b/EndlessVendetta/Content/Gadgets/TestGadgets/RC_ExampleRecon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1c4186b567ed68cae389b7f52baee361aec478d019d5b727ecc6132b12c8d02b
-size 29907
+oid sha256:0d162dc461b9db3b93d49bf5d7abe2a0b1a96faba906ab9faef43bb9fed45ca5
+size 29969
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index 8a892c7b..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4bad1f067f8be7d35d0fdde8fb883c0f0ec45cedecadc67f58f2f0d9b4e484fb
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index bf2e4391..16ecae3d 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d
-size 43456
+oid sha256:64419a367bb9a6ffc554aad1ea3a6c988438aa4ff5d6f712c1702664d5fb9e0f
+size 53268
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 1f197632..b54d9bab 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -131,76 +131,120 @@ void AEndlessVendettaCharacter::ToggleCombat()
//When 1 is pressed it calls EquipPrimary
void AEndlessVendettaCharacter::EquipPrimary()
{
+ if (IsValid(PrimaryWeapon))
+ {
+ PrimaryWeapon->Destroy();
+ PrimaryWeapon = nullptr;
+ bHasRifle = false;
+ return;
+ }
+
+ if (IsValid(SecondaryWeapon)) EquipSecondary();
+
// Marcel I respect you, like you and what not, please for the love of god don't touch these two guard clauses
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;/////////////////////////
if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;///////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ FActorSpawnParameters spawnParams;
+ spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+
+ bHasRifle = true;
+ //Creating a new actor object called PrimaryWeapon that is based off primaryweaponClass
+ AActor* PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams);
+ PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ //Changing PrimaryWeaponActor to ABaseWeaponClass type instead of actor and storing it into PrimaryWeapon which is a ABaseClass Object
+ //We do this because we need to check if PrimaryWeapon is equipped and we want primaryweapon to be ABaseWeapon type and not a generic AActor
+ PrimaryWeapon = Cast(PrimaryWeaponActor);
//If primary weapon is not there but secondary weapon is it will call equipSecondary.
//EquipSecondary checks and sees that secondary is there so it will call to destroy itself
//Code goes back and sees primary weapon is not there anymore and spawns it in.
//Same thing for the EquipSecondary()
- if (!IsValid(PrimaryWeapon))
- {
- if (IsValid(SecondaryWeapon)) EquipSecondary();
- UE_LOG(LogTemp, Display, TEXT("Primary equipped"));
- bHasRifle = true;
- FActorSpawnParameters spawnParams;
- spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
- //Creating a new actor object called PrimaryWeapon that is based off primaryweaponClass
- AActor* PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams);
- PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
- //Changing PrimaryWeaponActor to ABaseWeaponClass type instead of actor and storing it into PrimaryWeapon which is a ABaseClass Object
- //We do this because we need to check if PrimaryWeapon is equipped and we want primaryweapon to be ABaseWeapon type and not a generic AActor
- PrimaryWeapon = Cast(PrimaryWeaponActor);
-
- }
- else if (IsValid(PrimaryWeapon))
- {
- PrimaryWeapon->Destroy();
- bHasRifle = false;
-
- }
+
+ // if (!IsValid(PrimaryWeapon))
+ // {
+ // if (IsValid(SecondaryWeapon)) EquipSecondary();
+ //
+ // UE_LOG(LogTemp, Display, TEXT("Primary equipped"));
+ // bHasRifle = true;
+ // FActorSpawnParameters spawnParams;
+ // spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ // FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+ // //Creating a new actor object called PrimaryWeapon that is based off primaryweaponClass
+ // AActor* PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams);
+ // PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ // //Changing PrimaryWeaponActor to ABaseWeaponClass type instead of actor and storing it into PrimaryWeapon which is a ABaseClass Object
+ // //We do this because we need to check if PrimaryWeapon is equipped and we want primaryweapon to be ABaseWeapon type and not a generic AActor
+ // PrimaryWeapon = Cast(PrimaryWeaponActor);
+ //
+ // }
+ // else if (IsValid(PrimaryWeapon))
+ // {
+ // PrimaryWeapon->Destroy();
+ // bHasRifle = false;
+ // }
}
void AEndlessVendettaCharacter::EquipSecondary()
{
+ if (IsValid(SecondaryWeapon))
+ {
+ SecondaryWeapon->Destroy();
+ SecondaryWeapon = nullptr;
+ bHasRifle = false;
+ return;
+ }
+
+ if (IsValid(PrimaryWeapon)) EquipPrimary();
+
// Marcel I respect you, like you and what not, please for the love of god don't touch these two guard clauses
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;/////////////////////////
if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;///////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- if (!IsValid(SecondaryWeapon))
- {
- if (IsValid(PrimaryWeapon)) EquipPrimary();
- UE_LOG(LogTemp, Display, TEXT("Secondary equipped"));
- bHasRifle = true;
- FActorSpawnParameters spawnParams;
- spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
- AActor* SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams);
- SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
- SecondaryWeapon = Cast(SecondaryWeaponActor);
- }
- else if (IsValid(SecondaryWeapon))
- {
- SecondaryWeapon->Destroy();
- bHasRifle = false;
- }
+ FActorSpawnParameters spawnParams;
+ spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+
+ bHasRifle = true;
+ AActor* SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams);
+ SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ SecondaryWeapon = Cast(SecondaryWeaponActor);
+
+ // if (!IsValid(SecondaryWeapon))
+ // {
+ // if (IsValid(PrimaryWeapon)) EquipPrimary();
+ //
+ // UE_LOG(LogTemp, Display, TEXT("Secondary equipped"));
+ // bHasRifle = true;
+ // FActorSpawnParameters spawnParams;
+ // spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ // FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
+ // AActor* SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams);
+ // SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
+ // SecondaryWeapon = Cast(SecondaryWeaponActor);
+ // }
+ // else if (IsValid(SecondaryWeapon))
+ // {
+ // SecondaryWeapon->Destroy();
+ // bHasRifle = false;
+ // }
+
}
//Calls the fire function in the baseWeaponClass
void AEndlessVendettaCharacter::TapFireCaller()
{
- if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
- {
- PrimaryWeaponClass.GetDefaultObject()->TapFire();
- }
+ UE_LOG(LogTemp, Warning, TEXT("Tap Fire"));
+ // if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
+ // {
+ // PrimaryWeaponClass.GetDefaultObject()->TapFire();
+ // }
}
//POTENTIAL PICKUP SYSTEM NEEDS CHANGING BUT YES
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
index 837c1222..7935ac0d 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
@@ -56,19 +56,13 @@ public:
bool TryToUnequipRecon()
{
- if (ReconGadget->Equipped)
- {
- return ReconGadget->Unequip();
- }
+ if (ReconGadget->Equipped) return ReconGadget->Unequip();
return false;
}
bool TryToUnequipCombat()
{
- if (CombatGadget->Equipped)
- {
- return CombatGadget->Unequip();
- }
+ if (CombatGadget->Equipped) return CombatGadget->Unequip();
return false;
}
From 56e7a2a9e32f5ed57f4edae4d0ea7ed782edc211 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sat, 30 Sep 2023 17:18:21 +0100
Subject: [PATCH 028/112] Imported UE5 Mannequin Pack for Temp Enemies
Official Unreal Mannequins from the third person template project
---
.../Characters/Mannequins/Animations/ABP_Manny.uasset | 3 +++
.../Characters/Mannequins/Animations/ABP_Quinn.uasset | 3 +++
.../Mannequins/Animations/Manny/BS_MM_WalkRun.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Idle.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Jump.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Land.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset | 3 +++
.../Mannequins/Animations/Manny/MM_Walk_InPlace.uasset | 3 +++
.../Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset | 3 +++
.../Characters/Mannequins/Animations/Quinn/MF_Idle.uasset | 3 +++
.../Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset | 3 +++
.../Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset | 3 +++
.../Mannequins/Materials/Functions/CA_Mannequin.uasset | 3 +++
.../Mannequins/Materials/Functions/ChromaticCurve.uasset | 3 +++
.../Mannequins/Materials/Functions/MF_Diffraction.uasset | 3 +++
.../Mannequins/Materials/Functions/MF_logo3layers.uasset | 3 +++
.../Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset | 3 +++
.../Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset | 3 +++
.../Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset | 3 +++
.../Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset | 3 +++
.../Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset | 3 +++
.../Characters/Mannequins/Materials/M_Mannequin.uasset | 3 +++
.../Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset | 3 +++
.../Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset | 3 +++
.../Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset | 3 +++
.../Characters/Mannequins/Meshes/SK_Mannequin.uasset | 3 +++
.../Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset | 3 +++
.../Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset | 3 +++
.../Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset | 3 +++
.../Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset | 3 +++
.../Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset | 3 +++
.../Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset | 3 +++
.../Content/StarterContent/Particles/P_Ambient_Dust.uasset | 2 +-
125 files changed, 373 insertions(+), 1 deletion(-)
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset
new file mode 100644
index 00000000..06510ed2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eeacdc8b0f92b8e16dd2cf4ed7e919feadf650736072c9efd4f5f77499eb62d9
+size 377396
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset
new file mode 100644
index 00000000..301842c6
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e423711c22cbb84b4249a04385d8f5c398a5e9c5d237516ff0db3a8dccefc96
+size 39372
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
new file mode 100644
index 00000000..73c543f1
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2acc29c41680b4c399ffacd3299289c2e98f6770c099f55495218754a8390d2a
+size 8851
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
new file mode 100644
index 00000000..8979d182
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dcaaea03f57149cff7cd81e7e7f598e85e252378b0d84202824c63055ea7fc26
+size 616720
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
new file mode 100644
index 00000000..8ffff7be
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a315ff6ecf54d4e1abe6600072267a2a20cb83e990d2ee91fa1fad63fa3c25e0
+size 838022
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
new file mode 100644
index 00000000..924ae4fc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bfd7488afe83d1d50faae6b6c281c4889f739ea6b4bfc7fbfbcb9e1c399ed75
+size 209468
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset
new file mode 100644
index 00000000..42e11bb3
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:05de3888c5a29ab643f74adf4d588a72b1ee547520c049520e3c90b9cd91bc2f
+size 210231
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
new file mode 100644
index 00000000..70eb9d5f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:779b8f8fd668b9b3ac255796b5eb505b38582a5f3a6a14d21015746c427f5203
+size 233628
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
new file mode 100644
index 00000000..01750427
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b554f588731ccc2ab91017696d6edc189e8d905f3bd1658aa0bbb52fb56d9f2a
+size 323175
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
new file mode 100644
index 00000000..10d9e0aa
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c5b75829aa4fa7d1400ab98858ae3ff499c7473bb12487e9e58c853e500ebc90
+size 565708
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
new file mode 100644
index 00000000..34e0bb3c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1842726ff2d091261376cfb631645e1f6e676edc7c8332d6edc6bbf8b4306ab7
+size 8891
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
new file mode 100644
index 00000000..cc05e290
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aed5bfcce6e424c3fde1fe69bbb2a5b4406b78109ed9818e2f0de85096f5d883
+size 869685
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
new file mode 100644
index 00000000..3793707b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ef6b3b0d8435fa4aa92bbf22317e265446ddcab34f2596258f4316a8f52f275
+size 381450
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
new file mode 100644
index 00000000..b65637cb
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68fae0ca27a7cffec957a549bdd37e0637162981b41de6018b720de4201ec5de
+size 400317
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
new file mode 100644
index 00000000..ca441994
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:923f69a89ca9a3c34e2dcb3b0be8fdeb180f0d5f5781c2f5aed93591434df0d4
+size 4654
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
new file mode 100644
index 00000000..98a22005
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2db73d6d14a4bfe11d2aefec2a6ed72dbceaa7fc658de55a7ce1037aaa2da15
+size 6118
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
new file mode 100644
index 00000000..d6efab0e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0461c5e62fb008d178b4a23172511cdfb3f2f29d3201dedbae3014e979ac3a53
+size 31748
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
new file mode 100644
index 00000000..50716752
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:43c4cf35c7e847de2ee6e93c086e18c2163a9b09e095b170a3b8e66941aa689c
+size 55701
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
new file mode 100644
index 00000000..3e526b8c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e8d8f5cdab9bd468ad3731719000cbd72134a64aed69bd6a2349241b6c08ef8
+size 13422
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
new file mode 100644
index 00000000..bb3aa5e4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a854b2354341c525668b120e3fdfc356d58d51a3297394ee471ae8b14a9a1bf0
+size 21243
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
new file mode 100644
index 00000000..128b32dc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b651ac85f23b43b1751155bb479766d66ae1db4bfdd1b191d1c6526988d003fe
+size 24277
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
new file mode 100644
index 00000000..76c30741
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cae533968c2178e476733efcd12b1d7d03b9cdd8ca50bd0f90da77ad3edd3ab5
+size 19288
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
new file mode 100644
index 00000000..82cfe40b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64032da0d5072a3c4447f603c63a1ffb33990cfdc69573d0817c9c02f717919a
+size 24636
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset
new file mode 100644
index 00000000..982d1365
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:10d06ca935972621ab0699abd560d3a31343dba40248d21cede0704b31bc735c
+size 83055
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
new file mode 100644
index 00000000..76e83de3
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d1832b78f81bbe3c7cbc648c7c25b0af352605e25c35f7de5b8ece4668d57ef0
+size 18631
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset
new file mode 100644
index 00000000..97ff8bac
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2563c3549a2e563431c27c7c082960b18a53b503299ce6b92c61460436290879
+size 34534206
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
new file mode 100644
index 00000000..8d9a50e4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:830f40a8cd84a39637256dee341382ec0e91968cfb44db724bfed2f91af1c775
+size 18526672
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset
new file mode 100644
index 00000000..6fdb30df
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:63f14e9f8aac7d52b18078b8d50648c9957cedd09007c225a8f3e8776cd68265
+size 36495213
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
new file mode 100644
index 00000000..fe094e23
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:048c0ae462fb0dffc00b29b554070db7e7246a9369e2a00931ec5729c1ad7312
+size 19371051
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset
new file mode 100644
index 00000000..8ce47365
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:215ed40ad2c8290531cf50ead108221d2aa6af461636a98cf891e63775446616
+size 119087
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
new file mode 100644
index 00000000..78071b7c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:592779e91fc8ed09e4d2e71852ff4af108050e37d3a82b0f5b300c7712ff2966
+size 462272
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
new file mode 100644
index 00000000..644a100d
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c51c2993e09be99e3480af0ce30ac7d4f5299e3cb1ea95deeff583789794353
+size 462170
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset
new file mode 100644
index 00000000..61dbe44b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e370a6ffd00112b7f6189e99703b5920f09664f686733de528c485126356fa19
+size 4168573
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
new file mode 100644
index 00000000..18f1fb5d
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e30a862ca99af96f3d0877538c5140c9e2b989df252d52468eabdb872ec45cc
+size 590359
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
new file mode 100644
index 00000000..55fd98be
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46c93ec5db984971aaa40cc7e63ecd07f415bce492403bedfaecb755b415ef53
+size 16002462
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
new file mode 100644
index 00000000..65fc2cf2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5aec7fd100ef8687ac4cf56996eb22de4d6833e7361b7c61b31685e94e7d6796
+size 2335736
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset
new file mode 100644
index 00000000..f50d2d95
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cab1d297286a5bc0e62b5c3dd86af3f178e7c8f4710e4dc1203868894b3e132
+size 143134
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset
new file mode 100644
index 00000000..987b2548
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d082d00558bf6ea9284f65623cee82f4f9a823adf2883b0ca7172352e8916fc6
+size 63662
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
new file mode 100644
index 00000000..92e00056
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b59f701e426315cadfd16453f1445cab8f23caca24bed38e77e0a26031f18101
+size 64816
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
new file mode 100644
index 00000000..8f8c5f06
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ebe608a1bb96251dc4aa098caefeb3c7aac17c5f952383950e29a744ae62b18e
+size 207223
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
new file mode 100644
index 00000000..87a69787
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bf6059f576b4cc9ccd78a90eed7cf3cd6ae1d2bbd51be46ee313e3584e75833c
+size 64826
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
new file mode 100644
index 00000000..050dafb1
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b350e80733131422cfa702d41f3df2ce96e00d2afb441d2fb5d746014504380
+size 207223
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
new file mode 100644
index 00000000..55d25794
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b37dfd7dba3014752915db44545ee334eeda25409a738b99ded3b2074fccbfcb
+size 64852
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
new file mode 100644
index 00000000..39f87a29
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:790016bfdb567b8200e0cd84f76d6f11a831e057054d7dcf8374b30d79a3df5b
+size 205529
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
new file mode 100644
index 00000000..532b46c2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd400f5be56c758ff5394dbb683c5169d0848b0ba9d09f9e6c272e3bf3f10ab5
+size 64854
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
new file mode 100644
index 00000000..b8d0058f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb0713e0451b39d49c5cdac5cd1ee4f9154bfd1423098cf4195686df3c4d20d8
+size 206131
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
new file mode 100644
index 00000000..cab49123
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c5f150d98767071f4bcd28bdfde1685fee9d40aa1d5d82434c518d40ad6b3b30
+size 52824
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
new file mode 100644
index 00000000..af8531d0
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:142101f70f42f02f41199706477b99874c75bcefd0f277fbdea47ba7de193741
+size 131969
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
new file mode 100644
index 00000000..a653463e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40b46c0ef3ddba150b14bc4c3263e515300ebc72dd88419c9e027334e3c6082d
+size 52826
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
new file mode 100644
index 00000000..5d3c11c4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df08784aa1c599d205e05ba57d9348381e6db5f74d2332e3449f62df981d2bda
+size 131969
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
new file mode 100644
index 00000000..d3043a5f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:112cb9ce37a704413410f4996e4a3ee04b54b27a08e023e6ad3939b16b422552
+size 58824
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
new file mode 100644
index 00000000..b887852a
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27f7d9ff395a01d762166107f3c8fb43b9862b0785750e185e25fa1dd86ce29c
+size 168999
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
new file mode 100644
index 00000000..46de699f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b1b2777419bfc49e444bf34c4ec6bb1427b8bb829c92ccfcf0f979e2dd90ddd7
+size 58826
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
new file mode 100644
index 00000000..6aba1f00
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6f73d48f424e90b916123b37783fbe47b568e53ffbbf16bfc3599978f3e7badd
+size 168999
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
new file mode 100644
index 00000000..f98cb1c6
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69ccff3cc8a6ed58eff6463be1f8d5290f3fde12b91e72ffd5c93a852bc177ee
+size 127276
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
new file mode 100644
index 00000000..f8b77ff9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3b7caf543c0b38805f75fd1406e26520a1124b2c1ca3aa81792ae5c897d20741
+size 361441
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
new file mode 100644
index 00000000..55866a7e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:32d442c2f889f74f96be4a678e84f4ddfbda7a6231bfcf073d8259c9257079c8
+size 88854
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
new file mode 100644
index 00000000..4c001f2b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:327e6b5cb9d426c10f21ea1e5e2f6004761016a0e11361aed240a8a493f35dbc
+size 361441
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
new file mode 100644
index 00000000..a8234112
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:153a9f670d5612852b3bdfb1e5911dd3ba13f00a53e01c004cd6c0625a4e25cd
+size 118833
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
new file mode 100644
index 00000000..fc5710d4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24ee80de174ae79555219f1eb7a12d5cbaabac6b42fae59421dd8192e754be55
+size 557766
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
new file mode 100644
index 00000000..2e838034
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e61e506bc006d9db0ba4a0469b48984dd9ca90cb4caf89db100ff7b43cbbbd00
+size 118835
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
new file mode 100644
index 00000000..f08619af
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c02f07aa3e4f0a0229508f410901cbc56c18adc334d51e4ab58b11b039b150e2
+size 557766
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
new file mode 100644
index 00000000..dde86b2e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:16c364d55b05f67bbffb4ed23cc5d0333fe5611c82380a74aed7e11371a32d1d
+size 130854
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
new file mode 100644
index 00000000..6c78a0dc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:747e14c6054a2c809011c3aac243f4438bd929183d6b24dc05c827c6599eec04
+size 641430
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
new file mode 100644
index 00000000..e9dc936a
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:922fddcf4264b66d389f61b7c5e5effcef2aca70f48c98d41fec4514a250cc2c
+size 130856
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
new file mode 100644
index 00000000..a5e78588
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:de4cec17652b3232f12905381e0fb3085486b47f8c169d8988dc1573aa98ab99
+size 629992
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
new file mode 100644
index 00000000..309aed01
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9d1e68764a3e6438bf344c38faff188298708652d54a14bf16e4c6d42f16ee13
+size 71463
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
new file mode 100644
index 00000000..d635f868
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df7fddc20d642dfee60ee24b42b7cdfb8181ef77b63590173c227bedb37c996e
+size 244960
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
new file mode 100644
index 00000000..b860ce2f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:34ea78c58adb22c006f9030cbc238c1f22fa3060857de5ce75374dc694cd0bb6
+size 109521
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
new file mode 100644
index 00000000..0f1c58ba
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:baeebcaeab8371ac6d2c113396d402bc7ce4d0279d9ac47ba70a870bfcf7e2ff
+size 245041
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
new file mode 100644
index 00000000..8b1c8220
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb3cb479595daad83cbd3f700bddaa0f7cf3a5173a6b470ba03ff22cf7b63a9d
+size 103489
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
new file mode 100644
index 00000000..619dca36
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a2ee7b5868b5af8dc3dc0441986980bc3a72db7f9989798d08c0ee43b41c728
+size 205712
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
new file mode 100644
index 00000000..568122ff
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be091ffa3cd99911432a60807d3df1a1790dbd9c5f311274eee61df93221a8a2
+size 65171
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
new file mode 100644
index 00000000..7a436416
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d6cbf50e59d7484b0e5e96e2d76c2a152d960804778599f60273f3bc07b27a22
+size 205813
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
new file mode 100644
index 00000000..67fa2677
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e1c2166fca7cd0381f733bee6c0f93697fb4a01aa24be032fcff672d31a4518b
+size 53141
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
new file mode 100644
index 00000000..53474c50
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf437126561ca844185fab690f3f52b5102768f78c9dbf6090e7c07778f95685
+size 131952
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
new file mode 100644
index 00000000..70ad1394
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9b384a47ef153f631d9ef77d5074e97fd608d17932f82eba5b896072be8634d
+size 53143
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
new file mode 100644
index 00000000..417f3946
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac044481c0edcc833e959a64fc0d1185d1c07d9abd95674f7861b9e81868c202
+size 131952
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
new file mode 100644
index 00000000..ec3be71f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:35d5a7296f4b2f06506bc1804a0f8a1b5acd6b277450a8f16c66667a1a5ce79d
+size 59141
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
new file mode 100644
index 00000000..8f46f2f5
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8bb2a9106bfe27f7edc51a421346adeb114bc03e3d28b02e11680a7afac5e87
+size 168982
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
new file mode 100644
index 00000000..68b24613
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf604470532fda86259c302e289344845dec4534a587a08d90ccd471a6d5015a
+size 59143
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
new file mode 100644
index 00000000..dec28731
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b74a369ae02fcba33cc58eb0adea2b9e75aa23f765e90153d7431544b2ab62ed
+size 168982
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
new file mode 100644
index 00000000..09e63c52
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9811d92c228fcc359c7ea4a8edd75654250872b2d53afafb15ce5b544e4e4b4
+size 95170
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
new file mode 100644
index 00000000..ddfe6f8b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df72c191c2ca9520e199904e02662a18703a6a6a1932b460ec4ab87875581932
+size 399362
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
new file mode 100644
index 00000000..27d5a7ca
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a4afc263c634f34988b35d831c31797a2b5caf793d18b2c9ced7463d87a67432
+size 95172
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
new file mode 100644
index 00000000..f8388f33
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a1aca955ce2d3f39ecc3f99ba4e84ff15efa2c739aca482bed9c832f8974a16
+size 399362
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
new file mode 100644
index 00000000..57c4da95
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80291d670ebbf2bf83e00b8eb5cf778bdcce65c69e6d5ded19de0735f259e725
+size 119150
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
new file mode 100644
index 00000000..bfc7a63e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f02da143850cb1e7530144714de054cadf0360af342779ce7dde8e6c702b39f5
+size 557448
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
new file mode 100644
index 00000000..791b5783
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5290046e20673b247d12f49b09dfc6345fc9c3ed94d69d4c27eb36939224af44
+size 119152
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
new file mode 100644
index 00000000..9b1dd61f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7d64cf78ef6c012d5a5473681f2e30958ed9b9e316a1ae5c067fdcfd4bab2dff
+size 557448
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
new file mode 100644
index 00000000..1de13a5d
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44579e38e5daa8cdf0ea5e91e5615c559a4ff49af59e219813a73f70fe3669aa
+size 107171
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
new file mode 100644
index 00000000..4411b7e9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b8395312c3806b120b145e0f12d121470cdbd3cd5f20920b6a57ff7b3768faa5
+size 485273
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
new file mode 100644
index 00000000..697794ab
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57abcd99441bf8add532a089ed4e4d84f0d9a4cde364a7fbb257a93a4360abec
+size 107173
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
new file mode 100644
index 00000000..38e3461b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ef3cf53ba9d8e6cd365bbaf0872feeed031fb8df636e5ad98a371e70909e75c9
+size 488283
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
new file mode 100644
index 00000000..d35d1f94
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ec102df7e53ef4385079d0cae403bb9c3e666b0a04bf32b1148563083de5f76
+size 13589
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
new file mode 100644
index 00000000..4f63c941
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9d6193987025eb29f967d5ccb5b7901b4381e5c10e415db41c176ea4572ef11
+size 3612394
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
new file mode 100644
index 00000000..cc3a87eb
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afe938a994f15b8fe1e0342e614635923745e83907b73dfaf9e622c963a53dad
+size 18513946
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..b87cea11
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c0ec57bdad72c7ed955916bc3046c68b30952ee6f03b2a85ec227fede620b362
+size 10271764
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
new file mode 100644
index 00000000..54ae2e0e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:19c9590688726f55ab28ec7af40adc894c445eda255b7799c06a3351a8fd5dcf
+size 5740132
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
new file mode 100644
index 00000000..4fc7f16e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f853e5fe06fd03309769cd2dd656e56ece60ef917d53178cdbd55c8832aeb0b0
+size 11037967
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
new file mode 100644
index 00000000..5bc356d7
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b03f66c9332142ba3ced19ddc37cf332794c045e2d43a7bb676c4a4b06e36061
+size 7198028
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
new file mode 100644
index 00000000..4dee7ebb
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:82a54cc8769089d8d874e4dee8978893d454dc3e91672c701233e3765bb6039f
+size 1357549
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
new file mode 100644
index 00000000..9ad1a156
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ded416115c3f655485bcb55362ea06fbe8f47440d4be9b3fd7ed88ba7546c57
+size 8341170
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
new file mode 100644
index 00000000..fbeb06b4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:321087605f95eb2e4842e14a50c6103b9068a57a6243e2d0fa873686684baad0
+size 21139305
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..434d166f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:176ddc8fedd7f83cf83f50834db2bd66a5d9242a40e2caec5be50dd2f70dd830
+size 13143835
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
new file mode 100644
index 00000000..66be3576
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a8b6209275181a583ecf7cc09fddfbd572bd84cf0d1c4fb37d6a83cec57d783e
+size 9033300
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
new file mode 100644
index 00000000..6c01dcd3
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4231e9852bad86777fc300d63dbaa79d39f02e05f014894e0b2d04cef1f8a3e0
+size 13677393
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
new file mode 100644
index 00000000..054a64a5
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:766a04e3601e2f7a05e6a98a8ebcc686bbca8bcaacc03291f869068c40cf44cd
+size 7269112
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
new file mode 100644
index 00000000..bba8ece2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ebbf4022a70efdc480e3880867d3a772ca2f13577514eb6b5cd9175ecc8b7ac2
+size 2153569
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
new file mode 100644
index 00000000..dc1695f8
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9b2dbe21cd947d3615eba6478966f3521b05d09211e0628184134bfd906e21f
+size 16108379
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
new file mode 100644
index 00000000..f2d4d67c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd16576a92ac50a81a69f0fc1c4fee4f5a671d819f698639479a41dffcc6045e
+size 4710914
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
new file mode 100644
index 00000000..f44f47dc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3b8e783361011ce33b9dea10f1bdd8f915b12efb3d3ace5c5b6d5049e7f404f9
+size 11655926
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
new file mode 100644
index 00000000..330656e7
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb239cf13f6e7761a95442749a7a68d44bbb075e9dd965277107313eb8e5b290
+size 5217455
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
new file mode 100644
index 00000000..8cfa1129
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:faed00de843abcb013d3b59b9ff4025a7792c970c61e08d360a46a4549ba9b21
+size 1104408
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
new file mode 100644
index 00000000..62a520a6
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a609a98d50bac5143c9421774ce99e737b7aec6afcc762e2674751cf1367254f
+size 5834622
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..e9c1f2f9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c59546202439d76750e5b2dc5ce16638e5ba8a105d23e952d947be51cf397ee
+size 12399718
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
new file mode 100644
index 00000000..512284a0
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9e566088ab415b4ab1fbf674880372d4f1dabf66b91fd26df0f4ab109203224
+size 19706663
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
new file mode 100644
index 00000000..e08d9438
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5941d417ca6312003935cd4ea0b88b8192207ba1e88b3feb924e633f0080a6a9
+size 6732282
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
new file mode 100644
index 00000000..d387ee1a
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:79fadb22034452a17bc381ce845347c94f4cdb069f6e5d70a3caa2e50450aec7
+size 13169556
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
new file mode 100644
index 00000000..946ce264
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5fdce23eac905d8bef79eeb463d1b5885b1f7fe94626f261a8544050eec81149
+size 5217455
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
new file mode 100644
index 00000000..a9a702e2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f6a39df9d091562417420c2ae5f23a490ef085f51445599f708aa74b989a4fbb
+size 1758275
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
new file mode 100644
index 00000000..d16e6bed
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:509bca88dce73baa774f45ee2e5a336928db2b6a5aa3f473ed05dfe1edf7fdc3
+size 6901761
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..fecab4c9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ddc71bc1851c3e8657d0093d8a8b451c7e25ed143c43e77a9c246a453c646c7
+size 13427650
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
new file mode 100644
index 00000000..1b633b61
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2a99d47f554511c79553803721702bf58f71e5c56553f1dde948aeeabb226e90
+size 69737
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index 16ecae3d..4d2f79f2 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:64419a367bb9a6ffc554aad1ea3a6c988438aa4ff5d6f712c1702664d5fb9e0f
+oid sha256:818d8dd3a7817841c13acd921331fd7710f2482245efcaa53e792c711e67ae1b
size 53268
From 9c2a1abeab5cfa11e0a2fd97f69b864a11313642 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sat, 30 Sep 2023 17:23:11 +0100
Subject: [PATCH 029/112] Implemented a Temp Gadget Test Enemy
---
EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset | 3 +++
.../Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset | 3 +++
2 files changed, 6 insertions(+)
create mode 100644 EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset
diff --git a/EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset b/EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset
new file mode 100644
index 00000000..5340c880
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e5052a85c00c1a3b15c810175d56caa13c047e4fc73a372e469e6a6fcdc8305
+size 28918
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset
new file mode 100644
index 00000000..564f02d1
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8edc43e34140db370cd832d70374ee75a1c4b8aab02c18815656f9494ecf7883
+size 5885
From 5e36b9e25e541c0045e221f1ea6e7430162d4e72 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sat, 30 Sep 2023 19:29:41 +0100
Subject: [PATCH 030/112] Switched Gadget Attachment Point to Players Camera
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 ++--
.../Source/EndlessVendetta/EndlessVendettaCharacter.cpp | 8 +++++++-
.../Source/EndlessVendetta/GadgetSystem/GadgetBase.h | 9 ++++++++-
.../EndlessVendetta/GadgetSystem/GadgetManager.cpp | 8 +++++---
.../Source/EndlessVendetta/GadgetSystem/GadgetManager.h | 2 +-
5 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index a993997e..68a7823a 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3192f3e53f9cde4484a9e8fd75184a71bf9ea1da5876fee94ceded15c274685a
-size 26191
+oid sha256:072d87c768407249e6e50f7b87ab9a88392c17cf82c72934e3c947e2943210bb
+size 26284
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index b54d9bab..1f728d05 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -54,7 +54,13 @@ void AEndlessVendettaCharacter::BeginPlay()
GadgetManager = Cast(GadgetManagerActor);
FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
GadgetManagerActor->AttachToComponent(GetRootComponent(), AttachmentRules);
- GadgetManager->SpawnGadgets(GetRootComponent());
+ for (UActorComponent* PlayersCamera : GetComponentsByTag(UCameraComponent::StaticClass(), FName("PlayersCamera")))
+ {
+ UE_LOG(LogTemp, Warning, TEXT("An actor component with PlayersCamera tag has been found"));
+ GadgetManager->SpawnGadgets(Cast(PlayersCamera));
+ break;
+ }
+
}
//////////////////////////////////////////////////////////////////////////// Input
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
index 37f5190e..50917ebb 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
@@ -32,6 +32,9 @@ protected:
UPROPERTY(EditDefaultsOnly, Category = "Gadget")
FVector EquippedOffset = FVector(0, 0, 0);
+ UPROPERTY(EditDefaultsOnly, Category = "Gadget")
+ FRotator GadgetRotation = FRotator(0, 0, 0);
+
UPROPERTY(EditDefaultsOnly, CAtegory = "Gadget")
FVector UnequippedOffset = FVector(0, 0, -1000);
@@ -73,7 +76,11 @@ public:
{
return UnequippedOffset;
}
-
+
+ FRotator GetGadgetSpawnRotation()
+ {
+ return GadgetRotation;
+ }
// Sets default values for this actor's properties
AGadgetBase();
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp
index 6e5a8ee4..8f7c6aa0 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp
@@ -25,7 +25,7 @@ void AGadgetManager::Tick(float DeltaTime)
}
-void AGadgetManager::SpawnGadgets(USceneComponent* PlayersRootComponent)
+void AGadgetManager::SpawnGadgets(USceneComponent* PlayersCameraComponent)
{
if (!IsValid(ReconClass) || !IsValid(CombatClass)) UE_LOG(LogTemp, Fatal, TEXT("Recon or Combat class hasn't been set"));
@@ -35,11 +35,13 @@ void AGadgetManager::SpawnGadgets(USceneComponent* PlayersRootComponent)
AActor* SpawnedActor = GetWorld()->SpawnActor(ReconClass, GetActorLocation(), GetActorRotation(), SpawnParams);
ReconGadget = Cast(SpawnedActor);
- SpawnedActor->AttachToComponent(PlayersRootComponent, AttachmentRules);
+ SpawnedActor->AttachToComponent(PlayersCameraComponent, AttachmentRules);
SpawnedActor->SetActorRelativeLocation(ReconGadget->GetUnequippedOffset());
+ SpawnedActor->SetActorRelativeRotation(ReconGadget->GetGadgetSpawnRotation());
SpawnedActor = GetWorld()->SpawnActor(CombatClass, GetActorLocation(), GetActorRotation(), SpawnParams);
CombatGadget = Cast(SpawnedActor);
- SpawnedActor->AttachToComponent(PlayersRootComponent, AttachmentRules);
+ SpawnedActor->AttachToComponent(PlayersCameraComponent, AttachmentRules);
SpawnedActor->SetActorRelativeLocation(CombatGadget->GetUnequippedOffset());
+ SpawnedActor->SetActorRelativeRotation(CombatGadget->GetGadgetSpawnRotation());
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
index 7935ac0d..686b2516 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.h
@@ -26,7 +26,7 @@ protected:
virtual void BeginPlay() override;
public:
- void SpawnGadgets(USceneComponent* PlayersRootComponent);
+ void SpawnGadgets(USceneComponent* PlayersCameraComponent);
// Sets default values for this actor's properties
AGadgetManager();
From 8c7219c655e49eec5d021187d2a7d622fe52a617 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sat, 30 Sep 2023 22:11:10 +0100
Subject: [PATCH 031/112] Implemented Vision Links Watch Face
---
.../Content/Gadgets/BP_GadgetTestEnemy.uasset | 4 +-
.../Content/Gadgets/GM_GadgetManager.uasset | 4 +-
.../VisionLink/RG_VisionLink.uasset | 3 ++
.../VisionLink/WBP_VisionLinkWatchFace.uasset | 3 ++
.../VisionLink/WatchFaceBGImage.png | 3 ++
.../VisionLink/WatchFaceBGImage.uasset | 3 ++
.../Content/Levels/GadgetSystemTestLevel.umap | 4 +-
.../Blueprints/Blueprint_CeilingLight.uasset | 4 +-
.../Particles/P_Ambient_Dust.uasset | 4 +-
.../4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset | 3 --
.../GadgetSystem/GadgetBase.cpp | 2 +-
.../EndlessVendetta/GadgetSystem/GadgetBase.h | 3 ++
.../GadgetClasses/Recon/VisionLink.cpp | 37 +++++++++++++++++++
.../GadgetClasses/Recon/VisionLink.h | 35 ++++++++++++++++++
14 files changed, 98 insertions(+), 14 deletions(-)
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.png
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
delete mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
diff --git a/EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset b/EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset
index 5340c880..48b9b41e 100644
--- a/EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset
+++ b/EndlessVendetta/Content/Gadgets/BP_GadgetTestEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6e5052a85c00c1a3b15c810175d56caa13c047e4fc73a372e469e6a6fcdc8305
-size 28918
+oid sha256:7a3c55e1fa7f6cecc3cf312e04498d0b8d9bfdfaac710b43392a61dfd34399fd
+size 29209
diff --git a/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset b/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
index 40b371f1..3f170b83 100644
--- a/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
+++ b/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e321d507454cc656ecee8ffaa8ce7a439b7bc824731e2932c160289609e6fe14
-size 22647
+oid sha256:654adc50d788c8fb0546796c4a290967958f12c156d3a135034339350831dba6
+size 22655
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
new file mode 100644
index 00000000..ed052b31
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc03486eff6b6773661f66c933fa9133c4cb06574cb449b416f5f79620ddc5d3
+size 55610
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
new file mode 100644
index 00000000..2cc5c2f2
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78f277f6a8815d1561fb351b22d894e56a144c05e6b5250e480c3b3beeadb119
+size 165946
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.png b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.png
new file mode 100644
index 00000000..b7f30e16
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd09031c00b4f5c7775a880706b149a33d8c6137dc79cf156722c6197791198d
+size 15063
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
new file mode 100644
index 00000000..d05f935a
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afbeeb63e797939650edcf947c6d364fc2372b04290963f53cddc2025d7e4efa
+size 19748
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 7ae1bbe3..bd4aee5a 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5187272f65c655c1bbca4f6a814ab42219fcb74a566fb68d72cc23cfa8b92999
-size 101262
+oid sha256:6c62d2b4827914f2af412d694fd0a91dd89833265ee15c3de4b1dd9123f1a94f
+size 109679
diff --git a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
index c5c3b84e..6842e215 100644
--- a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
+++ b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331
-size 158206
+oid sha256:120d16a134f7603db5d10931b9b1a163876b1f2691dffd91b10d871496f688b2
+size 43745
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index 4d2f79f2..bf2e4391 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:818d8dd3a7817841c13acd921331fd7710f2482245efcaa53e792c711e67ae1b
-size 53268
+oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d
+size 43456
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset
deleted file mode 100644
index 564f02d1..00000000
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/4/NE/2GFAH24W7HHTRWO5SDGMSZ.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8edc43e34140db370cd832d70374ee75a1c4b8aab02c18815656f9494ecf7883
-size 5885
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp
index 107df86f..a028af77 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.cpp
@@ -44,7 +44,7 @@ void AGadgetBase::Equip()
bool AGadgetBase::Unequip()
{
- if (GadgetInUse) return false;
+ if (GadgetInUse && !UnequippableWhenInUse) return false;
SetActorRelativeLocation(UnequippedOffset);
Equipped = false;
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
index 50917ebb..a0b65dce 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetBase.h
@@ -44,6 +44,9 @@ protected:
UPROPERTY(EditDefaultsOnly, Category = "Gadget")
float CooldownTime;
+ UPROPERTY(EditDefaultsOnly, CAtegory = "Gadget")
+ bool UnequippableWhenInUse = false;
+
UPROPERTY(EditDefaultsOnly, Category = "Gadget")
UInputMappingContext* GadgetMappingContext;
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
new file mode 100644
index 00000000..68f67a4b
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
@@ -0,0 +1,37 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "VisionLink.h"
+
+void AVisionLink::BeginPlay()
+{
+ Super::BeginPlay();
+ SetActorTickEnabled(false);
+ CooldownLength = CooldownTime;
+}
+
+
+
+void AVisionLink::Tick(float DeltaSeconds)
+{
+ Super::Tick(DeltaSeconds);
+}
+
+void AVisionLink::Activate()
+{
+ if (GadgetCantBeUsed()) return;
+
+ Super::Activate();
+ SetActorTickEnabled(true);
+ SwitchToActiveWatchFace();
+}
+
+void AVisionLink::FinishedUsing()
+{
+ SetActorTickEnabled(false);
+ SwitchToRechargingWatchFace();
+
+ Super::FinishedUsing();
+}
+
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
new file mode 100644
index 00000000..a2a273fb
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
@@ -0,0 +1,35 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "EndlessVendetta/GadgetSystem/ReconGadget.h"
+#include "VisionLink.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API AVisionLink : public AReconGadget
+{
+ GENERATED_BODY()
+
+ virtual void BeginPlay() override;
+
+ virtual void Tick(float DeltaSeconds) override;
+
+ virtual void Activate() override;
+
+ virtual void FinishedUsing() override;
+
+protected:
+ UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
+ float CooldownLength;
+
+ UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
+ void SwitchToActiveWatchFace();
+
+ UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
+ void SwitchToRechargingWatchFace();
+
+};
From e61b51d466b8461f0e414d63d32a4fc0c360ca15 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sun, 1 Oct 2023 12:47:50 +0100
Subject: [PATCH 032/112] Added new File Directory for FP Template Classes
---
.../StarterContent/Blueprints/Blueprint_CeilingLight.uasset | 4 ++--
.../StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 ++--
.../Source/EndlessVendetta/EndlessVendettaCharacter.cpp | 1 -
.../EndlessVendettaProjectile.cpp | 0
.../EndlessVendettaProjectile.h | 0
.../{ => FirstPersonTemplateClasses}/TP_PickUpComponent.cpp | 0
.../{ => FirstPersonTemplateClasses}/TP_PickUpComponent.h | 2 +-
.../{ => FirstPersonTemplateClasses}/TP_WeaponComponent.cpp | 2 +-
.../{ => FirstPersonTemplateClasses}/TP_WeaponComponent.h | 0
9 files changed, 6 insertions(+), 7 deletions(-)
rename EndlessVendetta/Source/EndlessVendetta/{ => FirstPersonTemplateClasses}/EndlessVendettaProjectile.cpp (100%)
rename EndlessVendetta/Source/EndlessVendetta/{ => FirstPersonTemplateClasses}/EndlessVendettaProjectile.h (100%)
rename EndlessVendetta/Source/EndlessVendetta/{ => FirstPersonTemplateClasses}/TP_PickUpComponent.cpp (100%)
rename EndlessVendetta/Source/EndlessVendetta/{ => FirstPersonTemplateClasses}/TP_PickUpComponent.h (95%)
rename EndlessVendetta/Source/EndlessVendetta/{ => FirstPersonTemplateClasses}/TP_WeaponComponent.cpp (98%)
rename EndlessVendetta/Source/EndlessVendetta/{ => FirstPersonTemplateClasses}/TP_WeaponComponent.h (100%)
diff --git a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
index 6842e215..c5c3b84e 100644
--- a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
+++ b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:120d16a134f7603db5d10931b9b1a163876b1f2691dffd91b10d871496f688b2
-size 43745
+oid sha256:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331
+size 158206
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index 0f990580..37d1e08f 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
-size 72364642
+oid sha256:56e13fbe6897a734316632f3c04e3e6b1f331dcbb878543e367ade26d2ae0075
+size 66790690
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 1f728d05..448d805c 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -1,7 +1,6 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#include "EndlessVendettaCharacter.h"
-#include "EndlessVendettaProjectile.h"
#include "Animation/AnimInstance.h"
#include "Camera/CameraComponent.h"
#include "Components/CapsuleComponent.h"
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaProjectile.cpp b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.cpp
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/EndlessVendettaProjectile.cpp
rename to EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.cpp
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaProjectile.h b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.h
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/EndlessVendettaProjectile.h
rename to EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_PickUpComponent.cpp b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.cpp
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/TP_PickUpComponent.cpp
rename to EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.cpp
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_PickUpComponent.h b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.h
similarity index 95%
rename from EndlessVendetta/Source/EndlessVendetta/TP_PickUpComponent.h
rename to EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.h
index a59366e7..62b5655a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/TP_PickUpComponent.h
+++ b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.h
@@ -4,7 +4,7 @@
#include "CoreMinimal.h"
#include "Components/SphereComponent.h"
-#include "EndlessVendettaCharacter.h"
+#include "EndlessVendetta/EndlessVendettaCharacter.h"
#include "TP_PickUpComponent.generated.h"
// Declaration of the delegate that will be called when someone picks this up
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_WeaponComponent.cpp b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.cpp
similarity index 98%
rename from EndlessVendetta/Source/EndlessVendetta/TP_WeaponComponent.cpp
rename to EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.cpp
index bd7c0deb..50dfa1d8 100644
--- a/EndlessVendetta/Source/EndlessVendetta/TP_WeaponComponent.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.cpp
@@ -2,7 +2,7 @@
#include "TP_WeaponComponent.h"
-#include "EndlessVendettaCharacter.h"
+#include "EndlessVendetta/EndlessVendettaCharacter.h"
#include "EndlessVendettaProjectile.h"
#include "GameFramework/PlayerController.h"
#include "Camera/PlayerCameraManager.h"
diff --git a/EndlessVendetta/Source/EndlessVendetta/TP_WeaponComponent.h b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.h
similarity index 100%
rename from EndlessVendetta/Source/EndlessVendetta/TP_WeaponComponent.h
rename to EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.h
From aca63055f323a3eb4539269c7938fac37c8bf2bc Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sun, 1 Oct 2023 13:51:15 +0100
Subject: [PATCH 033/112] Created Vision Links Viewport Widget
Has a functioning battery life bar
---
.../Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset | 4 ++--
.../ReconGadgets/VisionLink/VisionLinkViewPortBG.png | 3 +++
.../ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset | 3 +++
.../VisionLink/WBP_VisionLinkViewPort.uasset | 3 +++
.../VisionLink/WBP_VisionLinkWatchFace.uasset | 4 ++--
.../HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 ++--
.../StarterContent/Particles/P_Ambient_Dust.uasset | 4 ++--
.../GadgetSystem/GadgetClasses/Recon/VisionLink.cpp | 5 +++--
.../GadgetSystem/GadgetClasses/Recon/VisionLink.h | 9 ++++++---
9 files changed, 26 insertions(+), 13 deletions(-)
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.png
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
index ed052b31..ace3be4f 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cc03486eff6b6773661f66c933fa9133c4cb06574cb449b416f5f79620ddc5d3
-size 55610
+oid sha256:a4b1eb50312687772c3a03c0ef4e857d8db493b85d341ca5d9d4fda2cd8669f2
+size 69951
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.png b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.png
new file mode 100644
index 00000000..66c7ba77
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:527675573f05b7640baddcab7340a398e3daa8a170ef6b43d0e8ce4b22594c1c
+size 60971
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
new file mode 100644
index 00000000..c31bec52
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd673d7b47c8310bbae47b765919076a4b73cc20813122a3904f97950973435c
+size 45518
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
new file mode 100644
index 00000000..847aeaaf
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fb578a8064dba062142046bcb432a36f7cf120096d75835630f55c95df96c3be
+size 76094
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
index 2cc5c2f2..b205dedf 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:78f277f6a8815d1561fb351b22d894e56a144c05e6b5250e480c3b3beeadb119
-size 165946
+oid sha256:b05365476d12ad22f88a47f072cccc79b65376d67c4eb1ac21a02556c0922449
+size 162045
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index 37d1e08f..0f990580 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:56e13fbe6897a734316632f3c04e3e6b1f331dcbb878543e367ade26d2ae0075
-size 66790690
+oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
+size 72364642
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index bf2e4391..1f62de3d 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d
-size 43456
+oid sha256:4626e21a5b63987ab4b19eadd047c6bc94a0bf6fe8ca9b40681a1f7d7bdd803e
+size 53268
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
index 68f67a4b..f2b3c9d0 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
@@ -8,6 +8,7 @@ void AVisionLink::BeginPlay()
Super::BeginPlay();
SetActorTickEnabled(false);
CooldownLength = CooldownTime;
+ InUseDuration = GadgetMaxUptime;
}
@@ -23,13 +24,13 @@ void AVisionLink::Activate()
Super::Activate();
SetActorTickEnabled(true);
- SwitchToActiveWatchFace();
+ VisionLinkActivated();
}
void AVisionLink::FinishedUsing()
{
SetActorTickEnabled(false);
- SwitchToRechargingWatchFace();
+ VisionLinkRecharging();
Super::FinishedUsing();
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
index a2a273fb..14aa75ac 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
@@ -26,10 +26,13 @@ protected:
UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
float CooldownLength;
- UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
- void SwitchToActiveWatchFace();
+ UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
+ float InUseDuration;
UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
- void SwitchToRechargingWatchFace();
+ void VisionLinkActivated();
+
+ UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
+ void VisionLinkRecharging();
};
From 91052ed5aca2531b610d375f40586dd3a9a7081a Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sun, 1 Oct 2023 16:50:38 +0100
Subject: [PATCH 034/112] Implemented Vision Links UI Animations
---
.../VisionLink/RG_VisionLink.uasset | 4 +--
.../VisionLink/WBP_VisionLinkViewPort.uasset | 4 +--
.../Content/Levels/GadgetSystemTestLevel.umap | 2 +-
.../Architecture/Floor_400x400.uasset | 4 +--
.../Particles/P_Ambient_Dust.uasset | 4 +--
.../GadgetClasses/Recon/VisionLink.cpp | 26 +++++++++++++------
.../GadgetClasses/Recon/VisionLink.h | 21 +++++++++++++--
7 files changed, 46 insertions(+), 19 deletions(-)
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
index ace3be4f..a98e94f1 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a4b1eb50312687772c3a03c0ef4e857d8db493b85d341ca5d9d4fda2cd8669f2
-size 69951
+oid sha256:2a063d83c2d3461bee076adc8e95f993662e0d2cfe542ea8adfec6b524ecde24
+size 97920
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
index 847aeaaf..414cd557 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:fb578a8064dba062142046bcb432a36f7cf120096d75835630f55c95df96c3be
-size 76094
+oid sha256:10ba4f55ea7d6e695bfa848cef4da05c40c2dbe3bbb6be34b00d711f0db12b7b
+size 204366
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index bd4aee5a..07001d61 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6c62d2b4827914f2af412d694fd0a91dd89833265ee15c3de4b1dd9123f1a94f
+oid sha256:5e27a9b735217e9310c6c773ebb19ce87a4f00d959f0c4710de79ce8975be500
size 109679
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index c2a34afc..96cc6e20 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
-size 14948
+oid sha256:abd4f2fad257e7b583ac37aa10b18aca055f039b950e0100e587611f13a0e39b
+size 14831
diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
index 1f62de3d..bf2e4391 100644
--- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
+++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4626e21a5b63987ab4b19eadd047c6bc94a0bf6fe8ca9b40681a1f7d7bdd803e
-size 53268
+oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d
+size 43456
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
index f2b3c9d0..62fb9b7f 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
@@ -9,13 +9,9 @@ void AVisionLink::BeginPlay()
SetActorTickEnabled(false);
CooldownLength = CooldownTime;
InUseDuration = GadgetMaxUptime;
-}
-
-
-void AVisionLink::Tick(float DeltaSeconds)
-{
- Super::Tick(DeltaSeconds);
+ if (NumberOfPingPulses <= 0 ) NumberOfPingPulses = 1;
+ TimeInbetweenPingPulses = GadgetMaxUptime / (float)NumberOfPingPulses;
}
void AVisionLink::Activate()
@@ -23,16 +19,30 @@ void AVisionLink::Activate()
if (GadgetCantBeUsed()) return;
Super::Activate();
- SetActorTickEnabled(true);
+
+ NumOfPingPulsesLeftInThisCycle = NumberOfPingPulses;
VisionLinkActivated();
+ SendOutPingPulse();
}
void AVisionLink::FinishedUsing()
{
- SetActorTickEnabled(false);
VisionLinkRecharging();
Super::FinishedUsing();
}
+void AVisionLink::SendOutPingPulse()
+{
+ NumOfPingPulsesLeftInThisCycle--;
+ UpdatePulsesRemaining(NumOfPingPulsesLeftInThisCycle);
+ if (NumOfPingPulsesLeftInThisCycle < 0) return;
+
+ // THIS IS WHERE I"LL PUT PING PULSE LOGIC
+ UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
+ GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
+ PlayPingPulseAnim(TimeInbetweenPingPulses);
+}
+
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
index 14aa75ac..97869006 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
@@ -14,21 +14,38 @@ class ENDLESSVENDETTA_API AVisionLink : public AReconGadget
{
GENERATED_BODY()
- virtual void BeginPlay() override;
+ int NumOfPingPulsesLeftInThisCycle;
- virtual void Tick(float DeltaSeconds) override;
+ float TimeInbetweenPingPulses;
+
+ FTimerHandle PulseHandle;
+
+ void SendOutPingPulse();
+
+ virtual void BeginPlay() override;
virtual void Activate() override;
virtual void FinishedUsing() override;
protected:
+ UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ int NumberOfPingPulses = 1;
+
UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
float CooldownLength;
UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
float InUseDuration;
+ // Updates UI with time to next Pulse
+ UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
+ void PlayPingPulseAnim(float PulseDuration);
+
+ // Updates UI with pulses remaining
+ UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
+ void UpdatePulsesRemaining(int PulsesRemaining);
+
UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
void VisionLinkActivated();
From 81a8c2ae44fab1ad98202e08354c5caad2f5c67f Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Sun, 1 Oct 2023 17:43:38 +0100
Subject: [PATCH 035/112] Started Implementing Vision Link Functionality
---
.../Recon/{ => VisionLink}/VisionLink.cpp | 9 ++-
.../Recon/{ => VisionLink}/VisionLink.h | 4 ++
.../VisionLink/VisionLinkEnemyLOSTest.cpp | 70 +++++++++++++++++++
.../Recon/VisionLink/VisionLinkEnemyLOSTest.h | 30 ++++++++
4 files changed, 112 insertions(+), 1 deletion(-)
rename EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/{ => VisionLink}/VisionLink.cpp (68%)
rename EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/{ => VisionLink}/VisionLink.h (89%)
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
similarity index 68%
rename from EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
rename to EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index 62fb9b7f..9ac77162 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -38,7 +38,14 @@ void AVisionLink::SendOutPingPulse()
UpdatePulsesRemaining(NumOfPingPulsesLeftInThisCycle);
if (NumOfPingPulsesLeftInThisCycle < 0) return;
- // THIS IS WHERE I"LL PUT PING PULSE LOGIC
+ FActorSpawnParameters SpawnParams;
+ SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
+
+ AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
+ TArray EmptyActorArray;
+ Cast(LOSTestActor)->TestLOS(EmptyActorArray, GetOwner());
+
UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
PlayPingPulseAnim(TimeInbetweenPingPulses);
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
similarity index 89%
rename from EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
rename to EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
index 97869006..fa5ac3e9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
@@ -3,6 +3,7 @@
#pragma once
#include "CoreMinimal.h"
+#include "VisionLinkEnemyLOSTest.h"
#include "EndlessVendetta/GadgetSystem/ReconGadget.h"
#include "VisionLink.generated.h"
@@ -32,6 +33,9 @@ protected:
UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
int NumberOfPingPulses = 1;
+ UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ TSubclassOf EnemyLOSTestActor;
+
UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
float CooldownLength;
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
new file mode 100644
index 00000000..7d837c18
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
@@ -0,0 +1,70 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "VisionLinkEnemyLOSTest.h"
+
+#include "Components/BoxComponent.h"
+#include "Kismet/KismetMathLibrary.h"
+
+// Sets default values
+AVisionLinkEnemyLOSTest::AVisionLinkEnemyLOSTest()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+}
+
+// Called when the game starts or when spawned
+void AVisionLinkEnemyLOSTest::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void AVisionLinkEnemyLOSTest::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+
+}
+
+void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSActor)
+{
+ // Get all overlapping Actors
+ UBoxComponent* CollisionBox = Cast(GetComponentByClass(UBoxComponent::StaticClass()));
+ if (!IsValid(CollisionBox))
+ {
+ Destroy();
+ return;
+ }
+ TArray OverlappingEnemies;
+ CollisionBox->GetOverlappingActors(OverlappingEnemies);
+ if (OverlappingEnemies.IsEmpty())
+ {
+ Destroy();
+ return;
+ }
+
+ for (int i = 0; i < OverlappingEnemies.Num(); i++)
+ {
+ // Overlapping Enemies Array should only contain enemies which aren't already in the link
+ if (!OverlappingEnemies[i]->ActorHasTag(FName("Enemy")) || EnemiesInLink.Contains(OverlappingEnemies[i])) OverlappingEnemies.RemoveAt(i);
+ }
+ if (OverlappingEnemies.IsEmpty())
+ {
+ Destroy();
+ return;
+ }
+
+ for (AActor* Enemy : OverlappingEnemies)
+ {
+ FRotator LookAtRotation = UKismetMathLibrary::FindLookAtRotation(LOSActor->GetActorLocation(), Enemy->GetActorLocation());
+ UE_LOG(LogTemp, Warning, TEXT("Look at Rotation: %f"), LookAtRotation.Yaw);
+ }
+
+ Destroy();
+
+
+}
+
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
new file mode 100644
index 00000000..40d7846a
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
@@ -0,0 +1,30 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Actor.h"
+#include "VisionLinkEnemyLOSTest.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API AVisionLinkEnemyLOSTest : public AActor
+{
+ GENERATED_BODY()
+
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ FVector SpawnOffset = FVector(0, 0, 0 );
+
+ // Sets default values for this actor's properties
+ AVisionLinkEnemyLOSTest();
+
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+ void TestLOS(TArray EnemiesInLink, AActor* LOS_Actor);
+};
From bd1f3b3b1452dc95a1f495a8642bf92dda085b87 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Mon, 2 Oct 2023 01:29:26 +0100
Subject: [PATCH 036/112] Add Enemy AI Testing Level to Test Line of Sight
---
.../Content/Levels/EnemyAITest.umap | 3 ++
.../Content/Levels/FirstPersonMap.umap | 3 ++
.../D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset | 4 +--
.../0/E1/IQFW07RTPNSMRH29XIEJ6K.uasset | 3 ++
.../0/GX/GIS7MZ67XR2J3PFEU2JQAQ.uasset | 3 ++
.../0/IX/2HJNN09VIUGECAWE7RQF7E.uasset | 3 ++
.../0/J9/CJ0EBOCRNQM7JW268TJIYP.uasset | 3 ++
.../0/K8/6SR44C1CVICPSD9PDDIAZ5.uasset | 3 ++
.../0/LR/WD02RYJ2PYZD1AMUAN4FKJ.uasset | 3 ++
.../0/PE/AU0ZEVM147PGYZYETWYMEJ.uasset | 3 ++
.../0/Q7/0NC9X1M4P0178PJ62HLZBL.uasset | 3 ++
.../1/4W/TZWKOM776CCB9T1CQESPAC.uasset | 3 ++
.../1/5S/7ID5OVJCB5CTLJKPQKIC1I.uasset | 3 ++
.../1/6S/A9J1OJI3RV53ISSKR2J5U1.uasset | 3 ++
.../1/BP/EE03SQQCZJQSEUPRGJPTP0.uasset | 3 ++
.../1/HB/E2H2DJ0IYXZ7YPKWWFF0FG.uasset | 3 ++
.../1/MY/R1JII7B2C24B9CWJXSQ46T.uasset | 3 ++
.../1/WZ/18S5NW75OTIRU2HFO79N4M.uasset | 3 ++
.../2/37/1NHB75E9P7T630GL2K4WWN.uasset | 3 ++
.../2/9H/UI6E3IHLXCVIV54810ZSUS.uasset | 3 ++
.../2/CT/39SOGBQQWQPX5XF5XSIDUZ.uasset | 3 ++
.../2/D3/R44Z9O6CLM37P3G5IX40CI.uasset | 3 ++
.../2/GF/LRPO23YW2N7WZ21HT3ADU8.uasset | 3 ++
.../2/RX/YRPO3KV1HDO96HPZ66IMQI.uasset | 3 ++
.../3/21/OZ7HVAU40P457N2KQYO1Z5.uasset | 3 ++
.../3/7D/94E51K8PLPK43WRYXU8RL0.uasset | 3 ++
.../3/8B/5GCK7S3AV6GJBA0IACF1XO.uasset | 3 ++
.../3/GB/Q8MDU4O8NVGCNQC48I9E8C.uasset | 3 ++
.../3/LK/1HYMG69QSB1R2IKKLMNVLT.uasset | 3 ++
.../4/7S/M6H76KT5RYSC8FT08UOYYV.uasset | 3 ++
.../4/DO/KPWW5M0TRW408IVKQNTBX7.uasset | 3 ++
.../4/EH/H0RJG09BGRG4TA8B6P9SKL.uasset | 3 ++
.../4/NV/0O5K04NGZ280HG3EDN82BS.uasset | 3 ++
.../6/T0/6P1LRRDLZM1EUAF0VJ2A1Z.uasset | 3 ++
.../7/5X/SGTTTEQNKAZC3W9C8ICWCD.uasset | 3 ++
.../7/ON/O0RSM3NJKRZPH0FXBF9L3S.uasset | 3 ++
.../7/VD/0FS7NIRZS2R8T57JW12AXA.uasset | 3 ++
.../8/7J/5M8HYAJBH6S06KBPPU5V7W.uasset | 3 ++
.../8/L7/JWTIPNAQRZ09Y5NAQL5BW8.uasset | 3 ++
.../8/PN/HJTAS89CNH6I0AR0ZCCE4H.uasset | 3 ++
.../9/45/BRJA5VHIWN6NTS13DYDN08.uasset | 3 ++
.../9/AG/M50NVM1A6DXOF9R7EHESH6.uasset | 3 ++
.../9/EB/XWFQGB0N0AV29HQ1RZBRTN.uasset | 3 ++
.../9/JJ/USZ2IG22JXYQ9U9L4R3O9K.uasset | 3 ++
.../9/SL/1ABG5W1O6BMZYRRZY742RR.uasset | 3 ++
.../9/TM/SXQEJM0WJTDHS510NE0ARB.uasset | 3 ++
.../9/ZA/DT4HPQ7S67F0V9G8T1YCQI.uasset | 3 ++
.../A/IY/10597N2XJ21LILF5KIZ5KL.uasset | 3 ++
.../A/ON/FV27LO60GPVLJOY7YY1WLP.uasset | 3 ++
.../A/PF/EG3JGUPDQZSATN1FLSWJVL.uasset | 3 ++
.../A/SX/4TUAQI2F98RL122DKAHM7N.uasset | 3 ++
.../A/WI/254BGPLW3CW799JAYW11ZE.uasset | 3 ++
.../B/8R/JBRRKN8XRT8V47MOSZ3XFX.uasset | 3 ++
.../B/AZ/GX8EY01G00J28SE17R0FJV.uasset | 3 ++
.../B/KC/MH5IV9S2GG4KCWNMZHWKG9.uasset | 3 ++
.../C/6W/LBHG7995AIEJVSD5QZYXZS.uasset | 3 ++
.../D/JE/MPPG27DTK7Y2X2HONLOIS2.uasset | 3 ++
.../D/OV/MIML8IG26185E7HH7OUYXY.uasset | 3 ++
.../E/AO/6CUEZ00H5605BZ34CYJ59J.uasset | 3 ++
.../E/CR/DRCNPPN33IO9BDIGKV8CQD.uasset | 3 ++
.../E/FJ/TDFYID5LIFN4RZYNHYR2L3.uasset | 3 ++
.../E/L4/2A3KY5I7FJ21NDC7OURASV.uasset | 3 ++
.../E/ML/NLOI6RS1TZE6573JN4LJAU.uasset | 3 ++
.../E/PL/ODMT46SVZ8BKVV6CH39RBJ.uasset | 3 ++
.../E/TC/E3CXYQV6UQS02X2RRKCPDE.uasset | 3 ++
.../3/IN/ZX0DKIDX2JX3JZ5AHZ358H.uasset | 3 ++
.../5/ED/F43HQFUB7DXKRU5ZNLN2HL.uasset | 3 ++
.../6/JT/KDT0MAGCOXR70VASIZOKMP.uasset | 3 ++
.../7/0J/97389JWAHOKRK9742IJNUD.uasset | 3 ++
.../7/6G/DU9OC4U9R64TY369G0N48F.uasset | 3 ++
.../A/OF/DMAUKRJ7ZVQKZ15OGILSN5.uasset | 3 ++
.../C/4M/6DZ06BS46GV23GYW6TYVSW.uasset | 3 ++
.../E/KK/K83LURWABW69BW7GEPNTMB.uasset | 3 ++
UE5 Layout/Phil_s_UE5_Layout.ini | 30 +++++++++++++++++++
74 files changed, 248 insertions(+), 2 deletions(-)
create mode 100644 EndlessVendetta/Content/Levels/EnemyAITest.umap
create mode 100644 EndlessVendetta/Content/Levels/FirstPersonMap.umap
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/E1/IQFW07RTPNSMRH29XIEJ6K.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/GX/GIS7MZ67XR2J3PFEU2JQAQ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/IX/2HJNN09VIUGECAWE7RQF7E.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/J9/CJ0EBOCRNQM7JW268TJIYP.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/K8/6SR44C1CVICPSD9PDDIAZ5.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/LR/WD02RYJ2PYZD1AMUAN4FKJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/PE/AU0ZEVM147PGYZYETWYMEJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/Q7/0NC9X1M4P0178PJ62HLZBL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/4W/TZWKOM776CCB9T1CQESPAC.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/5S/7ID5OVJCB5CTLJKPQKIC1I.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/6S/A9J1OJI3RV53ISSKR2J5U1.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/BP/EE03SQQCZJQSEUPRGJPTP0.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/HB/E2H2DJ0IYXZ7YPKWWFF0FG.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/MY/R1JII7B2C24B9CWJXSQ46T.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/WZ/18S5NW75OTIRU2HFO79N4M.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/37/1NHB75E9P7T630GL2K4WWN.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/9H/UI6E3IHLXCVIV54810ZSUS.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/CT/39SOGBQQWQPX5XF5XSIDUZ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/D3/R44Z9O6CLM37P3G5IX40CI.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/GF/LRPO23YW2N7WZ21HT3ADU8.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/RX/YRPO3KV1HDO96HPZ66IMQI.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/21/OZ7HVAU40P457N2KQYO1Z5.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/7D/94E51K8PLPK43WRYXU8RL0.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/8B/5GCK7S3AV6GJBA0IACF1XO.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/GB/Q8MDU4O8NVGCNQC48I9E8C.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/LK/1HYMG69QSB1R2IKKLMNVLT.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/7S/M6H76KT5RYSC8FT08UOYYV.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/DO/KPWW5M0TRW408IVKQNTBX7.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/EH/H0RJG09BGRG4TA8B6P9SKL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/NV/0O5K04NGZ280HG3EDN82BS.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/6/T0/6P1LRRDLZM1EUAF0VJ2A1Z.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/5X/SGTTTEQNKAZC3W9C8ICWCD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/ON/O0RSM3NJKRZPH0FXBF9L3S.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/VD/0FS7NIRZS2R8T57JW12AXA.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/7J/5M8HYAJBH6S06KBPPU5V7W.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/L7/JWTIPNAQRZ09Y5NAQL5BW8.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/PN/HJTAS89CNH6I0AR0ZCCE4H.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/45/BRJA5VHIWN6NTS13DYDN08.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/AG/M50NVM1A6DXOF9R7EHESH6.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/EB/XWFQGB0N0AV29HQ1RZBRTN.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/JJ/USZ2IG22JXYQ9U9L4R3O9K.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/SL/1ABG5W1O6BMZYRRZY742RR.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/TM/SXQEJM0WJTDHS510NE0ARB.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/ZA/DT4HPQ7S67F0V9G8T1YCQI.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/IY/10597N2XJ21LILF5KIZ5KL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/ON/FV27LO60GPVLJOY7YY1WLP.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/PF/EG3JGUPDQZSATN1FLSWJVL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/SX/4TUAQI2F98RL122DKAHM7N.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/WI/254BGPLW3CW799JAYW11ZE.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/8R/JBRRKN8XRT8V47MOSZ3XFX.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/KC/MH5IV9S2GG4KCWNMZHWKG9.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/6W/LBHG7995AIEJVSD5QZYXZS.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/JE/MPPG27DTK7Y2X2HONLOIS2.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/OV/MIML8IG26185E7HH7OUYXY.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/AO/6CUEZ00H5605BZ34CYJ59J.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/CR/DRCNPPN33IO9BDIGKV8CQD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/FJ/TDFYID5LIFN4RZYNHYR2L3.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/L4/2A3KY5I7FJ21NDC7OURASV.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/ML/NLOI6RS1TZE6573JN4LJAU.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PL/ODMT46SVZ8BKVV6CH39RBJ.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/TC/E3CXYQV6UQS02X2RRKCPDE.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/3/IN/ZX0DKIDX2JX3JZ5AHZ358H.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/5/ED/F43HQFUB7DXKRU5ZNLN2HL.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/6/JT/KDT0MAGCOXR70VASIZOKMP.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/0J/97389JWAHOKRK9742IJNUD.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/6G/DU9OC4U9R64TY369G0N48F.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/A/OF/DMAUKRJ7ZVQKZ15OGILSN5.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/C/4M/6DZ06BS46GV23GYW6TYVSW.uasset
create mode 100644 EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/E/KK/K83LURWABW69BW7GEPNTMB.uasset
create mode 100644 UE5 Layout/Phil_s_UE5_Layout.ini
diff --git a/EndlessVendetta/Content/Levels/EnemyAITest.umap b/EndlessVendetta/Content/Levels/EnemyAITest.umap
new file mode 100644
index 00000000..8319bb34
--- /dev/null
+++ b/EndlessVendetta/Content/Levels/EnemyAITest.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ba62070ea31cc50bd2bea8db9b7d8f66bbe89280d203f53c448605cc9f5efc14
+size 19438
diff --git a/EndlessVendetta/Content/Levels/FirstPersonMap.umap b/EndlessVendetta/Content/Levels/FirstPersonMap.umap
new file mode 100644
index 00000000..b55a585b
--- /dev/null
+++ b/EndlessVendetta/Content/Levels/FirstPersonMap.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:23d2e3f9308eca1cb84f2561c48860f0c51b5e8c51a7257dff11988d2e1b5724
+size 2116
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset
index d12d268b..ee2444db 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/D/KO/5NABXAV1RIRN3HX2KXBHV8.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:710bc3c5911ac600db4de37b019e48d5d410f4b7b21927e2bf74800cde15de5b
-size 9113
+oid sha256:1ea76fc172df362aee30e4018ebac61f97f005f127b25e628b6befb851e332c6
+size 10457
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/E1/IQFW07RTPNSMRH29XIEJ6K.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/E1/IQFW07RTPNSMRH29XIEJ6K.uasset
new file mode 100644
index 00000000..d26e7cc7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/E1/IQFW07RTPNSMRH29XIEJ6K.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0adcbba9dd12519aa193fd0cedb65bf17ec9209792a3d4bb10ddadb55a0dd098
+size 4652
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/GX/GIS7MZ67XR2J3PFEU2JQAQ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/GX/GIS7MZ67XR2J3PFEU2JQAQ.uasset
new file mode 100644
index 00000000..9e4d412a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/GX/GIS7MZ67XR2J3PFEU2JQAQ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ecab7663f508522aa1d8e5784628eaaaf1c77eefda4fa4e60dbe23695dff5455
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/IX/2HJNN09VIUGECAWE7RQF7E.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/IX/2HJNN09VIUGECAWE7RQF7E.uasset
new file mode 100644
index 00000000..a2ce66a3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/IX/2HJNN09VIUGECAWE7RQF7E.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ba47531b1f53d15d50cb43c9db404e2b21b884149bbd4075713987a0dc58beeb
+size 4653
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/J9/CJ0EBOCRNQM7JW268TJIYP.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/J9/CJ0EBOCRNQM7JW268TJIYP.uasset
new file mode 100644
index 00000000..85e208b0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/J9/CJ0EBOCRNQM7JW268TJIYP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fe2005cbd7d221a5eda1099634d0e3e02b5c0670382719adffb59e9e987795eb
+size 4653
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/K8/6SR44C1CVICPSD9PDDIAZ5.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/K8/6SR44C1CVICPSD9PDDIAZ5.uasset
new file mode 100644
index 00000000..e73fc94e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/K8/6SR44C1CVICPSD9PDDIAZ5.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5290040de602d01aebcef81b116f9d6453714d6af102deb8adf92f6c284b852b
+size 4655
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/LR/WD02RYJ2PYZD1AMUAN4FKJ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/LR/WD02RYJ2PYZD1AMUAN4FKJ.uasset
new file mode 100644
index 00000000..901ac284
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/LR/WD02RYJ2PYZD1AMUAN4FKJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac890528add1456f17ee331724e45541159a0a614a47dea926f24827587fa4d0
+size 4787
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/PE/AU0ZEVM147PGYZYETWYMEJ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/PE/AU0ZEVM147PGYZYETWYMEJ.uasset
new file mode 100644
index 00000000..28eb2456
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/PE/AU0ZEVM147PGYZYETWYMEJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b220824a0f633c07b1cf8893ebf96544fd86ee76a767f7f9e5400fd39acf69ba
+size 3806
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/Q7/0NC9X1M4P0178PJ62HLZBL.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/Q7/0NC9X1M4P0178PJ62HLZBL.uasset
new file mode 100644
index 00000000..5efc5748
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/0/Q7/0NC9X1M4P0178PJ62HLZBL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bb00ea144b9575f5353f61e24b5f59489aa91c62d3334ad313dd1d90b9e2670
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/4W/TZWKOM776CCB9T1CQESPAC.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/4W/TZWKOM776CCB9T1CQESPAC.uasset
new file mode 100644
index 00000000..4e7af2ed
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/4W/TZWKOM776CCB9T1CQESPAC.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b28b6ff61c85777d7999e63a820858db4b2a6153abfebacf97b167a91f3c13be
+size 4541
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/5S/7ID5OVJCB5CTLJKPQKIC1I.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/5S/7ID5OVJCB5CTLJKPQKIC1I.uasset
new file mode 100644
index 00000000..8d448d7e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/5S/7ID5OVJCB5CTLJKPQKIC1I.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76a12d6a9ec9f46a665ad784c79e2e03a79bb8f35260754a576a904b4c5dd57a
+size 4534
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/6S/A9J1OJI3RV53ISSKR2J5U1.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/6S/A9J1OJI3RV53ISSKR2J5U1.uasset
new file mode 100644
index 00000000..7961b35c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/6S/A9J1OJI3RV53ISSKR2J5U1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7894b05d9639d996719cbf0ac9a30099b2454bc2522868f4c0a81aa95d4d0b39
+size 10399
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/BP/EE03SQQCZJQSEUPRGJPTP0.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/BP/EE03SQQCZJQSEUPRGJPTP0.uasset
new file mode 100644
index 00000000..e530f3e7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/BP/EE03SQQCZJQSEUPRGJPTP0.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:568f2a474a475045288e1552b9be176fa4e6e7a70d1438064f049b957bfedfe8
+size 4541
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/HB/E2H2DJ0IYXZ7YPKWWFF0FG.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/HB/E2H2DJ0IYXZ7YPKWWFF0FG.uasset
new file mode 100644
index 00000000..bbaf2b0e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/HB/E2H2DJ0IYXZ7YPKWWFF0FG.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:762c0e26021fdc42c7904454f6ad9b02f872d0d017788c9fc6ffeacc9a896bce
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/MY/R1JII7B2C24B9CWJXSQ46T.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/MY/R1JII7B2C24B9CWJXSQ46T.uasset
new file mode 100644
index 00000000..2b68f8dc
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/MY/R1JII7B2C24B9CWJXSQ46T.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9545eb125107d2bb1605930ffe7af4dcb6d51bfa9b503fc829c26163149eba9
+size 4655
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/WZ/18S5NW75OTIRU2HFO79N4M.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/WZ/18S5NW75OTIRU2HFO79N4M.uasset
new file mode 100644
index 00000000..083077d1
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/1/WZ/18S5NW75OTIRU2HFO79N4M.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8cbfb594832690a4d22e750e1c9cdcf01ec3115e1f902390ad3aa83af0733887
+size 4690
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/37/1NHB75E9P7T630GL2K4WWN.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/37/1NHB75E9P7T630GL2K4WWN.uasset
new file mode 100644
index 00000000..193f240e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/37/1NHB75E9P7T630GL2K4WWN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:362a0c728d4c1a65e6bde6f6cc59d26c06e3d2341699251879d4734aaf6125fa
+size 4539
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/9H/UI6E3IHLXCVIV54810ZSUS.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/9H/UI6E3IHLXCVIV54810ZSUS.uasset
new file mode 100644
index 00000000..f32ef151
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/9H/UI6E3IHLXCVIV54810ZSUS.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9649867553b90bb4397d8c3901e403a70701d82712475b1cf554331493fe18ea
+size 3591
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/CT/39SOGBQQWQPX5XF5XSIDUZ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/CT/39SOGBQQWQPX5XF5XSIDUZ.uasset
new file mode 100644
index 00000000..f7d69200
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/CT/39SOGBQQWQPX5XF5XSIDUZ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:760dce31c9f18576781d0678cbb982ab4c16127d61b8391d68edd31744ef2e2b
+size 5214
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/D3/R44Z9O6CLM37P3G5IX40CI.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/D3/R44Z9O6CLM37P3G5IX40CI.uasset
new file mode 100644
index 00000000..e64df1d8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/D3/R44Z9O6CLM37P3G5IX40CI.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b13181dd37c900800b8063c1e369065d7b0164e0ebacff2a12f9161d27820dbb
+size 4787
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/GF/LRPO23YW2N7WZ21HT3ADU8.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/GF/LRPO23YW2N7WZ21HT3ADU8.uasset
new file mode 100644
index 00000000..97b71e5a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/GF/LRPO23YW2N7WZ21HT3ADU8.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1157a301eaf171ced8252f794196b28001e9c2b1e37a1fd453cc4dde6ed6c87b
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/RX/YRPO3KV1HDO96HPZ66IMQI.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/RX/YRPO3KV1HDO96HPZ66IMQI.uasset
new file mode 100644
index 00000000..e503aa04
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/2/RX/YRPO3KV1HDO96HPZ66IMQI.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9af8f569b99044bcd458580d5f6b118a4e223cf17c4b8474c25cf0d01113ff29
+size 4683
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/21/OZ7HVAU40P457N2KQYO1Z5.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/21/OZ7HVAU40P457N2KQYO1Z5.uasset
new file mode 100644
index 00000000..77b37b57
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/21/OZ7HVAU40P457N2KQYO1Z5.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:173bc0e598c4e789da276f6cd5083232689d81af4baa1e78ef41147b46ae19e0
+size 4538
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/7D/94E51K8PLPK43WRYXU8RL0.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/7D/94E51K8PLPK43WRYXU8RL0.uasset
new file mode 100644
index 00000000..3663e2b6
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/7D/94E51K8PLPK43WRYXU8RL0.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efdf6470ed0556e4edcc55ea713b76456005b0b0166aee0e591d048d59e519bc
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/8B/5GCK7S3AV6GJBA0IACF1XO.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/8B/5GCK7S3AV6GJBA0IACF1XO.uasset
new file mode 100644
index 00000000..d2a18605
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/8B/5GCK7S3AV6GJBA0IACF1XO.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:49298a3d050dc63572fe5b0f8443a64c7e521e276c0075e7d694f07aec463dae
+size 4541
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/GB/Q8MDU4O8NVGCNQC48I9E8C.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/GB/Q8MDU4O8NVGCNQC48I9E8C.uasset
new file mode 100644
index 00000000..15cf82ea
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/GB/Q8MDU4O8NVGCNQC48I9E8C.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e308d86ccd87772a9b48f42294078386841e9af06bb1f4e358995138b6ee98d4
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/LK/1HYMG69QSB1R2IKKLMNVLT.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/LK/1HYMG69QSB1R2IKKLMNVLT.uasset
new file mode 100644
index 00000000..74f50cfc
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/3/LK/1HYMG69QSB1R2IKKLMNVLT.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:591eb4207c25e0a75f7eddf92f0046f7e72a0cc9ce7ea2100530a5f54e15f353
+size 4426
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/7S/M6H76KT5RYSC8FT08UOYYV.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/7S/M6H76KT5RYSC8FT08UOYYV.uasset
new file mode 100644
index 00000000..45781de8
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/7S/M6H76KT5RYSC8FT08UOYYV.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f80c49bb71351e21d6c7fd5d07ba02d4c6ecb893f078ad9fc354c411a261b391
+size 4593
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/DO/KPWW5M0TRW408IVKQNTBX7.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/DO/KPWW5M0TRW408IVKQNTBX7.uasset
new file mode 100644
index 00000000..c43294d7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/DO/KPWW5M0TRW408IVKQNTBX7.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:addf7e6a676b465357631fecd85086cb3282294dd3a60d25ec1a45c44275820b
+size 4786
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/EH/H0RJG09BGRG4TA8B6P9SKL.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/EH/H0RJG09BGRG4TA8B6P9SKL.uasset
new file mode 100644
index 00000000..76ff7bba
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/EH/H0RJG09BGRG4TA8B6P9SKL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3ded950368a5368f3187fcdae9b883ab92a7b57840a28a3613a0024df71d2098
+size 27121
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/NV/0O5K04NGZ280HG3EDN82BS.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/NV/0O5K04NGZ280HG3EDN82BS.uasset
new file mode 100644
index 00000000..0dfebb5c
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/4/NV/0O5K04NGZ280HG3EDN82BS.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:254992fc3dab572613b2ecd197002613a0772e89822600345f9f9a724bf20770
+size 4438
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/6/T0/6P1LRRDLZM1EUAF0VJ2A1Z.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/6/T0/6P1LRRDLZM1EUAF0VJ2A1Z.uasset
new file mode 100644
index 00000000..1cd549c3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/6/T0/6P1LRRDLZM1EUAF0VJ2A1Z.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1fb000a8d5590b3f45db2cc93f88a1f2a0c33c1d478bb3f415ebb3dea20be866
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/5X/SGTTTEQNKAZC3W9C8ICWCD.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/5X/SGTTTEQNKAZC3W9C8ICWCD.uasset
new file mode 100644
index 00000000..f6c08eca
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/5X/SGTTTEQNKAZC3W9C8ICWCD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efe8687b693ae889c18ae026262399acc470a627b44b2c13ffb6c3fda05f96c7
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/ON/O0RSM3NJKRZPH0FXBF9L3S.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/ON/O0RSM3NJKRZPH0FXBF9L3S.uasset
new file mode 100644
index 00000000..7867fd94
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/ON/O0RSM3NJKRZPH0FXBF9L3S.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0dcbcd815a02baed2145105961a0ca02ecf79520c45272314ab6a87f9d46e8e1
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/VD/0FS7NIRZS2R8T57JW12AXA.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/VD/0FS7NIRZS2R8T57JW12AXA.uasset
new file mode 100644
index 00000000..65bcd19a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/7/VD/0FS7NIRZS2R8T57JW12AXA.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e7213ce229e3507136525afca1c0617c8adc58c0366a73606d931cc348a10c22
+size 4820
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/7J/5M8HYAJBH6S06KBPPU5V7W.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/7J/5M8HYAJBH6S06KBPPU5V7W.uasset
new file mode 100644
index 00000000..4821f821
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/7J/5M8HYAJBH6S06KBPPU5V7W.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:11f32a1fc9c265eaa142b46bb38d5a6ac78f8f236efa0c4b88bc7a3261086b41
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/L7/JWTIPNAQRZ09Y5NAQL5BW8.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/L7/JWTIPNAQRZ09Y5NAQL5BW8.uasset
new file mode 100644
index 00000000..d2d2b2c3
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/L7/JWTIPNAQRZ09Y5NAQL5BW8.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1394519fdbfca8cd57fe5d14b0c9c08b8711a01baf4dd467320a49fcd95f6096
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/PN/HJTAS89CNH6I0AR0ZCCE4H.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/PN/HJTAS89CNH6I0AR0ZCCE4H.uasset
new file mode 100644
index 00000000..1b18c190
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/8/PN/HJTAS89CNH6I0AR0ZCCE4H.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7004ea5397728a307a687eafb1f55f84a8b5dc6eb5baa7bf867e5600da2e2170
+size 4650
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/45/BRJA5VHIWN6NTS13DYDN08.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/45/BRJA5VHIWN6NTS13DYDN08.uasset
new file mode 100644
index 00000000..c5296a03
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/45/BRJA5VHIWN6NTS13DYDN08.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46f180e7d001110d9fcb9e2855269222e67b05bb4610fce087bea9ff8e6c1708
+size 4787
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/AG/M50NVM1A6DXOF9R7EHESH6.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/AG/M50NVM1A6DXOF9R7EHESH6.uasset
new file mode 100644
index 00000000..7109c790
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/AG/M50NVM1A6DXOF9R7EHESH6.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fff2630cecd7cc45e10370918bc86692ef8c098fc7ffa4a6fdd8517a040bf83b
+size 4655
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/EB/XWFQGB0N0AV29HQ1RZBRTN.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/EB/XWFQGB0N0AV29HQ1RZBRTN.uasset
new file mode 100644
index 00000000..e88336ab
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/EB/XWFQGB0N0AV29HQ1RZBRTN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc4b6a4512cab5257543fa72092fa61e70347811f842a7545e5b60c94443856f
+size 3597
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/JJ/USZ2IG22JXYQ9U9L4R3O9K.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/JJ/USZ2IG22JXYQ9U9L4R3O9K.uasset
new file mode 100644
index 00000000..872903de
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/JJ/USZ2IG22JXYQ9U9L4R3O9K.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c27ca877d66f24ae8e7cd3396b7c6992c931a9e529c15c8fff36c9f49d00796
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/SL/1ABG5W1O6BMZYRRZY742RR.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/SL/1ABG5W1O6BMZYRRZY742RR.uasset
new file mode 100644
index 00000000..f39b6e36
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/SL/1ABG5W1O6BMZYRRZY742RR.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d5d6e77de164077904ab242eafa07691014d6441a34ff827d9e35627448d9fe6
+size 4690
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/TM/SXQEJM0WJTDHS510NE0ARB.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/TM/SXQEJM0WJTDHS510NE0ARB.uasset
new file mode 100644
index 00000000..36704479
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/TM/SXQEJM0WJTDHS510NE0ARB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:95461b4e892c7faa9c6f4736e6f5f614e163bbe5666bc3c794aa2373be5e95b5
+size 2394
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/ZA/DT4HPQ7S67F0V9G8T1YCQI.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/ZA/DT4HPQ7S67F0V9G8T1YCQI.uasset
new file mode 100644
index 00000000..2087dece
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/9/ZA/DT4HPQ7S67F0V9G8T1YCQI.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:48a4a2eba8060b4e8fc2ef7d45d2cbed7a7fc8c0e1393ed0648d96b407bbb473
+size 4601
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/IY/10597N2XJ21LILF5KIZ5KL.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/IY/10597N2XJ21LILF5KIZ5KL.uasset
new file mode 100644
index 00000000..290014a2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/IY/10597N2XJ21LILF5KIZ5KL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57d2b691962af05ad68bcdac1425a27731afe4da3219fcddd125b7827ffa4033
+size 4715
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/ON/FV27LO60GPVLJOY7YY1WLP.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/ON/FV27LO60GPVLJOY7YY1WLP.uasset
new file mode 100644
index 00000000..8a522426
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/ON/FV27LO60GPVLJOY7YY1WLP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc5301307680ee70a29d57f281faa21861b37bbd7cdeb71bd8c4d7f78b63c2ee
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/PF/EG3JGUPDQZSATN1FLSWJVL.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/PF/EG3JGUPDQZSATN1FLSWJVL.uasset
new file mode 100644
index 00000000..a67a17b2
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/PF/EG3JGUPDQZSATN1FLSWJVL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9a51f8e53482ec71db4c60a9b83ba86412c2a09b64ceafec97d9eb176ac45e6
+size 3577
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/SX/4TUAQI2F98RL122DKAHM7N.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/SX/4TUAQI2F98RL122DKAHM7N.uasset
new file mode 100644
index 00000000..03ec5516
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/SX/4TUAQI2F98RL122DKAHM7N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c2d83a1c4216d4e8663256c26ded9832baa8d603725e6690eba8b702e7286429
+size 2442
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/WI/254BGPLW3CW799JAYW11ZE.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/WI/254BGPLW3CW799JAYW11ZE.uasset
new file mode 100644
index 00000000..fd44451e
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/WI/254BGPLW3CW799JAYW11ZE.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c104ec5adca67bcbc822e379a77c64ade6e6dc0fc31f0b5ab7e8a40978dd81d3
+size 4536
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/8R/JBRRKN8XRT8V47MOSZ3XFX.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/8R/JBRRKN8XRT8V47MOSZ3XFX.uasset
new file mode 100644
index 00000000..48da1872
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/8R/JBRRKN8XRT8V47MOSZ3XFX.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb180ba7ea4720628e20e94d49e9163f003c25a2b273ecaef6cea8138ce045b0
+size 3959
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
new file mode 100644
index 00000000..d4567926
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bcadae2018380b51ecd7bea3850566c6b0013ea6acb8ad1cdb8a0f4307fbc65c
+size 5230
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/KC/MH5IV9S2GG4KCWNMZHWKG9.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/KC/MH5IV9S2GG4KCWNMZHWKG9.uasset
new file mode 100644
index 00000000..307b01a9
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/KC/MH5IV9S2GG4KCWNMZHWKG9.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a1bfc27ac492ac3fece03c083295664ee62db2315e3fdd9ef5d8484c9cedada
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/6W/LBHG7995AIEJVSD5QZYXZS.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/6W/LBHG7995AIEJVSD5QZYXZS.uasset
new file mode 100644
index 00000000..55d4bf60
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/6W/LBHG7995AIEJVSD5QZYXZS.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61472c31c9367301e40cb2d598e5bd9de8159a220d509f9638478bfb98dad958
+size 12446
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/JE/MPPG27DTK7Y2X2HONLOIS2.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/JE/MPPG27DTK7Y2X2HONLOIS2.uasset
new file mode 100644
index 00000000..040b9534
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/JE/MPPG27DTK7Y2X2HONLOIS2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c87a366434e64473d22935b5e9c68acb99184f76d5ed56af04200931155f47d
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/OV/MIML8IG26185E7HH7OUYXY.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/OV/MIML8IG26185E7HH7OUYXY.uasset
new file mode 100644
index 00000000..ddbda486
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/D/OV/MIML8IG26185E7HH7OUYXY.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:592670f9ea8edf0b9085636742da98af0a88a6031082f803938c48bcf73573c4
+size 5311
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/AO/6CUEZ00H5605BZ34CYJ59J.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/AO/6CUEZ00H5605BZ34CYJ59J.uasset
new file mode 100644
index 00000000..a7898461
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/AO/6CUEZ00H5605BZ34CYJ59J.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:906d272fa13dc2a25be6bf7f61780f5840940b7fb54a40b019b344aaeb94e823
+size 4713
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/CR/DRCNPPN33IO9BDIGKV8CQD.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/CR/DRCNPPN33IO9BDIGKV8CQD.uasset
new file mode 100644
index 00000000..5e9674d4
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/CR/DRCNPPN33IO9BDIGKV8CQD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0828e21397762093d0fd8299b39a1fd593299c2f91cefdeb3e0d9bb21584f8e6
+size 4650
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/FJ/TDFYID5LIFN4RZYNHYR2L3.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/FJ/TDFYID5LIFN4RZYNHYR2L3.uasset
new file mode 100644
index 00000000..f8c46abb
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/FJ/TDFYID5LIFN4RZYNHYR2L3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2e7ff25b38356d87268f402d5526e3f3bc3fff044c4365d900754ae17602c562
+size 4655
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/L4/2A3KY5I7FJ21NDC7OURASV.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/L4/2A3KY5I7FJ21NDC7OURASV.uasset
new file mode 100644
index 00000000..7052ebff
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/L4/2A3KY5I7FJ21NDC7OURASV.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ed5a847025a37763ddfd4fb22f866159e46913c6647d43bb32104dedbc75e0d4
+size 4538
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/ML/NLOI6RS1TZE6573JN4LJAU.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/ML/NLOI6RS1TZE6573JN4LJAU.uasset
new file mode 100644
index 00000000..e4311471
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/ML/NLOI6RS1TZE6573JN4LJAU.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b5443b15f085029068d057876ecccfcf9252b6c9eea827f54c291ee4aa60f8ce
+size 4653
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PL/ODMT46SVZ8BKVV6CH39RBJ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PL/ODMT46SVZ8BKVV6CH39RBJ.uasset
new file mode 100644
index 00000000..1a394921
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PL/ODMT46SVZ8BKVV6CH39RBJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2a340b2dd31ca10ee57e81b5c7564c0ae38fd58042ffc4803a7358af1e4df412
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/TC/E3CXYQV6UQS02X2RRKCPDE.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/TC/E3CXYQV6UQS02X2RRKCPDE.uasset
new file mode 100644
index 00000000..99dfa0af
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/TC/E3CXYQV6UQS02X2RRKCPDE.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b76dde1f5ce6a46bdc8b4917fcf89fe4ff2976fb86356402dd5f33a0aec26af9
+size 4692
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/3/IN/ZX0DKIDX2JX3JZ5AHZ358H.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/3/IN/ZX0DKIDX2JX3JZ5AHZ358H.uasset
new file mode 100644
index 00000000..8bc88b22
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/3/IN/ZX0DKIDX2JX3JZ5AHZ358H.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:90f3861f162a74e62d9638a7bf157726f95488a9b7e87aa5955cdaa81767de3b
+size 2186
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/5/ED/F43HQFUB7DXKRU5ZNLN2HL.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/5/ED/F43HQFUB7DXKRU5ZNLN2HL.uasset
new file mode 100644
index 00000000..b26e8770
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/5/ED/F43HQFUB7DXKRU5ZNLN2HL.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64fdade231bc37c873e650f913074ceecc4b5621ee952f20bdd17ddd3533f3fa
+size 2200
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/6/JT/KDT0MAGCOXR70VASIZOKMP.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/6/JT/KDT0MAGCOXR70VASIZOKMP.uasset
new file mode 100644
index 00000000..0f6ff441
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/6/JT/KDT0MAGCOXR70VASIZOKMP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3f7fdb0a5971a633719b2967432504edf6409cdca147a1c11b4049d6dd5f4e7c
+size 2186
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/0J/97389JWAHOKRK9742IJNUD.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/0J/97389JWAHOKRK9742IJNUD.uasset
new file mode 100644
index 00000000..829b8f15
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/0J/97389JWAHOKRK9742IJNUD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee9c5ac0277bfd791d343120790ab822d742ec64658dbc0ec02a88a1156b7217
+size 2188
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/6G/DU9OC4U9R64TY369G0N48F.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/6G/DU9OC4U9R64TY369G0N48F.uasset
new file mode 100644
index 00000000..94b8cb09
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/7/6G/DU9OC4U9R64TY369G0N48F.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99a25acee5c7712ce29bf79274241157a841d8395b4861f048bd9d72508bb87b
+size 2186
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/A/OF/DMAUKRJ7ZVQKZ15OGILSN5.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/A/OF/DMAUKRJ7ZVQKZ15OGILSN5.uasset
new file mode 100644
index 00000000..e67ed7f0
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/A/OF/DMAUKRJ7ZVQKZ15OGILSN5.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9477e753ec6e98c3ac912e3e03ceae0e9b453adb2bf5d0ab2ac0b15de1740c1
+size 2188
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/C/4M/6DZ06BS46GV23GYW6TYVSW.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/C/4M/6DZ06BS46GV23GYW6TYVSW.uasset
new file mode 100644
index 00000000..093a7b9d
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/C/4M/6DZ06BS46GV23GYW6TYVSW.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57c903a6b521f7b86ec75f8a63d8eab9aceabca2a45d5e06dc8b81fbf4c745f7
+size 2192
diff --git a/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/E/KK/K83LURWABW69BW7GEPNTMB.uasset b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/E/KK/K83LURWABW69BW7GEPNTMB.uasset
new file mode 100644
index 00000000..3dac1372
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalObjects__/Levels/EnemyAITest/E/KK/K83LURWABW69BW7GEPNTMB.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0ba7aff1929eb1391d4be9aa86c03d2b2eebdf17ccb29b755a0618675ce05df3
+size 2186
diff --git a/UE5 Layout/Phil_s_UE5_Layout.ini b/UE5 Layout/Phil_s_UE5_Layout.ini
new file mode 100644
index 00000000..abba7c93
--- /dev/null
+++ b/UE5 Layout/Phil_s_UE5_Layout.ini
@@ -0,0 +1,30 @@
+[EditorLayouts]
+LayoutName=NSLOCTEXT("LayoutNamespace", "Phil_s_UE5_Layout", "Phil's UE5 Layout")
+LayoutDescription=NSLOCTEXT("LayoutNamespace", "", "")
+UnrealEd_Layout_v1.5=("Type": "Layout","Name": "UnrealEd_Layout_v1.5","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 2,"Type": "Stack","HideTabWell": false,"ForegroundTab": "LevelEditor","Tabs": [("TabId": "LevelEditor","TabState": "OpenedTab"),("TabId": "DockedToolkit","TabState": "ClosedTab"),("TabId": "ProjectSettings","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Automatic","WindowSize_X": 2236,"WindowSize_Y": 909.99993896484375,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "ContentBrowser1Tab","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": -1058,"WindowPosition_Y": 229,"WindowSize_X": 1000,"WindowSize_Y": 600,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "WidgetReflector","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": 9,"WindowPosition_Y": 186,"WindowSize_X": 1644,"WindowSize_Y": 600,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "MessageLog","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": 457,"WindowPosition_Y": 213,"WindowSize_X": 1000,"WindowSize_Y": 600,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "ReferenceViewer","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": 455,"WindowPosition_Y": 227,"WindowSize_X": 1000,"WindowSize_Y": 600,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "ProjectLauncher","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": 0,"WindowPosition_Y": 58,"WindowSize_X": 1914,"WindowSize_Y": 910,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "EditorSettings","TabState": "ClosedTab"),("TabId": "PluginsEditor","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": 134,"WindowPosition_Y": 74,"WindowSize_X": 1650,"WindowSize_Y": 900,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "BridgeTab","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Vertical","WindowPlacement": "Placement_Specified","WindowPosition_X": 0,"WindowPosition_Y": 58,"WindowSize_X": 1914,"WindowSize_Y": 910,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "StandaloneToolkit","TabState": "ClosedTab")]),("SizeCoefficient": 0.34999999403953552,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "MergeTool","TabState": "ClosedTab")])])])
+LevelEditor_Layout_v1.8=("Type": "Layout","Name": "LevelEditor_Layout_v1.8","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 1,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.75,"Type": "Splitter","Orientation": "Orient_Horizontal","Nodes": [("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "TopLeftModeTab","TabState": "ClosedTab"),("TabId": "LevelEditorToolBox","TabState": "ClosedTab")]),("SizeCoefficient": 1.1499999761581421,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": true,"ForegroundTab": "None","Tabs": [("TabId": "LevelEditorToolBar","TabState": "OpenedTab")]),("SizeCoefficient": 1,"Type": "Stack","HideTabWell": true,"ForegroundTab": "None","Tabs": [("TabId": "EditorModeToolbar","TabState": "ClosedTab")]),("SizeCoefficient": 1,"Type": "Splitter","Orientation": "Orient_Horizontal","Nodes": [("SizeCoefficient": 1.5425490140914917,"Type": "Stack","HideTabWell": true,"ForegroundTab": "LevelEditorViewport","Tabs": [("TabId": "LevelEditorViewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.45745047926902771,"Type": "Stack","HideTabWell": false,"ForegroundTab": "PlacementBrowser","Tabs": [("TabId": "PlacementBrowser","TabState": "OpenedTab")])])])]),("SizeCoefficient": 0.40000000596046448,"Type": "Splitter","Orientation": "Orient_Horizontal","Nodes": [("SizeCoefficient": 0.41683539748191833,"Type": "Stack","HideTabWell": false,"ForegroundTab": "ContentBrowserTab1","Tabs": [("TabId": "EmbeddedSequenceID","TabState": "ClosedTab"),("TabId": "ContentBrowserTab1","TabState": "OpenedTab"),("TabId": "OutputLog","TabState": "OpenedTab"),("TabId": "Sequencer","TabState": "ClosedTab")]),("SizeCoefficient": 0.38316473364830017,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "ContentBrowserTab2","TabState": "ClosedTab")])])]),("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "TakeRecorder","TabState": "ClosedTab")]),("SizeCoefficient": 0.25,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.56138122081756592,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "TopRightModeTab","TabState": "ClosedTab"),("TabId": "LevelEditorLayerBrowser","TabState": "ClosedTab")]),("SizeCoefficient": 0.83861857652664185,"Type": "Stack","HideTabWell": false,"ForegroundTab": "LevelEditorSceneOutliner","Tabs": [("TabId": "BottomRightModeTab","TabState": "ClosedTab"),("TabId": "LevelEditorSelectionDetails","TabState": "OpenedTab"),("TabId": "WorldBrowserPartitionEditor","TabState": "ClosedTab"),("TabId": "WorldSettingsTab","TabState": "ClosedTab"),("TabId": "LevelEditorSceneOutliner","TabState": "OpenedTab")])])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": 457,"WindowPosition_Y": 213,"WindowSize_X": 1000,"WindowSize_Y": 600,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "WorldBrowserDetails","TabState": "ClosedTab")])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_Specified","WindowPosition_X": 457,"WindowPosition_Y": 213,"WindowSize_X": 1000,"WindowSize_Y": 600,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "WorldBrowserHierarchy","TabState": "ClosedTab")])])])
+WidgetBlueprintEditor_Designer_Layout_v4_8=("Type": "Layout","Name": "WidgetBlueprintEditor_Designer_Layout_v4_8","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.15000000596046448,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "WidgetTemplates","Tabs": [("TabId": "WidgetTemplates","TabState": "OpenedTab"),("TabId": "WidgetLibrary","TabState": "OpenedTab")]),("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SlateHierarchy","Tabs": [("TabId": "SlateHierarchy","TabState": "OpenedTab"),("TabId": "BindWidget","TabState": "OpenedTab")])]),("SizeCoefficient": 0.85000002384185791,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.69999998807907104,"Type": "Splitter","Orientation": "Orient_Horizontal","Nodes": [("SizeCoefficient": 0.05000000074505806,"Type": "Stack","HideTabWell": true,"ForegroundTab": "None","Tabs": [("TabId": "TopLeftModeTab","TabState": "ClosedTab")]),("SizeCoefficient": 0.80000001192092896,"Type": "Stack","HideTabWell": true,"ForegroundTab": "SlatePreview","Tabs": [("TabId": "SlatePreview","TabState": "OpenedTab")]),("SizeCoefficient": 0.34999999403953552,"Type": "Stack","HideTabWell": false,"ForegroundTab": "WidgetDetails","Tabs": [("TabId": "WidgetDetails","TabState": "OpenedTab")])]),("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Animations","Tabs": [("TabId": "Animations","TabState": "OpenedTab"),("TabId": "EmbeddedSequenceID","TabState": "ClosedTab"),("TabId": "CompilerResults","TabState": "ClosedTab")])])]),("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Vertical","WindowPlacement": "Placement_Specified","WindowPosition_X": 573,"WindowPosition_Y": 306,"WindowSize_X": 768,"WindowSize_Y": 413,"bIsMaximized": false,"Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "SequencerGraphEditor","TabState": "ClosedTab")])])])
+Blueprints_Unified_Components_v7=("Type": "Layout","Name": "Blueprints_Unified_Components_v7","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.15000000596046448,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "ConstructionScriptEditor","Tabs": [("TabId": "ConstructionScriptEditor","TabState": "OpenedTab")]),("SizeCoefficient": 0.69999998807907104,"Type": "Stack","HideTabWell": false,"ForegroundTab": "MyBlueprint","Tabs": [("TabId": "MyBlueprint","TabState": "OpenedTab")])]),("SizeCoefficient": 0.60000002384185791,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.80000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SCSViewport","Tabs": [("TabId": "SCSViewport","TabState": "OpenedTab"),("TabId": "Document","TabState": "ClosedTab")]),("SizeCoefficient": 0.20000000298023224,"Type": "Stack","HideTabWell": false,"ForegroundTab": "FindResults","Tabs": [("TabId": "EmbeddedSequenceID","TabState": "ClosedTab"),("TabId": "CompilerResults","TabState": "OpenedTab"),("TabId": "FindResults","TabState": "OpenedTab"),("TabId": "BookmarkList","TabState": "ClosedTab")])]),("SizeCoefficient": 0.25,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Inspector","Tabs": [("TabId": "Inspector","TabState": "OpenedTab"),("TabId": "PaletteList","TabState": "ClosedTab")])])])
+Standalone_TextureEditor_Layout_v5=("Type": "Layout","Name": "Standalone_TextureEditor_Layout_v5","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": true,"ForegroundTab": "TextureEditor_Viewport","Tabs": [("TabId": "TextureEditor_Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.33000001311302185,"Type": "Stack","HideTabWell": false,"ForegroundTab": "TextureEditor_Properties","Tabs": [("TabId": "TextureEditor_Properties","TabState": "OpenedTab"),("TabId": "TextureEditor_Oodle","TabState": "OpenedTab")])])])
+Standalone_BlueprintDefaults_Layout_v7=("Type": "Layout","Name": "Standalone_BlueprintDefaults_Layout_v7","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Vertical","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": true,"ForegroundTab": "DefaultEditor","Tabs": [("TabId": "DefaultEditor","TabState": "OpenedTab")])])])
+Blueprints_Unified_v5=("Type": "Layout","Name": "Blueprints_Unified_v5","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.15000000596046448,"Type": "Stack","HideTabWell": false,"ForegroundTab": "MyBlueprint","Tabs": [("TabId": "MyBlueprint","TabState": "OpenedTab")]),("SizeCoefficient": 0.60000002384185791,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.80000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Document","Tabs": [("TabId": "Document","TabState": "ClosedTab")]),("SizeCoefficient": 0.20000000298023224,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "EmbeddedSequenceID","TabState": "ClosedTab"),("TabId": "CompilerResults","TabState": "ClosedTab"),("TabId": "FindResults","TabState": "ClosedTab"),("TabId": "BookmarkList","TabState": "ClosedTab")])]),("SizeCoefficient": 0.25,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Inspector","Tabs": [("TabId": "Inspector","TabState": "OpenedTab"),("TabId": "PaletteList","TabState": "ClosedTab")])])])
+Standalone_SimpleAssetEditor_Layout_v4=("Type": "Layout","Name": "Standalone_SimpleAssetEditor_Layout_v4","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Vertical","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "GenericEditor_Properties","Tabs": [("TabId": "GenericEditor_Properties","TabState": "OpenedTab")])])])
+Standalone_DataTableEditor_Layout_v6=("Type": "Layout","Name": "Standalone_DataTableEditor_Layout_v6","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Vertical","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "DataTableEditor_DataTable","Tabs": [("TabId": "DataTableEditor_DataTable","TabState": "OpenedTab"),("TabId": "DataTableEditor_DataTableDetails","TabState": "OpenedTab")]),("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "DataTableEditor_RowEditor","Tabs": [("TabId": "DataTableEditor_RowEditor","TabState": "OpenedTab")])])])
+WidgetBlueprintEditor_Graph_Layout_v2x1=("Type": "Layout","Name": "WidgetBlueprintEditor_Graph_Layout_v2x1","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.15000000596046448,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "MyBlueprint","Tabs": [("TabId": "MyBlueprint","TabState": "OpenedTab")]),("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Inspector","Tabs": [("TabId": "Inspector","TabState": "OpenedTab")])]),("SizeCoefficient": 0.69999998807907104,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.80000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Document","Tabs": [("TabId": "Document","TabState": "ClosedTab")]),("SizeCoefficient": 0.20000000298023224,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "EmbeddedSequenceID","TabState": "ClosedTab"),("TabId": "CompilerResults","TabState": "ClosedTab"),("TabId": "FindResults","TabState": "ClosedTab")])]),("SizeCoefficient": 0.15000000596046448,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "PaletteList","TabState": "ClosedTab")])])])
+Stanalone_AnimationBlueprintEditMode_Layout_v1.4=("Type": "Layout","Name": "Stanalone_AnimationBlueprintEditMode_Layout_v1.4","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.25,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": true,"ForegroundTab": "Viewport","Tabs": [("TabId": "Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "MyBlueprint","Tabs": [("TabId": "AnimCurveViewerTab","TabState": "ClosedTab"),("TabId": "SkeletonTreeView","TabState": "ClosedTab"),("TabId": "PoseWatchManager","TabState": "OpenedTab"),("TabId": "MyBlueprint","TabState": "OpenedTab")])]),("SizeCoefficient": 0.55000001192092896,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.80000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Document","Tabs": [("TabId": "Document","TabState": "ClosedTab")]),("SizeCoefficient": 0.20000000298023224,"Type": "Stack","HideTabWell": false,"ForegroundTab": "CompilerResults","Tabs": [("TabId": "CompilerResults","TabState": "OpenedTab"),("TabId": "FindResults","TabState": "ClosedTab")])]),("SizeCoefficient": 0.20000000298023224,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Inspector","Tabs": [("TabId": "Inspector","TabState": "OpenedTab"),("TabId": "AdvancedPreviewTab","TabState": "OpenedTab"),("TabId": "PersonaSequenceRecorderSettings","TabState": "ClosedTab"),("TabId": "AnimBlueprintParentPlayerEditor","TabState": "ClosedTab")]),("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SequenceBrowser","Tabs": [("TabId": "AnimBlueprintPreviewEditor","TabState": "OpenedTab"),("TabId": "SequenceBrowser","TabState": "OpenedTab"),("TabId": "SkeletonSlotNames","TabState": "ClosedTab")])])])])
+Standalone_MaterialEditor_Layout_v13=("Type": "Layout","Name": "Standalone_MaterialEditor_Layout_v13","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.14999999105930328,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": true,"ForegroundTab": "MaterialEditor_Preview","Tabs": [("TabId": "MaterialEditor_Preview","TabState": "OpenedTab")]),("SizeCoefficient": 1,"Type": "Stack","HideTabWell": false,"ForegroundTab": "MaterialEditor_MaterialProperties","Tabs": [("TabId": "MaterialEditor_MaterialProperties","TabState": "OpenedTab"),("TabId": "MaterialEditor_PreviewSettings","TabState": "ClosedTab"),("TabId": "MaterialEditor_ParameterDefaults","TabState": "OpenedTab"),("TabId": "MaterialEditor_CustomPrimitiveData","TabState": "ClosedTab"),("TabId": "MaterialInstanceEditor_MaterialLayerProperties","TabState": "ClosedTab")])]),("SizeCoefficient": 0.59999996423721313,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.80000001192092896,"Type": "Stack","HideTabWell": true,"ForegroundTab": "Document","Tabs": [("TabId": "Document","TabState": "OpenedTab")]),("SizeCoefficient": 0.20000000298023224,"Type": "Stack","HideTabWell": false,"ForegroundTab": "OldMaterialStats_Grid","Tabs": [("TabId": "MaterialStats_Grid","TabState": "ClosedTab"),("TabId": "OldMaterialStats_Grid","TabState": "OpenedTab"),("TabId": "MaterialEditor_Find","TabState": "ClosedTab")])]),("SizeCoefficient": 0.14999999105930328,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "MaterialEditor_Palette","TabState": "SidebarTab","SidebarLocation": "Right","SidebarCoeff": 0.14000000059604645,"SidebarPinned": false)])])])
+Standalone_StaticMeshEditor_Layout_v6=("Type": "Layout","Name": "Standalone_StaticMeshEditor_Layout_v6","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.73684209585189819,"Type": "Stack","HideTabWell": true,"ForegroundTab": "StaticMeshEditor_Viewport","Tabs": [("TabId": "StaticMeshEditor_Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.26315790414810181,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.69999998807907104,"Type": "Stack","HideTabWell": false,"ForegroundTab": "StaticMeshEditor_Properties","Tabs": [("TabId": "StaticMeshEditor_Properties","TabState": "OpenedTab"),("TabId": "StaticMeshEditor_SocketManager","TabState": "OpenedTab"),("TabId": "TopLeftModeTab","TabState": "ClosedTab")]),("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "None","Tabs": [("TabId": "StaticMeshEditor_SocketManager","TabState": "OpenedTab"),("TabId": "TopLeftModeTab","TabState": "ClosedTab"),("TabId": "StaticMeshEditor_Collision","TabState": "ClosedTab")])])])])
+Standalone_SkeletalMeshEditor_Layout_v3.4=("Type": "Layout","Name": "Standalone_SkeletalMeshEditor_Layout_v3.4","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.17999999225139618,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SkeletonTreeView","Tabs": [("TabId": "AnimAssetPropertiesTab","TabState": "OpenedTab"),("TabId": "SkeletonTreeView","TabState": "OpenedTab")]),("SizeCoefficient": 0.54000002145767212,"Type": "Stack","HideTabWell": true,"ForegroundTab": "Viewport","Tabs": [("TabId": "Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.17999999225139618,"Type": "Stack","HideTabWell": false,"ForegroundTab": "MorphTargetsTab","Tabs": [("TabId": "MorphTargetsTab","TabState": "OpenedTab"),("TabId": "DetailsTab","TabState": "ClosedTab"),("TabId": "ToolBoxDetailsTab","TabState": "ClosedTab"),("TabId": "AdvancedPreviewTab","TabState": "OpenedTab"),("TabId": "PersonaSequenceRecorderSettings","TabState": "ClosedTab")])])])
+Standalone_AnimationEditor_Layout_v1.4=("Type": "Layout","Name": "Standalone_AnimationEditor_Layout_v1.4","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.17999999225139618,"Type": "Stack","HideTabWell": false,"ForegroundTab": "AnimAssetPropertiesTab","Tabs": [("TabId": "SkeletonTreeView","TabState": "OpenedTab"),("TabId": "AnimAssetPropertiesTab","TabState": "OpenedTab")]),("SizeCoefficient": 0.54000002145767212,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.60000002384185791,"Type": "Stack","HideTabWell": true,"ForegroundTab": "Viewport","Tabs": [("TabId": "Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.40000000596046448,"Type": "Stack","HideTabWell": true,"ForegroundTab": "Document","Tabs": [("TabId": "Document","TabState": "ClosedTab"),("TabId": "CurveEditor","TabState": "ClosedTab")])]),("SizeCoefficient": 0.17999999225139618,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.60000002384185791,"Type": "Stack","HideTabWell": false,"ForegroundTab": "DetailsTab","Tabs": [("TabId": "DetailsTab","TabState": "OpenedTab"),("TabId": "AdvancedPreviewTab","TabState": "OpenedTab"),("TabId": "PersonaSequenceRecorderSettings","TabState": "ClosedTab")]),("SizeCoefficient": 0.40000000596046448,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SequenceBrowser","Tabs": [("TabId": "SequenceBrowser","TabState": "OpenedTab"),("TabId": "AnimMontageSections","TabState": "ClosedTab"),("TabId": "AnimCurveViewerTab","TabState": "ClosedTab"),("TabId": "SkeletonSlotNames","TabState": "ClosedTab")])])])])
+Standalone_SkeletonEditor_Layout_v1.3=("Type": "Layout","Name": "Standalone_SkeletonEditor_Layout_v1.3","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.17999999225139618,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SkeletonTreeView","Tabs": [("TabId": "SkeletonTreeView","TabState": "OpenedTab"),("TabId": "RetargetManager","TabState": "ClosedTab")]),("SizeCoefficient": 0.54000002145767212,"Type": "Stack","HideTabWell": true,"ForegroundTab": "Viewport","Tabs": [("TabId": "Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.17999999225139618,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "AdvancedPreviewTab","Tabs": [("TabId": "DetailsTab","TabState": "OpenedTab"),("TabId": "AdvancedPreviewTab","TabState": "OpenedTab"),("TabId": "PersonaSequenceRecorderSettings","TabState": "ClosedTab")]),("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SkeletonAnimNotifies","Tabs": [("TabId": "SkeletonAnimNotifies","TabState": "OpenedTab"),("TabId": "SequenceBrowser","TabState": "OpenedTab"),("TabId": "AnimCurveViewerTab","TabState": "OpenedTab"),("TabId": "SkeletonSlotNames","TabState": "ClosedTab")])])])])
+Standalone_PhysicsAssetEditor_Layout_v5.3=("Type": "Layout","Name": "Standalone_PhysicsAssetEditor_Layout_v5.3","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.17999999225139618,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.60000002384185791,"Type": "Stack","HideTabWell": false,"ForegroundTab": "SkeletonTreeView","Tabs": [("TabId": "SkeletonTreeView","TabState": "OpenedTab")]),("SizeCoefficient": 0.40000000596046448,"Type": "Stack","HideTabWell": false,"ForegroundTab": "PhysicsAssetGraphView","Tabs": [("TabId": "PhysicsAssetGraphView","TabState": "OpenedTab")])]),("SizeCoefficient": 0.54000002145767212,"Type": "Stack","HideTabWell": true,"ForegroundTab": "Viewport","Tabs": [("TabId": "Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.17999999225139618,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.60000002384185791,"Type": "Stack","HideTabWell": false,"ForegroundTab": "DetailsTab","Tabs": [("TabId": "DetailsTab","TabState": "OpenedTab"),("TabId": "AdvancedPreviewTab","TabState": "OpenedTab"),("TabId": "PersonaSequenceRecorderSettings","TabState": "ClosedTab")]),("SizeCoefficient": 0.40000000596046448,"Type": "Stack","HideTabWell": false,"ForegroundTab": "PhysicsAssetTools","Tabs": [("TabId": "PhysicsAssetTools","TabState": "OpenedTab"),("TabId": "PhysicsAssetProfilesView","TabState": "OpenedTab")])])])])
+UVEditorLayout2=("Type": "Layout","Name": "UVEditorLayout2","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.20000000298023224,"Type": "Stack","HideTabWell": true,"ForegroundTab": "None","Tabs": [("TabId": "TopLeftModeTab","TabState": "ClosedTab")]),("SizeCoefficient": 0.40000000596046448,"Type": "Stack","HideTabWell": true,"ForegroundTab": "BaseAssetToolkit_Viewport","Tabs": [("TabId": "BaseAssetToolkit_Viewport","TabState": "OpenedTab")]),("SizeCoefficient": 0.40000000596046448,"Type": "Stack","HideTabWell": true,"ForegroundTab": "UVEditor_LivePreviewTab","Tabs": [("TabId": "UVEditor_LivePreviewTab","TabState": "OpenedTab")])])])
+Standalone_SoundCueEditor_Layout_v5=("Type": "Layout","Name": "Standalone_SoundCueEditor_Layout_v5","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.20249998569488525,"Type": "Stack","HideTabWell": true,"ForegroundTab": "SoundCueEditor_Properties","Tabs": [("TabId": "SoundCueEditor_Properties","TabState": "OpenedTab")]),("SizeCoefficient": 0.58499997854232788,"Type": "Stack","HideTabWell": true,"ForegroundTab": "SoundCueEditor_GraphCanvas","Tabs": [("TabId": "SoundCueEditor_GraphCanvas","TabState": "OpenedTab")]),("SizeCoefficient": 0.11249999701976776,"Type": "Stack","HideTabWell": true,"ForegroundTab": "SoundCueEditor_Palette","Tabs": [("TabId": "SoundCueEditor_Palette","TabState": "OpenedTab")])])])
+Standalone_BehaviorTree_Layout_v2=("Type": "Layout","Name": "Standalone_BehaviorTree_Layout_v2","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.69999998807907104,"Type": "Stack","HideTabWell": false,"ForegroundTab": "Document","Tabs": [("TabId": "Document","TabState": "ClosedTab")]),("SizeCoefficient": 0.30000001192092896,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.60000002384185791,"Type": "Stack","HideTabWell": false,"ForegroundTab": "BehaviorTreeEditor_Properties","Tabs": [("TabId": "BehaviorTreeEditor_Properties","TabState": "OpenedTab"),("TabId": "BehaviorTreeEditor_Search","TabState": "ClosedTab")]),("SizeCoefficient": 0.40000000596046448,"Type": "Stack","HideTabWell": false,"ForegroundTab": "BehaviorTreeEditor_Blackboard","Tabs": [("TabId": "BehaviorTreeEditor_Blackboard","TabState": "OpenedTab")])])])])
+WidgetReflector_Layout_NoStats_v2=("Type": "Layout","Name": "WidgetReflector_Layout_NoStats_v2","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Vertical","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 1,"Type": "Stack","HideTabWell": true,"ForegroundTab": "WidgetReflector.SlateOptionsTab","Tabs": [("TabId": "WidgetReflector.SlateOptionsTab","TabState": "OpenedTab")]),("SizeCoefficient": 1,"Type": "Splitter","Orientation": "Orient_Horizontal","Nodes": [("SizeCoefficient": 1,"Type": "Splitter","Orientation": "Orient_Vertical","Nodes": [("SizeCoefficient": 0.69999998807907104,"Type": "Stack","HideTabWell": true,"ForegroundTab": "WidgetReflector.WidgetHierarchyTab","Tabs": [("TabId": "WidgetReflector.WidgetHierarchyTab","TabState": "OpenedTab")]),("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": true,"ForegroundTab": "None","Tabs": [("TabId": "WidgetReflector.SnapshotWidgetPickerTab","TabState": "ClosedTab"),("TabId": "WidgetReflector.WidgetEventsTab","TabState": "ClosedTab"),("TabId": "WidgetReflector.HittestGridTab","TabState": "ClosedTab"),("TabId": "WidgetReflector.WidgetList","TabState": "ClosedTab")])]),("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": true,"ForegroundTab": "WidgetReflector.WidgetDetailsTab","Tabs": [("TabId": "WidgetReflector.WidgetDetailsTab","TabState": "OpenedTab")])])])])
+Standalone_MaterialInstanceEditor_Layout_v8=("Type": "Layout","Name": "Standalone_MaterialInstanceEditor_Layout_v8","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.62999999523162842,"Type": "Stack","HideTabWell": true,"ForegroundTab": "MaterialInstanceEditor_Preview","Tabs": [("TabId": "MaterialInstanceEditor_Preview","TabState": "OpenedTab"),("TabId": "MaterialInstanceEditor_PreviewSettings","TabState": "ClosedTab")]),("SizeCoefficient": 0.27000001072883606,"Type": "Stack","HideTabWell": false,"ForegroundTab": "MaterialInstanceEditor_MaterialProperties","Tabs": [("TabId": "MaterialInstanceEditor_MaterialProperties","TabState": "OpenedTab"),("TabId": "MaterialInstanceEditor_MaterialLayerProperties","TabState": "OpenedTab")])])])
+None=("Type": "Layout","Name": "None","PrimaryAreaIndex": -1,"Areas": [])
+Standalone_ControlRigEditMode_Layout_v1.5=("Type": "Layout","Name": "Standalone_ControlRigEditMode_Layout_v1.5","PrimaryAreaIndex": -1,"Areas": [])
+Standalone_BlackboardEditor_Layout_v2=("Type": "Layout","Name": "Standalone_BlackboardEditor_Layout_v2","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "BehaviorTreeEditor_BlackboardEditor","Tabs": [("TabId": "BehaviorTreeEditor_BlackboardEditor","TabState": "OpenedTab")]),("SizeCoefficient": 0.5,"Type": "Stack","HideTabWell": false,"ForegroundTab": "BehaviorTreeEditor_BlackboardProperties","Tabs": [("TabId": "BehaviorTreeEditor_BlackboardProperties","TabState": "OpenedTab")])])])
+Standalone_EnvironmentQuery_Layout_v2=("Type": "Layout","Name": "Standalone_EnvironmentQuery_Layout_v2","PrimaryAreaIndex": 0,"Areas": [("SizeCoefficient": 1,"Type": "Area","Orientation": "Orient_Horizontal","WindowPlacement": "Placement_NoWindow","Nodes": [("SizeCoefficient": 0.69999998807907104,"Type": "Stack","HideTabWell": false,"ForegroundTab": "EnvironmentQueryEditor_UpdateGraph","Tabs": [("TabId": "EnvironmentQueryEditor_UpdateGraph","TabState": "OpenedTab")]),("SizeCoefficient": 0.30000001192092896,"Type": "Stack","HideTabWell": false,"ForegroundTab": "EnvironmentQueryEditor_Properties","Tabs": [("TabId": "EnvironmentQueryEditor_Properties","TabState": "OpenedTab"),("TabId": "EnvironmentQueryEditor_Profiler","TabState": "OpenedTab")])])])
+
From b7185694484a6f3493fb993a8b1ab3654e768f9b Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Mon, 2 Oct 2023 01:30:29 +0100
Subject: [PATCH 037/112] Update EnemyFindCover EQS to Find Corners & Attack
---
EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset | 4 ++--
EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset | 4 ++--
.../Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset | 3 +++
EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset | 3 ---
4 files changed, 7 insertions(+), 7 deletions(-)
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
delete mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
index 52c3d994..83745345 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0c439461f7778a2156b0c90fe965cd8bb56c84703110c655e5682b15da9ba2b7
-size 2952
+oid sha256:73bd053142b2dc9fb78973a96805b66270a7f976a36986ef658580a9d2ba75a7
+size 4123
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
index ced1ec89..2b5f26e3 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a6d42687973696b95d580795273e6993dd6eba1d2e5d513e21bf0d876a05c6e1
-size 9634
+oid sha256:8cc72d5c792915b0c3002c85fb1c1fc24fcf3a88d4fa85200d1d8b04f483f4ef
+size 15107
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
new file mode 100644
index 00000000..31dcfb1a
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fcf182403f772d060b1f0c2997671ec13f6f6d32dd3817841a4f612ad87dff81
+size 10974
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset
deleted file mode 100644
index 6e74a14b..00000000
--- a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_FindCover.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7fcaaf5f822a38ea450d63d75ae96d5207fd7b0d37e0c06edc04938dc3d19e48
-size 11056
From 174becfdf128ea21005010b294d6cb3ee28731f2 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Mon, 2 Oct 2023 01:31:06 +0100
Subject: [PATCH 038/112] Update Enemy AI Controller for Increased Sight
Perception
---
.../EndlessVendetta/AI/AI_EnemyController.cpp | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
index eca94318..94ef8372 100644
--- a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
@@ -5,6 +5,7 @@
#include "EnemyCharacter.h"
#include "BehaviorTree/BlackboardComponent.h"
+#include "EndlessVendetta/EndlessVendettaCharacter.h"
#include "Perception/AIPerceptionComponent.h"
#include "Perception/AISenseConfig_Sight.h"
@@ -43,6 +44,10 @@ void AAI_EnemyController::OnPossess(APawn* InPawn)
void AAI_EnemyController::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
+ if (GetBlackboardComponent()->GetValueAsBool("CanSeePlayer"))
+ {
+ GetBlackboardComponent()->SetValueAsVector("TargetLocation", GetWorld()->GetFirstPlayerController()->GetPawn()->GetActorLocation());
+ }
}
void AAI_EnemyController::SetupPerceptionSystem()
@@ -51,10 +56,10 @@ void AAI_EnemyController::SetupPerceptionSystem()
if (IsValid(SightConfig))
{
SetPerceptionComponent(*CreateDefaultSubobject(TEXT("Perception Component")));
- SightConfig->SightRadius = 1000.0f;
- SightConfig->LoseSightRadius = 1100.0f;
- SightConfig->PeripheralVisionAngleDegrees = 90.0f;
- SightConfig->SetMaxAge(5.0f);
+ SightConfig->SightRadius = 2000.0f;
+ SightConfig->LoseSightRadius = 2100.0f;
+ SightConfig->PeripheralVisionAngleDegrees = 70.0f;
+ SightConfig->SetMaxAge(20.0f);
SightConfig->AutoSuccessRangeFromLastSeenLocation = 520.0f;
SightConfig->DetectionByAffiliation.bDetectEnemies = true;
SightConfig->DetectionByAffiliation.bDetectFriendlies = true;
@@ -67,17 +72,19 @@ void AAI_EnemyController::SetupPerceptionSystem()
void AAI_EnemyController::OnTargetPerceptionUpdated(AActor* Actor, FAIStimulus const Stimulus)
{
- if (AEnemyCharacter* const EnemyCharacter = Cast(Actor))
+ if (AEndlessVendettaCharacter* const PlayerCharacter = Cast(Actor))
{
if (Stimulus.WasSuccessfullySensed())
{
- GetBlackboardComponent()->SetValueAsObject("TargetActor", Actor);
+ GetBlackboardComponent()->SetValueAsObject("TargetPlayer", Actor);
GetBlackboardComponent()->SetValueAsVector("TargetLocation", Stimulus.StimulusLocation);
+ GetBlackboardComponent()->SetValueAsBool("CanSeePlayer", true);
}
else
{
GetBlackboardComponent()->ClearValue("TargetActor");
GetBlackboardComponent()->ClearValue("TargetLocation");
+ GetBlackboardComponent()->SetValueAsBool("CanSeePlayer", false);
}
}
}
From b1531a5acfd4619d28ca97f4cab8d8197c0f27bd Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Mon, 2 Oct 2023 01:31:38 +0100
Subject: [PATCH 039/112] Add Enemy AI Behaviour Task for Attacking Player
---
.../AI/BTTask_AttackPlayer.cpp | 27 +++++++++++++++++++
.../EndlessVendetta/AI/BTTask_AttackPlayer.h | 19 +++++++++++++
2 files changed, 46 insertions(+)
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp
new file mode 100644
index 00000000..07db4b83
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp
@@ -0,0 +1,27 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "BTTask_AttackPlayer.h"
+
+#include "AI_EnemyController.h"
+#include "BehaviorTree/BlackboardComponent.h"
+
+UBTTask_AttackPlayer::UBTTask_AttackPlayer(FObjectInitializer const& ObjectInitializer)
+{
+}
+
+EBTNodeResult::Type UBTTask_AttackPlayer::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
+{
+ if (const AAI_EnemyController* const AIController = Cast(OwnerComp.GetAIOwner()))
+ {
+ if (const UBlackboardComponent* const Blackboard = OwnerComp.GetBlackboardComponent())
+ {
+ FVector const Origin = AIController->GetPawn()->GetActorLocation();
+ FVector const PlayerLocation = Blackboard->GetValueAsVector("TargetLocation");
+ DrawDebugLine(GetWorld(), Origin, PlayerLocation, FColor::Green, false, 1.f, 0, 1.f);
+ FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded);
+ return EBTNodeResult::Succeeded;
+ }
+ }
+ return EBTNodeResult::Failed;
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.h b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.h
new file mode 100644
index 00000000..bc228d3d
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.h
@@ -0,0 +1,19 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "BehaviorTree/Tasks/BTTask_BlackboardBase.h"
+#include "BTTask_AttackPlayer.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API UBTTask_AttackPlayer : public UBTTask_BlackboardBase
+{
+ GENERATED_BODY()
+public:
+ explicit UBTTask_AttackPlayer(FObjectInitializer const& ObjectInitializer);
+ virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
+};
From c0cc7c4782b27f99bb51ba162f956cd6bcd15b10 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Mon, 2 Oct 2023 09:23:38 +0100
Subject: [PATCH 040/112] Fixed Issue with Searching Actor Array in LOS Test
Temp solution, a work around for quickly finding a specific actor in array
---
.../Content/StarterContent/Architecture/Floor_400x400.uasset | 4 ++--
.../Content/StarterContent/Audio/Collapse01.uasset | 4 ++--
.../GadgetClasses/Recon/VisionLink/VisionLink.cpp | 4 ++--
.../Recon/VisionLink/VisionLinkEnemyLOSTest.cpp | 5 +++--
.../GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h | 2 +-
5 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index 96cc6e20..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:abd4f2fad257e7b583ac37aa10b18aca055f039b950e0100e587611f13a0e39b
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset b/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
index 5e3ff30e..198f128d 100644
--- a/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
+++ b/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:85c827023ee4b466228ec65e92b4b4a0415a106de041ac1c2cab481a2a5dfa8d
-size 348532
+oid sha256:43d44b5a53fbbfc62522f67ad9523360b15677e3d0caeea96f4d9d0580a013cd
+size 353935
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index 9ac77162..34e523ae 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -43,8 +43,8 @@ void AVisionLink::SendOutPingPulse()
FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
- TArray EmptyActorArray;
- Cast(LOSTestActor)->TestLOS(EmptyActorArray, GetOwner());
+ TArray EmptyFStringArray;
+ Cast(LOSTestActor)->TestLOS(EmptyFStringArray, GetOwner());
UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
index 7d837c18..b81b4d54 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
@@ -28,7 +28,7 @@ void AVisionLinkEnemyLOSTest::Tick(float DeltaTime)
}
-void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSActor)
+void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSActor)
{
// Get all overlapping Actors
UBoxComponent* CollisionBox = Cast(GetComponentByClass(UBoxComponent::StaticClass()));
@@ -47,8 +47,9 @@ void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSA
for (int i = 0; i < OverlappingEnemies.Num(); i++)
{
+ UE_LOG(LogTemp, Warning, TEXT("Overlapping Enemy Name: %s"), *OverlappingEnemies[i]->GetName());
// Overlapping Enemies Array should only contain enemies which aren't already in the link
- if (!OverlappingEnemies[i]->ActorHasTag(FName("Enemy")) || EnemiesInLink.Contains(OverlappingEnemies[i])) OverlappingEnemies.RemoveAt(i);
+ if (!OverlappingEnemies[i]->ActorHasTag(FName("Enemy")) || EnemiesInLink.Contains(OverlappingEnemies[i]->GetName())) OverlappingEnemies.RemoveAt(i);
}
if (OverlappingEnemies.IsEmpty())
{
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
index 40d7846a..c9d6b81a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
@@ -26,5 +26,5 @@ public:
// Called every frame
virtual void Tick(float DeltaTime) override;
- void TestLOS(TArray EnemiesInLink, AActor* LOS_Actor);
+ void TestLOS(TArray EnemiesInLink, AActor* LOS_Actor);
};
From 34be0929e6a37c169fb3b26f0ea5d42e01ca45db Mon Sep 17 00:00:00 2001
From: Rafal Swierczek
Date: Mon, 2 Oct 2023 13:16:25 +0100
Subject: [PATCH 041/112] Fixed Missing Semi Colon After Delegate
---
.../Source/EndlessVendetta/BountySystem/BountyClass.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
index 9dfb87e1..4f65bae9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
@@ -7,7 +7,7 @@
#include "GameFramework/Actor.h"
#include "BountyClass.generated.h"
-DECLARE_DYNAMIC_MULTICAST_DELEGATE(FCompletedFirstCheckpoint)
+DECLARE_DYNAMIC_MULTICAST_DELEGATE(FCompletedFirstCheckpoint);
UCLASS()
class ENDLESSVENDETTA_API ABountyClass : public AActor
From 5743e885e0135bd06cf73bc38bb58707019a650c Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Mon, 2 Oct 2023 13:36:19 +0100
Subject: [PATCH 042/112] Basic Shooting functionality fixed
Shooting now shoots a ray out and detects what object is being hit
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-
.../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 +-
.../BaseWeapons/BP_BaseWeapon.uasset | 4 +-
.../Architecture/Floor_400x400.uasset | 4 +-
.../StarterContent/Audio/Collapse01.uasset | 4 +-
.../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 2 +-
.../BountySystem/BountyClass.h | 2 +-
.../EndlessVendettaCharacter.cpp | 131 +++---------------
.../EndlessVendettaCharacter.h | 5 +-
.../WeaponSystem/BaseWeaponClass.cpp | 33 ++---
.../WeaponSystem/BaseWeaponClass.h | 8 +-
11 files changed, 57 insertions(+), 144 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 68a7823a..fda783bd 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:072d87c768407249e6e50f7b87ab9a88392c17cf82c72934e3c947e2943210bb
-size 26284
+oid sha256:d580d82ff6abdbebffa1e57dc264fb6e4b0e6c53e28aa0c853b56149f7867471
+size 27305
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
index 50209cd2..52b41107 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8b311799aa263b7af6d3eb738da33d39b0d40d7883bf0a4e3cb6024e06157cec
-size 37724
+oid sha256:21afd371e599a3fb2c37e3662406978c3305c602a1c77bb3717e9bc4f2514b48
+size 35926
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
index 0aef22ed..063848e3 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a4dfbc572d0f67be5a3c6898946ce7fce2895174236407ce9910f99c59690367
-size 28778
+oid sha256:51cc0f9f0adae065e9941acdd88abe2fe5f7015a3a5343a63f7b0507e90c21ed
+size 28900
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index c2a34afc..ec9ee977 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
-size 14948
+oid sha256:d4e6c0e1dad79feeaa5078889de9cf4c6753f1e77cf7d17a3eb3de082b91d4ae
+size 14831
diff --git a/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset b/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
index 198f128d..5e3ff30e 100644
--- a/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
+++ b/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:43d44b5a53fbbfc62522f67ad9523360b15677e3d0caeea96f4d9d0580a013cd
-size 353935
+oid sha256:85c827023ee4b466228ec65e92b4b4a0415a106de041ac1c2cab481a2a5dfa8d
+size 348532
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
index 4f6bab25..4777b0ad 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:fdab805d14a7bc4f2fa61abc0106161cf2626e8857ae14089d5e4c93f9a320d6
+oid sha256:5b8b34286278ebb69adb37de9d922ea859ecab2e2547f7e3a634d75c61522828
size 5061
diff --git a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
index 9dfb87e1..4f65bae9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/BountySystem/BountyClass.h
@@ -7,7 +7,7 @@
#include "GameFramework/Actor.h"
#include "BountyClass.generated.h"
-DECLARE_DYNAMIC_MULTICAST_DELEGATE(FCompletedFirstCheckpoint)
+DECLARE_DYNAMIC_MULTICAST_DELEGATE(FCompletedFirstCheckpoint);
UCLASS()
class ENDLESSVENDETTA_API ABountyClass : public AActor
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 448d805c..ace56207 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -59,7 +59,7 @@ void AEndlessVendettaCharacter::BeginPlay()
GadgetManager->SpawnGadgets(Cast(PlayersCamera));
break;
}
-
+
}
//////////////////////////////////////////////////////////////////////////// Input
@@ -82,13 +82,14 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
// Gadget Toggling
EnhancedInputComponent->BindAction(ReconAction, ETriggerEvent::Started, this, &AEndlessVendettaCharacter::ToggleRecon);
EnhancedInputComponent->BindAction(CombatAction, ETriggerEvent::Started, this, &AEndlessVendettaCharacter::ToggleCombat);
-
+
//Weapon Switching
EnhancedInputComponent->BindAction(EquipPrimaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipPrimary);
EnhancedInputComponent->BindAction(EquipSecondaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipSecondary);
//Weapon Shooting
EnhancedInputComponent->BindAction(TapShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
+ EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
}
}
@@ -145,12 +146,10 @@ void AEndlessVendettaCharacter::EquipPrimary()
}
if (IsValid(SecondaryWeapon)) EquipSecondary();
-
- // Marcel I respect you, like you and what not, please for the love of god don't touch these two guard clauses
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;/////////////////////////
- if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;///////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;
+ if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;
+
FActorSpawnParameters spawnParams;
spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
@@ -163,131 +162,47 @@ void AEndlessVendettaCharacter::EquipPrimary()
//Changing PrimaryWeaponActor to ABaseWeaponClass type instead of actor and storing it into PrimaryWeapon which is a ABaseClass Object
//We do this because we need to check if PrimaryWeapon is equipped and we want primaryweapon to be ABaseWeapon type and not a generic AActor
PrimaryWeapon = Cast(PrimaryWeaponActor);
-
- //If primary weapon is not there but secondary weapon is it will call equipSecondary.
- //EquipSecondary checks and sees that secondary is there so it will call to destroy itself
- //Code goes back and sees primary weapon is not there anymore and spawns it in.
- //Same thing for the EquipSecondary()
-
- // if (!IsValid(PrimaryWeapon))
- // {
- // if (IsValid(SecondaryWeapon)) EquipSecondary();
- //
- // UE_LOG(LogTemp, Display, TEXT("Primary equipped"));
- // bHasRifle = true;
- // FActorSpawnParameters spawnParams;
- // spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- // FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
- // //Creating a new actor object called PrimaryWeapon that is based off primaryweaponClass
- // AActor* PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams);
- // PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
- // //Changing PrimaryWeaponActor to ABaseWeaponClass type instead of actor and storing it into PrimaryWeapon which is a ABaseClass Object
- // //We do this because we need to check if PrimaryWeapon is equipped and we want primaryweapon to be ABaseWeapon type and not a generic AActor
- // PrimaryWeapon = Cast(PrimaryWeaponActor);
- //
- // }
- // else if (IsValid(PrimaryWeapon))
- // {
- // PrimaryWeapon->Destroy();
- // bHasRifle = false;
- // }
}
void AEndlessVendettaCharacter::EquipSecondary()
{
if (IsValid(SecondaryWeapon))
- {
- SecondaryWeapon->Destroy();
+ {
+ SecondaryWeapon->Destroy();
SecondaryWeapon = nullptr;
- bHasRifle = false;
- return;
- }
+ bHasRifle = false;
+ return;
+ }
if (IsValid(PrimaryWeapon)) EquipPrimary();
-
- // Marcel I respect you, like you and what not, please for the love of god don't touch these two guard clauses
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;/////////////////////////
- if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;///////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ if (GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return;
+ if (GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return;
+
FActorSpawnParameters spawnParams;
spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
-
+
bHasRifle = true;
AActor* SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams);
SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
SecondaryWeapon = Cast(SecondaryWeaponActor);
-
- // if (!IsValid(SecondaryWeapon))
- // {
- // if (IsValid(PrimaryWeapon)) EquipPrimary();
- //
- // UE_LOG(LogTemp, Display, TEXT("Secondary equipped"));
- // bHasRifle = true;
- // FActorSpawnParameters spawnParams;
- // spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- // FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
- // AActor* SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams);
- // SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
- // SecondaryWeapon = Cast(SecondaryWeaponActor);
- // }
- // else if (IsValid(SecondaryWeapon))
- // {
- // SecondaryWeapon->Destroy();
- // bHasRifle = false;
- // }
-
+
+
}
//Calls the fire function in the baseWeaponClass
void AEndlessVendettaCharacter::TapFireCaller()
{
UE_LOG(LogTemp, Warning, TEXT("Tap Fire"));
- // if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
- // {
- // PrimaryWeaponClass.GetDefaultObject()->TapFire();
- // }
+ if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
+ {
+ PrimaryWeapon->TapFire();
+ }
}
-//POTENTIAL PICKUP SYSTEM NEEDS CHANGING BUT YES
-
-//Called from Player BluePrints
-/*void AEndlessVendettaCharacter::WeaponPickUpSystem(AActor* PickedUpWeapon)
-{
- ABaseWeaponClass* WeaponInWorld = Cast(PickedUpWeapon);
- if(WeaponInWorld->IsA(ABaseWeaponClass::StaticClass()))
- {
- if(PrimaryWeapon)
- {
- UE_LOG(LogTemp, Display, TEXT("Primary Weapon Picked up"));
- bHasRifle = true;
- FVector loc = GetActorLocation() + FVector(-50, 0, 0);
- FRotator rot = GetActorRotation();
- FActorSpawnParameters spawnParams;
- spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
- //WeaponInWorld = Cast(GetWorld()->SpawnActor(PrimaryWeapon, loc, rot, spawnParams));
- WeaponInWorld->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
- WeaponInWorld->Destroy();
-
- //for some reason the spawning of the weapon is broken to the players hand so need to fix this.
-
- // potentially add a varibable to check if its a secondary or priamry weapon being picked up
- // add this in the baseweaponclass variable
- }
- }
- if(WeaponInWorld->IsA(ABaseWeaponClass::StaticClass()))
- {
- if(SecondaryWeapon)
- {
- UE_LOG(LogTemp, Display, TEXT("Secondary Weapon Picked up"));
-
- }
- }
-}*/
void AEndlessVendettaCharacter::Move(const FInputActionValue& Value)
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index cf41bef6..20681db6 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -103,7 +103,6 @@ public:
UFUNCTION(BlueprintCallable, Category = "Weapons")
void TapFireCaller();
-
protected:
/** Called for movement input */
void Move(const FInputActionValue& Value);
@@ -119,9 +118,6 @@ protected:
void EquipSecondary();
- //Called from Player BluePrints
- //UFUNCTION(BlueprintCallable, Category = "Weapons")
- //void WeaponPickUpSystem(AActor* PickedUpWeapon);
protected:
// APawn interface
@@ -133,6 +129,7 @@ public:
USkeletalMeshComponent* GetMesh1P() const { return Mesh1P; }
/** Returns FirstPersonCameraComponent subobject **/
UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; }
+
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 0d14f19d..89e02d0a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -22,21 +22,13 @@ void ABaseWeaponClass::BeginPlay()
// Attempt to find the player character
APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0);
player = Cast(PlayerController->GetCharacter());
- if (PlayerController)
+
+ for (UActorComponent* actorComp : player->GetComponentsByTag(UArrowComponent::StaticClass(), FName("GunStart")))
{
- if (player)
- {
- UE_LOG(LogTemp, Display, TEXT("BeginPlay: Player found."));
- }
- else
- {
- UE_LOG(LogTemp, Error, TEXT("BeginPlay: Player not found."));
- }
- }
- else
- {
- UE_LOG(LogTemp, Error, TEXT("BeginPlay: Player controller not found."));
+ GunStartArrow = Cast(actorComp);
+ break;
}
+
}
// Called every frame
@@ -47,20 +39,23 @@ void ABaseWeaponClass::Tick(float DeltaTime)
void ABaseWeaponClass::TapFire()
{
+ FTimerHandle timerHandle;
FHitResult outHit;
FVector traceStart;
FVector traceEnd;
- traceStart = player->GetActorLocation();
- traceEnd = traceStart + (player->GetActorForwardVector() * 50);
- UE_LOG(LogTemp, Display, TEXT("World: %s"), *GetWorld()->GetName());
+ traceStart = GunStartArrow->GetComponentLocation();
+ traceEnd = traceStart + (player->GetActorForwardVector() * BulletDistance);
FCollisionQueryParams collisionParams;
+ collisionParams.AddIgnoredActor(player);
+ collisionParams.AddIgnoredActor(this);
+ GetWorldTimerManager().SetTimer(timerHandle, 1 / FireRate, false, 1.0f);
GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
//Debug line to see where the trace hit
- DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true);
+ DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true, 500.0f, 0U, 5.f);
if (outHit.bBlockingHit)
{
- UE_LOG(LogTemp, Display, TEXT("Hit something"));
+ UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
+
}
- UE_LOG(LogTemp, Display, TEXT("BOOMBOOMBIMBAMBIM"));
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index 2fc1219a..149d45d5 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -4,6 +4,7 @@
#include "CoreMinimal.h"
#include "WeaponItemClass.h"
+#include "Components/ArrowComponent.h"
#include "BaseWeaponClass.generated.h"
class AEndlessVendettaCharacter;
@@ -47,7 +48,12 @@ public:
UPROPERTY(VisibleAnywhere)
ACharacter* player;
-
+private:
+
+ UArrowComponent* GunStartArrow;
+
+ UPROPERTY(EditAnywhere)
+ float BulletDistance;
//Add HoldFire functionality after pistol is complete for holding fire for pistol and make it start spraying innacuratly.
From 495c1fc4ee3ec01aa44319acbc67e649bbb06dff Mon Sep 17 00:00:00 2001
From: Rafal Swierczek
Date: Mon, 2 Oct 2023 13:56:50 +0100
Subject: [PATCH 043/112] Bugfix VisionLink to Deactivate WIP Fucntionalilty
---
.../GadgetClasses/Recon/VisionLink/VisionLink.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index 34e523ae..943897d1 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -38,9 +38,9 @@ void AVisionLink::SendOutPingPulse()
UpdatePulsesRemaining(NumOfPingPulsesLeftInThisCycle);
if (NumOfPingPulsesLeftInThisCycle < 0) return;
- FActorSpawnParameters SpawnParams;
- SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
+ //FActorSpawnParameters SpawnParams;
+ //SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ //FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
TArray EmptyFStringArray;
From f0ac65acb8228a6a7e7c0f6f9dd60923761cc4b1 Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Mon, 2 Oct 2023 14:27:47 +0100
Subject: [PATCH 044/112] Updated GunShooting to fix grabbing forward vector of
guncomp
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 2 +-
.../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 +-
.../BaseWeapons/BP_BaseWeapon.uasset | 4 +-
.../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 2 +-
.../EndlessVendettaCharacter.cpp | 25 ++++++++++--
.../EndlessVendettaCharacter.h | 5 +++
.../WeaponSystem/BaseWeaponClass.cpp | 39 +++++++++++++++++--
.../WeaponSystem/BaseWeaponClass.h | 12 ++++++
8 files changed, 81 insertions(+), 12 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index fda783bd..7d416e94 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d580d82ff6abdbebffa1e57dc264fb6e4b0e6c53e28aa0c853b56149f7867471
+oid sha256:00e38eda0524fe228dc71f14ef9f96ebec3f8142ffaeca9366f253a7456d529b
size 27305
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
index 52b41107..998ce21b 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:21afd371e599a3fb2c37e3662406978c3305c602a1c77bb3717e9bc4f2514b48
-size 35926
+oid sha256:6c3599c78d84a6895d06de8ce3697a6aefd517ac0105d041cab6f5124090bb3b
+size 35834
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
index 063848e3..f09d81f5 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:51cc0f9f0adae065e9941acdd88abe2fe5f7015a3a5343a63f7b0507e90c21ed
-size 28900
+oid sha256:694f084a31b369305b9cf0e066786a624f73721bf819d3823177703341f0b98c
+size 28902
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
index 4777b0ad..b70bdb74 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5b8b34286278ebb69adb37de9d922ea859ecab2e2547f7e3a634d75c61522828
+oid sha256:51fdff374c4c25c321646b9315bc5286b1ddc89511a597538bf96bea96222e02
size 5061
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index ace56207..5a08ac16 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -89,7 +89,8 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
//Weapon Shooting
EnhancedInputComponent->BindAction(TapShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
- EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
+ EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::HoldFireCaller);
+ //EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Completed, this, &AEndlessVendettaCharacter::CancelFire);
}
}
@@ -197,10 +198,28 @@ void AEndlessVendettaCharacter::EquipSecondary()
void AEndlessVendettaCharacter::TapFireCaller()
{
UE_LOG(LogTemp, Warning, TEXT("Tap Fire"));
- if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
+ if (IsValid(PrimaryWeapon))
{
- PrimaryWeapon->TapFire();
+ PrimaryWeapon->TapFire();
}
+ if (IsValid(SecondaryWeapon))
+ {
+ SecondaryWeapon->TapFire();
+ }
+}
+
+void AEndlessVendettaCharacter::HoldFireCaller()
+{
+ UE_LOG(LogTemp, Warning, TEXT("Hold Fire"));
+ if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
+ {
+ PrimaryWeapon->HoldFire();
+ }
+}
+
+void AEndlessVendettaCharacter::CancelFire()
+{
+ PrimaryWeapon->CancelFire();
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 20681db6..837ae1d4 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -103,6 +103,11 @@ public:
UFUNCTION(BlueprintCallable, Category = "Weapons")
void TapFireCaller();
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void HoldFireCaller();
+
+ void CancelFire();
+
protected:
/** Called for movement input */
void Move(const FInputActionValue& Value);
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 89e02d0a..102ddcf9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -37,9 +37,44 @@ void ABaseWeaponClass::Tick(float DeltaTime)
Super::Tick(DeltaTime);
}
+void ABaseWeaponClass::ClickDetectionTimer()
+{
+ if (GetWorldTimerManager().IsTimerActive(timerHandle))
+ {
+ return;
+ }
+ GetWorldTimerManager().SetTimer(timerHandle, this, &ABaseWeaponClass::TapFire, 1 / FireRate, false);
+
+
+}
+
+void ABaseWeaponClass::CancelFire()
+{
+ GetWorldTimerManager().ClearTimer(timerHandle);
+}
+
void ABaseWeaponClass::TapFire()
{
- FTimerHandle timerHandle;
+ FHitResult outHit;
+ FVector traceStart;
+ FVector traceEnd;
+ traceStart = GunStartArrow->GetComponentLocation();
+ traceEnd = traceStart + (GunStartArrow->GetForwardVector() * BulletDistance);
+ FCollisionQueryParams collisionParams;
+ collisionParams.AddIgnoredActor(player);
+ collisionParams.AddIgnoredActor(this);
+ GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
+
+ //Debug line to see where the trace hit
+ DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true, 500.0f, 0U, 5.f);
+ if (outHit.bBlockingHit)
+ {
+ UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
+ }
+}
+
+void ABaseWeaponClass::HoldFire()
+{
FHitResult outHit;
FVector traceStart;
FVector traceEnd;
@@ -48,7 +83,6 @@ void ABaseWeaponClass::TapFire()
FCollisionQueryParams collisionParams;
collisionParams.AddIgnoredActor(player);
collisionParams.AddIgnoredActor(this);
- GetWorldTimerManager().SetTimer(timerHandle, 1 / FireRate, false, 1.0f);
GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
//Debug line to see where the trace hit
@@ -56,6 +90,5 @@ void ABaseWeaponClass::TapFire()
if (outHit.bBlockingHit)
{
UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
-
}
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index 149d45d5..903e46ff 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -45,9 +45,21 @@ public:
UFUNCTION(BlueprintCallable, Category = "Weapons")
void TapFire();
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void HoldFire();
+
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void ClickDetectionTimer();
+
+ void CancelFire();
+
UPROPERTY(VisibleAnywhere)
ACharacter* player;
+ FTimerHandle timerHandle;
+
+ bool bFirstBulletShot = false;
+
private:
UArrowComponent* GunStartArrow;
From fed24de414435dd74c360004cb59111b8c5d29be Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Mon, 2 Oct 2023 14:27:47 +0100
Subject: [PATCH 045/112] Updated GunShooting to fix grabbing forward vector of
guncomp
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 2 +-
.../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 +-
.../BaseWeapons/BP_BaseWeapon.uasset | 4 +-
.../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 2 +-
.../EndlessVendettaCharacter.cpp | 25 ++++++++++--
.../EndlessVendettaCharacter.h | 5 +++
.../WeaponSystem/BaseWeaponClass.cpp | 39 +++++++++++++++++--
.../WeaponSystem/BaseWeaponClass.h | 12 ++++++
8 files changed, 81 insertions(+), 12 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index fda783bd..7d416e94 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d580d82ff6abdbebffa1e57dc264fb6e4b0e6c53e28aa0c853b56149f7867471
+oid sha256:00e38eda0524fe228dc71f14ef9f96ebec3f8142ffaeca9366f253a7456d529b
size 27305
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
index 52b41107..998ce21b 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:21afd371e599a3fb2c37e3662406978c3305c602a1c77bb3717e9bc4f2514b48
-size 35926
+oid sha256:6c3599c78d84a6895d06de8ce3697a6aefd517ac0105d041cab6f5124090bb3b
+size 35834
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
index 063848e3..f09d81f5 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:51cc0f9f0adae065e9941acdd88abe2fe5f7015a3a5343a63f7b0507e90c21ed
-size 28900
+oid sha256:694f084a31b369305b9cf0e066786a624f73721bf819d3823177703341f0b98c
+size 28902
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
index 4777b0ad..b70bdb74 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5b8b34286278ebb69adb37de9d922ea859ecab2e2547f7e3a634d75c61522828
+oid sha256:51fdff374c4c25c321646b9315bc5286b1ddc89511a597538bf96bea96222e02
size 5061
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index ace56207..5a08ac16 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -89,7 +89,8 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
//Weapon Shooting
EnhancedInputComponent->BindAction(TapShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
- EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
+ EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::HoldFireCaller);
+ //EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Completed, this, &AEndlessVendettaCharacter::CancelFire);
}
}
@@ -197,10 +198,28 @@ void AEndlessVendettaCharacter::EquipSecondary()
void AEndlessVendettaCharacter::TapFireCaller()
{
UE_LOG(LogTemp, Warning, TEXT("Tap Fire"));
- if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
+ if (IsValid(PrimaryWeapon))
{
- PrimaryWeapon->TapFire();
+ PrimaryWeapon->TapFire();
}
+ if (IsValid(SecondaryWeapon))
+ {
+ SecondaryWeapon->TapFire();
+ }
+}
+
+void AEndlessVendettaCharacter::HoldFireCaller()
+{
+ UE_LOG(LogTemp, Warning, TEXT("Hold Fire"));
+ if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
+ {
+ PrimaryWeapon->HoldFire();
+ }
+}
+
+void AEndlessVendettaCharacter::CancelFire()
+{
+ PrimaryWeapon->CancelFire();
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 20681db6..837ae1d4 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -103,6 +103,11 @@ public:
UFUNCTION(BlueprintCallable, Category = "Weapons")
void TapFireCaller();
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void HoldFireCaller();
+
+ void CancelFire();
+
protected:
/** Called for movement input */
void Move(const FInputActionValue& Value);
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 89e02d0a..102ddcf9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -37,9 +37,44 @@ void ABaseWeaponClass::Tick(float DeltaTime)
Super::Tick(DeltaTime);
}
+void ABaseWeaponClass::ClickDetectionTimer()
+{
+ if (GetWorldTimerManager().IsTimerActive(timerHandle))
+ {
+ return;
+ }
+ GetWorldTimerManager().SetTimer(timerHandle, this, &ABaseWeaponClass::TapFire, 1 / FireRate, false);
+
+
+}
+
+void ABaseWeaponClass::CancelFire()
+{
+ GetWorldTimerManager().ClearTimer(timerHandle);
+}
+
void ABaseWeaponClass::TapFire()
{
- FTimerHandle timerHandle;
+ FHitResult outHit;
+ FVector traceStart;
+ FVector traceEnd;
+ traceStart = GunStartArrow->GetComponentLocation();
+ traceEnd = traceStart + (GunStartArrow->GetForwardVector() * BulletDistance);
+ FCollisionQueryParams collisionParams;
+ collisionParams.AddIgnoredActor(player);
+ collisionParams.AddIgnoredActor(this);
+ GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
+
+ //Debug line to see where the trace hit
+ DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true, 500.0f, 0U, 5.f);
+ if (outHit.bBlockingHit)
+ {
+ UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
+ }
+}
+
+void ABaseWeaponClass::HoldFire()
+{
FHitResult outHit;
FVector traceStart;
FVector traceEnd;
@@ -48,7 +83,6 @@ void ABaseWeaponClass::TapFire()
FCollisionQueryParams collisionParams;
collisionParams.AddIgnoredActor(player);
collisionParams.AddIgnoredActor(this);
- GetWorldTimerManager().SetTimer(timerHandle, 1 / FireRate, false, 1.0f);
GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
//Debug line to see where the trace hit
@@ -56,6 +90,5 @@ void ABaseWeaponClass::TapFire()
if (outHit.bBlockingHit)
{
UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
-
}
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index 149d45d5..903e46ff 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -45,9 +45,21 @@ public:
UFUNCTION(BlueprintCallable, Category = "Weapons")
void TapFire();
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void HoldFire();
+
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void ClickDetectionTimer();
+
+ void CancelFire();
+
UPROPERTY(VisibleAnywhere)
ACharacter* player;
+ FTimerHandle timerHandle;
+
+ bool bFirstBulletShot = false;
+
private:
UArrowComponent* GunStartArrow;
From 93447bde97c6696f4e54888f52aed2488b729cc7 Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Mon, 2 Oct 2023 14:47:49 +0100
Subject: [PATCH 046/112] Added working firerate to weapons & sorted out hold
and tap fire
---
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +--
.../Blueprints/BP_PickUp_Rifle.uasset | 4 +--
.../Input/Actions/IA_HoldShoot.uasset | 3 --
.../FirstPerson/Input/Actions/IA_Shoot.uasset | 3 ++
.../Input/Actions/IA_TapShoot.uasset | 3 --
.../FirstPerson/Input/IMC_Default.uasset | 4 +--
.../FirstPerson/Input/IMC_Weapons.uasset | 4 +--
.../EndlessVendettaCharacter.cpp | 25 +++----------
.../EndlessVendettaCharacter.h | 6 +---
.../WeaponSystem/BaseWeaponClass.cpp | 35 ++++---------------
.../WeaponSystem/BaseWeaponClass.h | 5 +--
11 files changed, 24 insertions(+), 72 deletions(-)
delete mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset
delete mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 7d416e94..62e16495 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:00e38eda0524fe228dc71f14ef9f96ebec3f8142ffaeca9366f253a7456d529b
-size 27305
+oid sha256:059c5de9ae43a57d471949157f8c1e59bcbc14c1ca117627ccb9d1b27036c180
+size 27098
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset
index 42fff7f9..a8f825b9 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_PickUp_Rifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4d156d6fe24779674a35f18f9209313b0c2096d22772400c4d10c241a2e59e9e
-size 21649
+oid sha256:118d852be72576a513c2a8c719e1d94450907a5dc00f27dd98914deb48a18c09
+size 21604
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset
deleted file mode 100644
index ac52169f..00000000
--- a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_HoldShoot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1360a5e75da75d76374ea2091191ab85eab8ae0407f660ec7e242bdb51056670
-size 1659
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset
new file mode 100644
index 00000000..0186b774
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Shoot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d92be41146c90185585f7a2de5a18d31a688d2cc8dfb22b24b9a7a92dbfd1ce1
+size 1355
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset
deleted file mode 100644
index b951ed44..00000000
--- a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_TapShoot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3d02927e6f81929b1b6715400ce5f1a62361f239a5baad938902ae86b61ddc55
-size 1657
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
index 55abcd6c..6c703775 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3af06cb5478091fcf55d1069e28395f32708276bd53cc5dce82faa2a2d1f822b
-size 16317
+oid sha256:639f363d6702f2597b9140becc6854a1a5e5872978e79c4a83b062ccec7c1966
+size 15739
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset
index e0d25572..0f7cd254 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Weapons.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:99664f7a2d02cd77eec769cd0a690345e80de975fcacb8a615346583218e1b15
-size 4138
+oid sha256:24bf0d5a1ecce706cf33ff99e0ba7c1e0601dea5433ffd1f61732d522c9f4488
+size 4115
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 5a08ac16..38f6b3b4 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -88,9 +88,7 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
EnhancedInputComponent->BindAction(EquipSecondaryWeapon, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::EquipSecondary);
//Weapon Shooting
- EnhancedInputComponent->BindAction(TapShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::TapFireCaller);
- EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::HoldFireCaller);
- //EnhancedInputComponent->BindAction(HoldShootAction, ETriggerEvent::Completed, this, &AEndlessVendettaCharacter::CancelFire);
+ EnhancedInputComponent->BindAction(TapShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::FireCaller);
}
}
@@ -195,34 +193,19 @@ void AEndlessVendettaCharacter::EquipSecondary()
}
//Calls the fire function in the baseWeaponClass
-void AEndlessVendettaCharacter::TapFireCaller()
+void AEndlessVendettaCharacter::FireCaller()
{
UE_LOG(LogTemp, Warning, TEXT("Tap Fire"));
if (IsValid(PrimaryWeapon))
{
- PrimaryWeapon->TapFire();
+ PrimaryWeapon->Fire();
}
if (IsValid(SecondaryWeapon))
{
- SecondaryWeapon->TapFire();
+ SecondaryWeapon->Fire();
}
}
-void AEndlessVendettaCharacter::HoldFireCaller()
-{
- UE_LOG(LogTemp, Warning, TEXT("Hold Fire"));
- if (IsValid(PrimaryWeapon) || IsValid(SecondaryWeapon))
- {
- PrimaryWeapon->HoldFire();
- }
-}
-
-void AEndlessVendettaCharacter::CancelFire()
-{
- PrimaryWeapon->CancelFire();
-}
-
-
void AEndlessVendettaCharacter::Move(const FInputActionValue& Value)
{
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 837ae1d4..259737a7 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -101,12 +101,8 @@ public:
ABaseWeaponClass* SecondaryWeapon;
UFUNCTION(BlueprintCallable, Category = "Weapons")
- void TapFireCaller();
+ void FireCaller();
- UFUNCTION(BlueprintCallable, Category = "Weapons")
- void HoldFireCaller();
-
- void CancelFire();
protected:
/** Called for movement input */
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 102ddcf9..5bcf7c6a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -39,13 +39,7 @@ void ABaseWeaponClass::Tick(float DeltaTime)
void ABaseWeaponClass::ClickDetectionTimer()
{
- if (GetWorldTimerManager().IsTimerActive(timerHandle))
- {
- return;
- }
- GetWorldTimerManager().SetTimer(timerHandle, this, &ABaseWeaponClass::TapFire, 1 / FireRate, false);
-
-
+ GetWorldTimerManager().SetTimer(timerHandle, this, &ABaseWeaponClass::Fire, 1 / FireRate, false);
}
void ABaseWeaponClass::CancelFire()
@@ -53,7 +47,7 @@ void ABaseWeaponClass::CancelFire()
GetWorldTimerManager().ClearTimer(timerHandle);
}
-void ABaseWeaponClass::TapFire()
+void ABaseWeaponClass::Fire()
{
FHitResult outHit;
FVector traceStart;
@@ -63,32 +57,17 @@ void ABaseWeaponClass::TapFire()
FCollisionQueryParams collisionParams;
collisionParams.AddIgnoredActor(player);
collisionParams.AddIgnoredActor(this);
+ if (GetWorldTimerManager().IsTimerActive(timerHandle))
+ {
+ return;
+ }
GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
-
//Debug line to see where the trace hit
DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true, 500.0f, 0U, 5.f);
+ ClickDetectionTimer();
if (outHit.bBlockingHit)
{
UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
}
}
-void ABaseWeaponClass::HoldFire()
-{
- FHitResult outHit;
- FVector traceStart;
- FVector traceEnd;
- traceStart = GunStartArrow->GetComponentLocation();
- traceEnd = traceStart + (player->GetActorForwardVector() * BulletDistance);
- FCollisionQueryParams collisionParams;
- collisionParams.AddIgnoredActor(player);
- collisionParams.AddIgnoredActor(this);
- GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
-
- //Debug line to see where the trace hit
- DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true, 500.0f, 0U, 5.f);
- if (outHit.bBlockingHit)
- {
- UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
- }
-}
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index 903e46ff..67be17fc 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -43,10 +43,7 @@ public:
UTexture2D* WeaponImage;
UFUNCTION(BlueprintCallable, Category = "Weapons")
- void TapFire();
-
- UFUNCTION(BlueprintCallable, Category = "Weapons")
- void HoldFire();
+ void Fire();
UFUNCTION(BlueprintCallable, Category = "Weapons")
void ClickDetectionTimer();
From c4da037d2d74c65dac051a82bfb0f487e4c4a9e2 Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Mon, 2 Oct 2023 14:52:30 +0100
Subject: [PATCH 047/112] Updated SecondaryWeapons BulletTravel
---
.../Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
index 3f00099b..a1f00f47 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:202ab16b4ffa35b8b8140c728744b529514cd98e7cf595a674e0bd13bcfbaff9
-size 29227
+oid sha256:69e0dd14f07413220251048a5a7bb322eebd9e2d9362dc29bab3d3de096a9a82
+size 29337
From 282705ed2fe6d4e060f8619804700e7047998764 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek
Date: Mon, 2 Oct 2023 13:56:50 +0100
Subject: [PATCH 048/112] Bugfix VisionLink to Deactivate WIP Fucntionalilty
---
.../Recon/VisionLink/VisionLink.cpp | 23 ++++++++-----------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index 34e523ae..9b8933b8 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -10,7 +10,7 @@ void AVisionLink::BeginPlay()
CooldownLength = CooldownTime;
InUseDuration = GadgetMaxUptime;
- if (NumberOfPingPulses <= 0 ) NumberOfPingPulses = 1;
+ if (NumberOfPingPulses <= 0) NumberOfPingPulses = 1;
TimeInbetweenPingPulses = GadgetMaxUptime / (float)NumberOfPingPulses;
}
@@ -28,7 +28,7 @@ void AVisionLink::Activate()
void AVisionLink::FinishedUsing()
{
VisionLinkRecharging();
-
+
Super::FinishedUsing();
}
@@ -38,18 +38,15 @@ void AVisionLink::SendOutPingPulse()
UpdatePulsesRemaining(NumOfPingPulsesLeftInThisCycle);
if (NumOfPingPulsesLeftInThisCycle < 0) return;
- FActorSpawnParameters SpawnParams;
- SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
-
- AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
- TArray EmptyFStringArray;
- Cast(LOSTestActor)->TestLOS(EmptyFStringArray, GetOwner());
-
+ //FActorSpawnParameters SpawnParams;
+ //SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ //FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
+
+ // AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
+ // TArray EmptyFStringArray;
+ // Cast(LOSTestActor)->TestLOS(EmptyFStringArray, GetOwner());
+
UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
PlayPingPulseAnim(TimeInbetweenPingPulses);
}
-
-
-
From 49bd9aac1cfb58daf6607b38a9ed2ab250e4c8cd Mon Sep 17 00:00:00 2001
From: Kacper Szelest
Date: Tue, 3 Oct 2023 11:06:32 +0100
Subject: [PATCH 049/112] Fixing rafals code
I became a programmer and fixed rafals code so i can do my own work
---
.../GadgetClasses/Recon/VisionLink/VisionLink.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index d075a5e3..29b30310 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -42,9 +42,9 @@ void AVisionLink::SendOutPingPulse()
//SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
//FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
- AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
- TArray EmptyFStringArray;
- Cast(LOSTestActor)->TestLOS(EmptyFStringArray, GetOwner());
+ //AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
+ //TArray EmptyFStringArray;
+ //Cast(LOSTestActor)->TestLOS(EmptyFStringArray, GetOwner());
UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
From c764ce182ad7b6989660542c18b2b4b08bf21797 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek
Date: Tue, 3 Oct 2023 12:39:20 +0100
Subject: [PATCH 050/112] Fixed LOS Test Missing Actor Reference
---
.../ReconGadgets/VisionLink/LOS_Test.uasset | 3 +++
.../VisionLink/RG_VisionLink.uasset | 4 ++--
.../Content/Levels/GadgetSystemTestLevel.umap | 2 +-
.../Architecture/Floor_400x400.uasset | 4 ++--
.../StarterContent/Audio/Collapse01.uasset | 4 ++--
.../Recon/VisionLink/VisionLink.cpp | 18 ++++++++++++------
.../VisionLink/VisionLinkEnemyLOSTest.cpp | 8 ++++----
.../Recon/VisionLink/VisionLinkEnemyLOSTest.h | 2 +-
8 files changed, 27 insertions(+), 18 deletions(-)
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
new file mode 100644
index 00000000..8dc51b6b
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3dcf2376c901c20297196f292d3af9789583d7023bb529d5e347e29cf43967e1
+size 14705
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
index a98e94f1..600897ad 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2a063d83c2d3461bee076adc8e95f993662e0d2cfe542ea8adfec6b524ecde24
-size 97920
+oid sha256:2e54f66125275a7482edeefbb4f92ebba6bc1791877f697fd60c6051711946e7
+size 98220
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 07001d61..452a38a1 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5e27a9b735217e9310c6c773ebb19ce87a4f00d959f0c4710de79ce8975be500
+oid sha256:e8b0e40ede14db8ce7ce78f51420e587af885afcbc93c4c0e8a24ec6798005ec
size 109679
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index c2a34afc..2a403468 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
-size 14948
+oid sha256:30e523627b30cc7ce8fd4c7a81a580903d0c6689149e9f7cbf39c373d5475a40
+size 14831
diff --git a/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset b/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
index 198f128d..5e3ff30e 100644
--- a/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
+++ b/EndlessVendetta/Content/StarterContent/Audio/Collapse01.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:43d44b5a53fbbfc62522f67ad9523360b15677e3d0caeea96f4d9d0580a013cd
-size 353935
+oid sha256:85c827023ee4b466228ec65e92b4b4a0415a106de041ac1c2cab481a2a5dfa8d
+size 348532
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index d075a5e3..2aa44fa2 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -3,6 +3,10 @@
#include "VisionLink.h"
+#include "Camera/CameraComponent.h"
+#include "VisionLinkEnemyLOSTest.h"
+#include "GameFramework/Character.h"
+
void AVisionLink::BeginPlay()
{
Super::BeginPlay();
@@ -38,13 +42,15 @@ void AVisionLink::SendOutPingPulse()
UpdatePulsesRemaining(NumOfPingPulsesLeftInThisCycle);
if (NumOfPingPulsesLeftInThisCycle < 0) return;
- //FActorSpawnParameters SpawnParams;
- //SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- //FVector SpawnLoc = (GetActorLocation() - EquippedOffset) + EnemyLOSTestActor.GetDefaultObject()->SpawnOffset;
+ FActorSpawnParameters SpawnParams;
+ SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ UCameraComponent* PlayerCamComp = Cast(GetWorld()->GetFirstPlayerController()->GetCharacter()->GetComponentByClass(UCameraComponent::StaticClass()));
+ //FVector SpawnLoc = PlayerCamComp->GetSocketLocation(NAME_None) + PlayerCamComp->GetForwardVector() * EnemyLOSTestActor->GetDefaultObject()
- AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
- TArray EmptyFStringArray;
- Cast(LOSTestActor)->TestLOS(EmptyFStringArray, GetOwner());
+
+ //AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
+ //TArray EmptyIDArray;
+ //Cast(LOSTestActor)->TestLOS(EmptyIDArray, this);
UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
index b81b4d54..bb08e273 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
@@ -28,7 +28,7 @@ void AVisionLinkEnemyLOSTest::Tick(float DeltaTime)
}
-void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSActor)
+void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSActor)
{
// Get all overlapping Actors
UBoxComponent* CollisionBox = Cast(GetComponentByClass(UBoxComponent::StaticClass()));
@@ -47,9 +47,8 @@ void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOS
for (int i = 0; i < OverlappingEnemies.Num(); i++)
{
- UE_LOG(LogTemp, Warning, TEXT("Overlapping Enemy Name: %s"), *OverlappingEnemies[i]->GetName());
// Overlapping Enemies Array should only contain enemies which aren't already in the link
- if (!OverlappingEnemies[i]->ActorHasTag(FName("Enemy")) || EnemiesInLink.Contains(OverlappingEnemies[i]->GetName())) OverlappingEnemies.RemoveAt(i);
+ if (!OverlappingEnemies[i]->ActorHasTag(FName("Enemy")) || EnemiesInLink.Contains(OverlappingEnemies[i]->GetUniqueID())) OverlappingEnemies.RemoveAt(i);
}
if (OverlappingEnemies.IsEmpty())
{
@@ -59,11 +58,12 @@ void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOS
for (AActor* Enemy : OverlappingEnemies)
{
+ if (!IsValid(LOSActor)) UE_LOG(LogTemp, Fatal, TEXT("im an idiot"));
FRotator LookAtRotation = UKismetMathLibrary::FindLookAtRotation(LOSActor->GetActorLocation(), Enemy->GetActorLocation());
UE_LOG(LogTemp, Warning, TEXT("Look at Rotation: %f"), LookAtRotation.Yaw);
}
- Destroy();
+ //Destroy();
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
index c9d6b81a..30475038 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
@@ -26,5 +26,5 @@ public:
// Called every frame
virtual void Tick(float DeltaTime) override;
- void TestLOS(TArray EnemiesInLink, AActor* LOS_Actor);
+ void TestLOS(TArray EnemiesInLink, AActor* LOS_Actor);
};
From 7bb582f6365bbcbd5282113b3a82a13b74467444 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Tue, 3 Oct 2023 20:18:12 +0100
Subject: [PATCH 051/112] Implemented a Recursive Function TestLOS() for Vision
Link
Spots Enemies that spotted enemies can see until no more unique enemies are found within the collective vision
---
.../ReconGadgets/VisionLink/LOS_Test.uasset | 4 +-
.../VisionLink/RG_VisionLink.uasset | 4 +-
.../Content/Levels/GadgetSystemTestLevel.umap | 4 +-
.../Architecture/Floor_400x400.uasset | 4 +-
.../HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 +-
.../Recon/VisionLink/VisionLink.cpp | 60 ++++++++++++++++---
.../Recon/VisionLink/VisionLink.h | 21 ++++++-
.../VisionLink/VisionLinkEnemyLOSTest.cpp | 10 +++-
.../Recon/VisionLink/VisionLinkEnemyLOSTest.h | 2 +-
9 files changed, 90 insertions(+), 23 deletions(-)
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
index 8dc51b6b..4d036d96 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3dcf2376c901c20297196f292d3af9789583d7023bb529d5e347e29cf43967e1
-size 14705
+oid sha256:16b8ace32a02155ad001cb46a64f3b5bef4c4c4ae6f13f0a6e13ac5d683c9a3c
+size 14694
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
index 600897ad..570bf9cb 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2e54f66125275a7482edeefbb4f92ebba6bc1791877f697fd60c6051711946e7
-size 98220
+oid sha256:0d16edae7f13193d1183a5d98fe86bdc3c55fa37936345f8239280501fd89fd5
+size 98008
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 452a38a1..07a4fcd2 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e8b0e40ede14db8ce7ce78f51420e587af885afcbc93c4c0e8a24ec6798005ec
-size 109679
+oid sha256:9e3dc3ac3d7558e57253059c870b13d20e67e639f7a748c3c6a384d65ae7df7f
+size 109712
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index 2a403468..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:30e523627b30cc7ce8fd4c7a81a580903d0c6689149e9f7cbf39c373d5475a40
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index 0f990580..caa0814c 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
-size 72364642
+oid sha256:81331a890b185a2c1bc418da80b947c289a8ab67ff91737e9b187c45c71d083d
+size 66790690
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index 2aa44fa2..459321d3 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -3,6 +3,7 @@
#include "VisionLink.h"
+#include "Kismet/KismetMathLibrary.h"
#include "Camera/CameraComponent.h"
#include "VisionLinkEnemyLOSTest.h"
#include "GameFramework/Character.h"
@@ -42,17 +43,60 @@ void AVisionLink::SendOutPingPulse()
UpdatePulsesRemaining(NumOfPingPulsesLeftInThisCycle);
if (NumOfPingPulsesLeftInThisCycle < 0) return;
- FActorSpawnParameters SpawnParams;
- SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- UCameraComponent* PlayerCamComp = Cast(GetWorld()->GetFirstPlayerController()->GetCharacter()->GetComponentByClass(UCameraComponent::StaticClass()));
- //FVector SpawnLoc = PlayerCamComp->GetSocketLocation(NAME_None) + PlayerCamComp->GetForwardVector() * EnemyLOSTestActor->GetDefaultObject()
+ // FActorSpawnParameters SpawnParams;
+ // SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
-
- //AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, GetActorRotation(), SpawnParams);
- //TArray EmptyIDArray;
- //Cast(LOSTestActor)->TestLOS(EmptyIDArray, this);
+ // FVector SpawnLoc = PlayerCamComp->GetComponentLocation() + PlayerCamComp->GetForwardVector() * EnemyLOSTestActor->GetDefaultObject()->SpawnOffset;
+ //
+ //
+ // AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, PlayerCamComp->GetComponentRotation(), SpawnParams);
+ // TArray EmptyIDArray;
+ // Cast(LOSTestActor)->TestLOS(EmptyIDArray, this);
UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
PlayPingPulseAnim(TimeInbetweenPingPulses);
+
+ UCameraComponent* PlayerCamComp = Cast(GetWorld()->GetFirstPlayerController()->GetCharacter()->GetComponentByClass(UCameraComponent::StaticClass()));
+ TArray ActorsToIgnore;
+ ActorsToIgnore.Add(GetWorld()->GetFirstPlayerController()->GetCharacter());
+ TestLOS(PlayerCamComp->GetComponentTransform(), ActorsToIgnore);
}
+
+void AVisionLink::TestLOS(FTransform StartingPos, TArray &ActorsToIgnore)
+{
+ float H_DegreeIncrement = (float)H_FOV / (float)LT_Horizontal_Density;
+ float V_DegreeIncrement = (float)V_FOV / (float)LT_Vertical_Density;
+ float H_StartingRot = StartingPos.GetRotation().Rotator().Yaw - ((float)H_FOV / 2.0);
+ float V_StartingRot = StartingPos.GetRotation().Rotator().Pitch - ((float)V_FOV / 2.0);
+
+ for (int H_Increment = 1; H_Increment <= LT_Horizontal_Density; H_Increment++)
+ {
+ for (int V_Increment = 1; V_Increment <= LT_Vertical_Density; V_Increment++)
+ {
+ FHitResult outHit;
+ FCollisionQueryParams QueryParams = FCollisionQueryParams::DefaultQueryParam;
+ QueryParams.bTraceComplex = true;
+ QueryParams.AddIgnoredActors(ActorsToIgnore);
+
+ FRotator LT_Rot = FRotator(V_StartingRot + (V_Increment * V_DegreeIncrement), H_StartingRot + (H_Increment * H_DegreeIncrement), StartingPos.GetRotation().Rotator().Roll);
+ FVector LT_EndPoint = StartingPos.GetLocation() + UKismetMathLibrary::GetForwardVector(LT_Rot) * LT_Distance;
+
+ if (!GetWorld()->LineTraceSingleByChannel(outHit, StartingPos.GetLocation(), LT_EndPoint, ECC_Camera, QueryParams)) continue;
+
+ // Only consider enemies which we haven't seen before
+ AActor* HitActor = outHit.GetActor();
+ if (!HitActor->ActorHasTag(FName("Enemy"))) continue; //|| EnemiesInLink.Contains(HitActor->GetUniqueID())) continue;
+
+ DrawDebugLine(GetWorld(), outHit.TraceStart, outHit.ImpactPoint, FColor::Blue, false, 3, 0, 3);
+ ActorsToIgnore.Add(HitActor);
+ UE_LOG(LogTemp, Warning, TEXT("I've Seen an Enemy called: %s"), *HitActor->GetName());
+ TestLOS(HitActor->GetTransform(), ActorsToIgnore);
+
+
+
+ }
+ }
+
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
index fa5ac3e9..a8097ed2 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
@@ -21,6 +21,8 @@ class ENDLESSVENDETTA_API AVisionLink : public AReconGadget
FTimerHandle PulseHandle;
+ void TestLOS(FTransform StartingPos, TArray &ActorsToIgnore);
+
void SendOutPingPulse();
virtual void BeginPlay() override;
@@ -34,7 +36,24 @@ protected:
int NumberOfPingPulses = 1;
UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
- TSubclassOf EnemyLOSTestActor;
+ int LT_Horizontal_Density = 80;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ int LT_Vertical_Density = 25;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ float LT_Distance = 4000;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ float H_FOV = 75;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ float V_FOV = 25;
+
+
+
+ // UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
+ // TSubclassOf EnemyLOSTestActor;
UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
float CooldownLength;
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
index bb08e273..52c807f9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
@@ -48,7 +48,11 @@ void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSA
for (int i = 0; i < OverlappingEnemies.Num(); i++)
{
// Overlapping Enemies Array should only contain enemies which aren't already in the link
- if (!OverlappingEnemies[i]->ActorHasTag(FName("Enemy")) || EnemiesInLink.Contains(OverlappingEnemies[i]->GetUniqueID())) OverlappingEnemies.RemoveAt(i);
+ if (!OverlappingEnemies[i]->ActorHasTag(FName("Enemy")) || EnemiesInLink.Contains(OverlappingEnemies[i]->GetUniqueID()))
+ {
+ UE_LOG(LogTemp, Warning, TEXT("enemy name: %s"), *OverlappingEnemies[i]->GetName());
+ OverlappingEnemies.RemoveAt(i);
+ }
}
if (OverlappingEnemies.IsEmpty())
{
@@ -58,12 +62,12 @@ void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOSA
for (AActor* Enemy : OverlappingEnemies)
{
- if (!IsValid(LOSActor)) UE_LOG(LogTemp, Fatal, TEXT("im an idiot"));
FRotator LookAtRotation = UKismetMathLibrary::FindLookAtRotation(LOSActor->GetActorLocation(), Enemy->GetActorLocation());
UE_LOG(LogTemp, Warning, TEXT("Look at Rotation: %f"), LookAtRotation.Yaw);
+ UE_LOG(LogTemp, Warning, TEXT("enemy name: %s"), *Enemy->GetName());
}
- //Destroy();
+ Destroy();
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
index 30475038..add35b97 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.h
@@ -18,7 +18,7 @@ protected:
public:
UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
- FVector SpawnOffset = FVector(0, 0, 0 );
+ float SpawnOffset = 0;
// Sets default values for this actor's properties
AVisionLinkEnemyLOSTest();
From 6dee50a62b70e593abf36ca2e1b947c1d2e1148a Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Tue, 3 Oct 2023 20:30:36 +0100
Subject: [PATCH 052/112] Removed Redundant LOS Test Box
---
.../ReconGadgets/VisionLink/LOS_Test.uasset | 3 ---
.../Content/Levels/GadgetSystemTestLevel.umap | 2 +-
.../Recon/VisionLink/VisionLink.cpp | 22 +++----------------
.../Recon/VisionLink/VisionLink.h | 9 ++------
4 files changed, 6 insertions(+), 30 deletions(-)
delete mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
deleted file mode 100644
index 4d036d96..00000000
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/LOS_Test.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:16b8ace32a02155ad001cb46a64f3b5bef4c4c4ae6f13f0a6e13ac5d683c9a3c
-size 14694
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 07a4fcd2..616fa6fe 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9e3dc3ac3d7558e57253059c870b13d20e67e639f7a748c3c6a384d65ae7df7f
+oid sha256:236689015c26708fac1bf19a6077122a373dbd62804e8b0643abe62a82db39ae
size 109712
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index 459321d3..049398c4 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -42,18 +42,7 @@ void AVisionLink::SendOutPingPulse()
NumOfPingPulsesLeftInThisCycle--;
UpdatePulsesRemaining(NumOfPingPulsesLeftInThisCycle);
if (NumOfPingPulsesLeftInThisCycle < 0) return;
-
- // FActorSpawnParameters SpawnParams;
- // SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- // FVector SpawnLoc = PlayerCamComp->GetComponentLocation() + PlayerCamComp->GetForwardVector() * EnemyLOSTestActor->GetDefaultObject()->SpawnOffset;
- //
- //
- // AActor* LOSTestActor = GetWorld()->SpawnActor(EnemyLOSTestActor, SpawnLoc, PlayerCamComp->GetComponentRotation(), SpawnParams);
- // TArray EmptyIDArray;
- // Cast(LOSTestActor)->TestLOS(EmptyIDArray, this);
-
- UE_LOG(LogTemp, Warning, TEXT("Ping Pulse!"));
GetWorld()->GetTimerManager().SetTimer(PulseHandle, this, &AVisionLink::SendOutPingPulse, TimeInbetweenPingPulses, false);
PlayPingPulseAnim(TimeInbetweenPingPulses);
@@ -83,20 +72,15 @@ void AVisionLink::TestLOS(FTransform StartingPos, TArray &ActorsToIgnor
FVector LT_EndPoint = StartingPos.GetLocation() + UKismetMathLibrary::GetForwardVector(LT_Rot) * LT_Distance;
if (!GetWorld()->LineTraceSingleByChannel(outHit, StartingPos.GetLocation(), LT_EndPoint, ECC_Camera, QueryParams)) continue;
-
- // Only consider enemies which we haven't seen before
+
AActor* HitActor = outHit.GetActor();
- if (!HitActor->ActorHasTag(FName("Enemy"))) continue; //|| EnemiesInLink.Contains(HitActor->GetUniqueID())) continue;
+ if (!HitActor->ActorHasTag(FName("Enemy"))) continue;
DrawDebugLine(GetWorld(), outHit.TraceStart, outHit.ImpactPoint, FColor::Blue, false, 3, 0, 3);
ActorsToIgnore.Add(HitActor);
- UE_LOG(LogTemp, Warning, TEXT("I've Seen an Enemy called: %s"), *HitActor->GetName());
+ //Spawn in a Ping
TestLOS(HitActor->GetTransform(), ActorsToIgnore);
-
-
-
}
}
-
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
index a8097ed2..43ab84d0 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
@@ -21,10 +21,10 @@ class ENDLESSVENDETTA_API AVisionLink : public AReconGadget
FTimerHandle PulseHandle;
- void TestLOS(FTransform StartingPos, TArray &ActorsToIgnore);
-
void SendOutPingPulse();
+ void TestLOS(FTransform StartingPos, TArray &ActorsToIgnore);
+
virtual void BeginPlay() override;
virtual void Activate() override;
@@ -50,11 +50,6 @@ protected:
UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
float V_FOV = 25;
-
-
- // UPROPERTY(EditDefaultsOnly, Category = "Vision Link")
- // TSubclassOf EnemyLOSTestActor;
-
UPROPERTY(BlueprintReadOnly, Category = "Vision Link")
float CooldownLength;
From 3523823a5bcf75f4bffc5a5e200edb028db11229 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Tue, 3 Oct 2023 21:32:46 +0100
Subject: [PATCH 053/112] Implemented Vision Link Pings
Spawn on spotted enemies, can be seen through walls
---
.../Gadgets/ReconGadgets/VisionLink/Ping/BP_Ping.uasset | 3 +++
.../Gadgets/ReconGadgets/VisionLink/Ping/PingImage.png | 3 +++
.../Gadgets/ReconGadgets/VisionLink/Ping/PingImage.uasset | 3 +++
.../Gadgets/ReconGadgets/VisionLink/Ping/WBP_Ping.uasset | 3 +++
.../Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset | 4 ++--
.../VisionLink/{ => Viewport}/VisionLinkViewPortBG.png | 0
.../VisionLink/Viewport/VisionLinkViewPortBG.uasset | 3 +++
.../VisionLink/Viewport/WBP_VisionLinkViewPort.uasset | 3 +++
.../ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset | 3 ---
.../ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset | 3 ---
.../ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset | 3 ---
.../VisionLink/WatchFace/WBP_VisionLinkWatchFace.uasset | 3 +++
.../VisionLink/{ => WatchFace}/WatchFaceBGImage.png | 0
.../VisionLink/WatchFace/WatchFaceBGImage.uasset | 3 +++
.../Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset | 3 ---
EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap | 4 ++--
.../Content/UI/UI_Material_SeeThroughWalls.uasset | 3 +++
.../GadgetClasses/Recon/VisionLink/VisionLink.cpp | 5 +++--
.../GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h | 4 +++-
19 files changed, 37 insertions(+), 19 deletions(-)
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/BP_Ping.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.png
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/WBP_Ping.uasset
rename EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/{ => Viewport}/VisionLinkViewPortBG.png (100%)
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/VisionLinkViewPortBG.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/WBP_VisionLinkViewPort.uasset
delete mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
delete mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
delete mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WBP_VisionLinkWatchFace.uasset
rename EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/{ => WatchFace}/WatchFaceBGImage.png (100%)
create mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WatchFaceBGImage.uasset
delete mode 100644 EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
create mode 100644 EndlessVendetta/Content/UI/UI_Material_SeeThroughWalls.uasset
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/BP_Ping.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/BP_Ping.uasset
new file mode 100644
index 00000000..4b2eeb98
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/BP_Ping.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d550ef5403fa8eb4429aa8a02bf20ee8861165cdfec6f86783634750e14c7ad2
+size 64620
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.png b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.png
new file mode 100644
index 00000000..6e12b0fe
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e0e7b01c20546d33776b7e9ab7b48c2e81a79c07558f92ed0ef035ad729cd2a
+size 66320
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.uasset
new file mode 100644
index 00000000..9f97a970
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/PingImage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d64b09bc01c01afde43af7565f5c136c6dff1330b0db17d871964513366fc5ad
+size 74632
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/WBP_Ping.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/WBP_Ping.uasset
new file mode 100644
index 00000000..18281d37
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Ping/WBP_Ping.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:11ba552af3b2c39dcfae07749f63f56e4f87b1bcc38306d9a7f51d037e20e5d5
+size 54205
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
index 570bf9cb..a52acef6 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0d16edae7f13193d1183a5d98fe86bdc3c55fa37936345f8239280501fd89fd5
-size 98008
+oid sha256:00ef54778dd4058c75ad6dca1b46531f8b20b3b154373294be43fa8d5e9ebbdc
+size 106247
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.png b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/VisionLinkViewPortBG.png
similarity index 100%
rename from EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.png
rename to EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/VisionLinkViewPortBG.png
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/VisionLinkViewPortBG.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/VisionLinkViewPortBG.uasset
new file mode 100644
index 00000000..8db47e99
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/VisionLinkViewPortBG.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:67d9f11bc227f55da0c8ed5642e838600c464ad28dd6ff960cf8d89e3e4d2156
+size 45631
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/WBP_VisionLinkViewPort.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/WBP_VisionLinkViewPort.uasset
new file mode 100644
index 00000000..2fe7eeaa
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/Viewport/WBP_VisionLinkViewPort.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a0df7d8ccd875abeaaa1f439439dc1a8dd8fb765c09cbaf506743dcfede51538
+size 199275
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
deleted file mode 100644
index c31bec52..00000000
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fd673d7b47c8310bbae47b765919076a4b73cc20813122a3904f97950973435c
-size 45518
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
deleted file mode 100644
index 414cd557..00000000
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkViewPort.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:10ba4f55ea7d6e695bfa848cef4da05c40c2dbe3bbb6be34b00d711f0db12b7b
-size 204366
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
deleted file mode 100644
index b205dedf..00000000
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WBP_VisionLinkWatchFace.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b05365476d12ad22f88a47f072cccc79b65376d67c4eb1ac21a02556c0922449
-size 162045
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WBP_VisionLinkWatchFace.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WBP_VisionLinkWatchFace.uasset
new file mode 100644
index 00000000..f4473218
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WBP_VisionLinkWatchFace.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc8393479c593c48fd8db154aa11f6ac9f5f6d5cd03ee4d93f2754556653dccb
+size 161556
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.png b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WatchFaceBGImage.png
similarity index 100%
rename from EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.png
rename to EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WatchFaceBGImage.png
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WatchFaceBGImage.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WatchFaceBGImage.uasset
new file mode 100644
index 00000000..4e03bf1b
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFace/WatchFaceBGImage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9aa56bafa97642804de02c9e00f3a77e0794167d534174993b616e8761757153
+size 19863
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
deleted file mode 100644
index d05f935a..00000000
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:afbeeb63e797939650edcf947c6d364fc2372b04290963f53cddc2025d7e4efa
-size 19748
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 616fa6fe..cb32e614 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:236689015c26708fac1bf19a6077122a373dbd62804e8b0643abe62a82db39ae
-size 109712
+oid sha256:4b05392dd6ea5c33327b50c71be4e3b736b96c356d8de84d894562af209c1f75
+size 103876
diff --git a/EndlessVendetta/Content/UI/UI_Material_SeeThroughWalls.uasset b/EndlessVendetta/Content/UI/UI_Material_SeeThroughWalls.uasset
new file mode 100644
index 00000000..c3067fb0
--- /dev/null
+++ b/EndlessVendetta/Content/UI/UI_Material_SeeThroughWalls.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a38d567de25b3df88bbe21626983ee66de938d460d4c22aabc81f9790376222
+size 14569
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
index 049398c4..1dbe1dd7 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.cpp
@@ -3,6 +3,7 @@
#include "VisionLink.h"
+#include "CollisionDebugDrawingPublic.h"
#include "Kismet/KismetMathLibrary.h"
#include "Camera/CameraComponent.h"
#include "VisionLinkEnemyLOSTest.h"
@@ -76,9 +77,9 @@ void AVisionLink::TestLOS(FTransform StartingPos, TArray &ActorsToIgnor
AActor* HitActor = outHit.GetActor();
if (!HitActor->ActorHasTag(FName("Enemy"))) continue;
- DrawDebugLine(GetWorld(), outHit.TraceStart, outHit.ImpactPoint, FColor::Blue, false, 3, 0, 3);
+ //DrawDebugLine(GetWorld(), outHit.TraceStart, outHit.ImpactPoint, FColor::Blue, false, 3, 0, 3);
ActorsToIgnore.Add(HitActor);
- //Spawn in a Ping
+ SpawnPing(HitActor->GetTransform());
TestLOS(HitActor->GetTransform(), ActorsToIgnore);
}
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
index 43ab84d0..2a3b7789 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLink.h
@@ -69,5 +69,7 @@ protected:
UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
void VisionLinkRecharging();
-
+
+ UFUNCTION(BlueprintImplementableEvent, Category = "Vision Link")
+ void SpawnPing(FTransform PingSpawnTransform);
};
From 395ea7baa475b380b84c3422378116843ba3ed1c Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Wed, 4 Oct 2023 01:24:03 +0100
Subject: [PATCH 054/112] Update Basic Enemy Behaviour Tree to Patrol
---
EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset | 4 ++--
EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset | 4 ++--
.../ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset | 4 ++--
.../Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset | 4 ++--
.../Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp | 1 +
5 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
index 83745345..56819b9d 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BB_BasicEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:73bd053142b2dc9fb78973a96805b66270a7f976a36986ef658580a9d2ba75a7
-size 4123
+oid sha256:d175544d93e03c9c35e6fa9e17caa58f91fa9c2227be1f62ddc9234b095e8d46
+size 4420
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
index 2b5f26e3..63d6a5f9 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8cc72d5c792915b0c3002c85fb1c1fc24fcf3a88d4fa85200d1d8b04f483f4ef
-size 15107
+oid sha256:7edfafa0555092e33fe013a8130878ffa4cc97c34d1cd617bc71bb03bd5d194c
+size 19535
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
index c31bec52..47adc792 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/VisionLinkViewPortBG.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:fd673d7b47c8310bbae47b765919076a4b73cc20813122a3904f97950973435c
-size 45518
+oid sha256:b2a0267c4ceb00701b79abff52a736e5a2a001237b1000565794517852d0f647
+size 45613
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
index d05f935a..0daf9a11 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/WatchFaceBGImage.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:afbeeb63e797939650edcf947c6d364fc2372b04290963f53cddc2025d7e4efa
-size 19748
+oid sha256:da887885cdc8d543e4992f2e9e543c974427ce77414d85c5b1faa92bf13c2357
+size 19843
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp
index 07db4b83..74b01095 100644
--- a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp
@@ -19,6 +19,7 @@ EBTNodeResult::Type UBTTask_AttackPlayer::ExecuteTask(UBehaviorTreeComponent& Ow
FVector const Origin = AIController->GetPawn()->GetActorLocation();
FVector const PlayerLocation = Blackboard->GetValueAsVector("TargetLocation");
DrawDebugLine(GetWorld(), Origin, PlayerLocation, FColor::Green, false, 1.f, 0, 1.f);
+
FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded);
return EBTNodeResult::Succeeded;
}
From e13e6d1bacac5f0d58f26a74f47f5653ca3680d3 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Wed, 4 Oct 2023 01:49:10 +0100
Subject: [PATCH 055/112] Update Basic Enemy AI to Not Overlap with Friendlies
---
.../Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset | 4 ++--
EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset | 3 +++
.../Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset | 4 ++--
.../Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset | 4 ++--
.../Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset | 3 +++
.../Source/EndlessVendetta/AI/AI_EnemyController.cpp | 2 +-
6 files changed, 13 insertions(+), 7 deletions(-)
create mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset
index ee381207..894c9059 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f5a7fcd4447476e36ad777f4db7b6e5898905b85f6fa1bb8b193a98ec26066dc
-size 32684
+oid sha256:0cce34a40f6aed425749f0c271aa6ba31b8bfea2ffafb3446559e374f0676b4b
+size 32990
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset
new file mode 100644
index 00000000..436112d7
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:978aab3035ae3876cef293be990751ff0a4966d407f62262698a530862855320
+size 19419
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
index 31dcfb1a..d8fa1226 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:fcf182403f772d060b1f0c2997671ec13f6f6d32dd3817841a4f612ad87dff81
-size 10974
+oid sha256:115f268dcbca6bf144baa4bb0572ea023da1ffd074ae6e7dd445bd9f4cba645c
+size 11772
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
index d4567926..60451f7e 100644
--- a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bcadae2018380b51ecd7bea3850566c6b0013ea6acb8ad1cdb8a0f4307fbc65c
-size 5230
+oid sha256:c7cb8357ffc004ebe77fee2fef237bde524e9a64befca078884785e9762c654c
+size 5440
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset
new file mode 100644
index 00000000..93f0eeb7
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b6617a297705f0f5de3dd5a3a85b65bb6984399bbacc3863b84e88df64cd01e
+size 5115
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
index 94ef8372..6e0b0ec2 100644
--- a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
@@ -15,7 +15,7 @@ AAI_EnemyController::AAI_EnemyController(FObjectInitializer const& ObjectInitial
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
-
+ SetGenericTeamId(FGenericTeamId(1));
SetupPerceptionSystem();
}
From 44e25b8472dfee24766b1d1ebb6d6a8849e40d26 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Wed, 4 Oct 2023 02:25:27 +0100
Subject: [PATCH 056/112] Add Companion Character for Generic Base
---
EndlessVendetta/Content/AI/EQSB_Enemy.uasset | 3 +
EndlessVendetta/Content/AI/EQSB_Player.uasset | 3 +
EndlessVendetta/Content/AI/EQS_Test.uasset | 3 +
.../Content/AI/Enemy/Basic/EQSB_Enemy.uasset | 3 -
.../Content/AI/Enemy/Basic/EQSB_Player.uasset | 3 -
.../AI/Enemy/Basic/EQS_EnemyFindCover.uasset | 4 +-
.../Content/AI/Enemy/Basic/EQS_Test.uasset | 3 -
.../B/AZ/GX8EY01G00J28SE17R0FJV.uasset | 4 +-
.../E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset | 4 +-
.../AI/AI_CompanionController.cpp | 85 +++++++++++++++++++
.../AI/AI_CompanionController.h | 36 ++++++++
.../EndlessVendetta/AI/AI_EnemyController.cpp | 2 +-
.../EndlessVendetta/AI/CompanionCharacter.cpp | 50 +++++++++++
.../EndlessVendetta/AI/CompanionCharacter.h | 38 +++++++++
14 files changed, 225 insertions(+), 16 deletions(-)
create mode 100644 EndlessVendetta/Content/AI/EQSB_Enemy.uasset
create mode 100644 EndlessVendetta/Content/AI/EQSB_Player.uasset
create mode 100644 EndlessVendetta/Content/AI/EQS_Test.uasset
delete mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset
delete mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset
delete mode 100644 EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.h
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.h
diff --git a/EndlessVendetta/Content/AI/EQSB_Enemy.uasset b/EndlessVendetta/Content/AI/EQSB_Enemy.uasset
new file mode 100644
index 00000000..39744dd3
--- /dev/null
+++ b/EndlessVendetta/Content/AI/EQSB_Enemy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9fafb5ea724311d8a706eb8f12493e004ab343735895a80be1811e2caa95f64
+size 18966
diff --git a/EndlessVendetta/Content/AI/EQSB_Player.uasset b/EndlessVendetta/Content/AI/EQSB_Player.uasset
new file mode 100644
index 00000000..65abdba4
--- /dev/null
+++ b/EndlessVendetta/Content/AI/EQSB_Player.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92ebb9e1566806ef68b6d274fa0a1ebd629b71d24c87c36024db0720213cdc8b
+size 17638
diff --git a/EndlessVendetta/Content/AI/EQS_Test.uasset b/EndlessVendetta/Content/AI/EQS_Test.uasset
new file mode 100644
index 00000000..d6184a2f
--- /dev/null
+++ b/EndlessVendetta/Content/AI/EQS_Test.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0d7fcae1638292db5530edb7c1a864ecfedc45f339b8bbf85f86a78754f1ac4a
+size 24150
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset
deleted file mode 100644
index 436112d7..00000000
--- a/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Enemy.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:978aab3035ae3876cef293be990751ff0a4966d407f62262698a530862855320
-size 19419
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset
deleted file mode 100644
index a1e8f59b..00000000
--- a/EndlessVendetta/Content/AI/Enemy/Basic/EQSB_Player.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4da78b93d151ff916a8b62f09f88ce28b8efeb76a9d1d468a6e56f95d50a711d
-size 17987
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
index d8fa1226..ae3f1455 100644
--- a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
+++ b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_EnemyFindCover.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:115f268dcbca6bf144baa4bb0572ea023da1ffd074ae6e7dd445bd9f4cba645c
-size 11772
+oid sha256:9e53cfdf2c62f71a8e9cf4533df7a333c33ddec1b9b830b7c85434c2dad50b3c
+size 11760
diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset
deleted file mode 100644
index eb8c4663..00000000
--- a/EndlessVendetta/Content/AI/Enemy/Basic/EQS_Test.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5f5b2ddf1641fad4bf9b75104089070dd382ab3b630619aa5cbb0fb19e215f22
-size 22729
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
index 60451f7e..b1ec8842 100644
--- a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c7cb8357ffc004ebe77fee2fef237bde524e9a64befca078884785e9762c654c
-size 5440
+oid sha256:b846a25931a6e0277f004c0f41c52eb17b7ea951697783592186c6cb01904bfc
+size 5216
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset
index 93f0eeb7..4abdf431 100644
--- a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/E/PJ/BY6E8JXZSRNMAW3DFHRHRJ.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7b6617a297705f0f5de3dd5a3a85b65bb6984399bbacc3863b84e88df64cd01e
-size 5115
+oid sha256:cfb0f1718ab71a979c83b7884652cb8b9a757abf7c2e17c1d3b356f1ef4228f7
+size 5313
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.cpp
new file mode 100644
index 00000000..5ca23fe3
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.cpp
@@ -0,0 +1,85 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "AI_CompanionController.h"
+
+#include "AI_EnemyController.h"
+#include "CompanionCharacter.h"
+#include "EndlessVendetta/EndlessVendettaCharacter.h"
+#include "Perception/AIPerceptionComponent.h"
+#include "Perception/AISenseConfig_Sight.h"
+
+
+AAI_CompanionController::AAI_CompanionController(FObjectInitializer const& ObjectInitializer)
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+ AAIController::SetGenericTeamId(FGenericTeamId(0));
+ SetupPerceptionSystem();
+}
+
+// Called when the game starts or when spawned
+void AAI_CompanionController::BeginPlay()
+{
+ Super::BeginPlay();
+}
+
+void AAI_CompanionController::OnPossess(APawn* InPawn)
+{
+ Super::OnPossess(InPawn);
+ if (const ACompanionCharacter* CompanionCharacter = Cast(InPawn))
+ {
+ if (UBehaviorTree* const BehaviorTree = CompanionCharacter->GetBehaviorTree())
+ {
+ UBlackboardComponent* TempBlackboardPtr;
+ UseBlackboard(BehaviorTree->BlackboardAsset, TempBlackboardPtr);
+ Blackboard = TempBlackboardPtr;
+ RunBehaviorTree(BehaviorTree);
+ }
+ }
+}
+
+// Called every frame
+void AAI_CompanionController::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+}
+
+void AAI_CompanionController::SetupPerceptionSystem()
+{
+ SightConfig = CreateDefaultSubobject(TEXT("Sight Config"));
+ if (IsValid(SightConfig))
+ {
+ SetPerceptionComponent(*CreateDefaultSubobject(TEXT("Perception Component")));
+ SightConfig->SightRadius = 2000.0f;
+ SightConfig->LoseSightRadius = 2100.0f;
+ SightConfig->PeripheralVisionAngleDegrees = 70.0f;
+ SightConfig->SetMaxAge(20.0f);
+ SightConfig->AutoSuccessRangeFromLastSeenLocation = 520.0f;
+ SightConfig->DetectionByAffiliation.bDetectEnemies = true;
+ SightConfig->DetectionByAffiliation.bDetectFriendlies = true;
+ SightConfig->DetectionByAffiliation.bDetectNeutrals = true;
+ GetPerceptionComponent()->SetDominantSense(*SightConfig->GetSenseImplementation());
+ GetPerceptionComponent()->OnTargetPerceptionUpdated.AddDynamic(this, &AAI_CompanionController::OnTargetPerceptionUpdated);
+ GetPerceptionComponent()->ConfigureSense(*SightConfig);
+ }
+}
+
+void AAI_CompanionController::OnTargetPerceptionUpdated(AActor* Actor, FAIStimulus const Stimulus)
+{
+ if (AEndlessVendettaCharacter* const PlayerCharacter = Cast(Actor))
+ {
+ // if (Stimulus.WasSuccessfullySensed())
+ // {
+ // GetBlackboardComponent()->SetValueAsObject("TargetPlayer", Actor);
+ // GetBlackboardComponent()->SetValueAsVector("TargetLocation", Stimulus.StimulusLocation);
+ // GetBlackboardComponent()->SetValueAsBool("CanSeePlayer", true);
+ // }
+ // else
+ // {
+ // GetBlackboardComponent()->ClearValue("TargetActor");
+ // GetBlackboardComponent()->ClearValue("TargetLocation");
+ // GetBlackboardComponent()->SetValueAsBool("CanSeePlayer", false);
+ // }
+ }
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.h b/EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.h
new file mode 100644
index 00000000..3fb57dc2
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/AI_CompanionController.h
@@ -0,0 +1,36 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "AIController.h"
+#include "AI_CompanionController.generated.h"
+
+struct FAIStimulus;
+
+UCLASS()
+class ENDLESSVENDETTA_API AAI_CompanionController : public AAIController
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ explicit AAI_CompanionController(FObjectInitializer const& ObjectInitializer);
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+ virtual void OnPossess(APawn* InPawn) override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+private:
+ class UAISenseConfig_Sight* SightConfig;
+ void SetupPerceptionSystem();
+
+ UFUNCTION()
+ void OnTargetPerceptionUpdated(AActor* Actor, FAIStimulus const Stimulus);
+
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
index 6e0b0ec2..f29f3d4a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/AI_EnemyController.cpp
@@ -15,7 +15,7 @@ AAI_EnemyController::AAI_EnemyController(FObjectInitializer const& ObjectInitial
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
- SetGenericTeamId(FGenericTeamId(1));
+ AAIController::SetGenericTeamId(FGenericTeamId(1));
SetupPerceptionSystem();
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.cpp
new file mode 100644
index 00000000..5475ee04
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.cpp
@@ -0,0 +1,50 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "CompanionCharacter.h"
+
+#include "Perception/AIPerceptionStimuliSourceComponent.h"
+#include "Perception/AISense_Sight.h"
+
+
+// Sets default values
+ACompanionCharacter::ACompanionCharacter()
+{
+ // Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+}
+
+// Called when the game starts or when spawned
+void ACompanionCharacter::BeginPlay()
+{
+ Super::BeginPlay();
+
+}
+
+// Called every frame
+void ACompanionCharacter::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+}
+
+// Called to bind functionality to input
+void ACompanionCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
+{
+ Super::SetupPlayerInputComponent(PlayerInputComponent);
+}
+
+UBehaviorTree* ACompanionCharacter::GetBehaviorTree() const
+{
+ return BehaviorTree;
+}
+
+void ACompanionCharacter::SetupStimuliSourceComponent()
+{
+ StimuliSourceComponent = CreateDefaultSubobject(TEXT("Stimuli Source Component"));
+ if (IsValid(StimuliSourceComponent))
+ {
+ StimuliSourceComponent->RegisterForSense(TSubclassOf());
+ StimuliSourceComponent->RegisterWithPerceptionSystem();
+ }
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.h b/EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.h
new file mode 100644
index 00000000..0a484bbc
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/AI/CompanionCharacter.h
@@ -0,0 +1,38 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "BehaviorTree/BehaviorTree.h"
+#include "GameFramework/Character.h"
+#include "CompanionCharacter.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API ACompanionCharacter : public ACharacter
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this character's properties
+ ACompanionCharacter();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AI")
+ UBehaviorTree* BehaviorTree;
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+ // Called to bind functionality to input
+ virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
+
+ UFUNCTION(BlueprintCallable, Category = "AI")
+ UBehaviorTree* GetBehaviorTree() const;
+
+private:
+ class UAIPerceptionStimuliSourceComponent* StimuliSourceComponent;
+ void SetupStimuliSourceComponent();
+};
From c69b61c65042315973cea0baf7d75c524ea5e46c Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Wed, 4 Oct 2023 02:26:11 +0100
Subject: [PATCH 057/112] Add EQS, BP Companion Character for Companion Pathing
---
.../Content/AI/Companion/Generic/BB_GenericCompanion.uasset | 3 +++
.../Content/AI/Companion/Generic/BT_GenericCompanion.uasset | 3 +++
.../Content/AI/Companion/Generic/CompanionCharacter.uasset | 3 +++
.../AI/Companion/Generic/EQS_FindCoverNearPlayer.uasset | 3 +++
.../Levels/EnemyAITest/A/UU/P4XZ4FDZKD5IXIWK3JDDDK.uasset | 3 +++
.../Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset | 3 +++
6 files changed, 18 insertions(+)
create mode 100644 EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset
create mode 100644 EndlessVendetta/Content/AI/Companion/Generic/BT_GenericCompanion.uasset
create mode 100644 EndlessVendetta/Content/AI/Companion/Generic/CompanionCharacter.uasset
create mode 100644 EndlessVendetta/Content/AI/Companion/Generic/EQS_FindCoverNearPlayer.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/UU/P4XZ4FDZKD5IXIWK3JDDDK.uasset
create mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset
diff --git a/EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset b/EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset
new file mode 100644
index 00000000..38798a46
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eaedcee2488826c0cbd4c69646da5a3f0b12d6815971805e9ecfbbdf4bc1a2ce
+size 2258
diff --git a/EndlessVendetta/Content/AI/Companion/Generic/BT_GenericCompanion.uasset b/EndlessVendetta/Content/AI/Companion/Generic/BT_GenericCompanion.uasset
new file mode 100644
index 00000000..6fb83025
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Companion/Generic/BT_GenericCompanion.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0a51c6e09ee9b960ab6f095ef348e94881cf58c2594520303790718cdbd2b12d
+size 10480
diff --git a/EndlessVendetta/Content/AI/Companion/Generic/CompanionCharacter.uasset b/EndlessVendetta/Content/AI/Companion/Generic/CompanionCharacter.uasset
new file mode 100644
index 00000000..1d6453bf
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Companion/Generic/CompanionCharacter.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e98da72016a1ef89567571563bb8ddcb251370a7ae7f39b5a0ef17741de9154d
+size 32421
diff --git a/EndlessVendetta/Content/AI/Companion/Generic/EQS_FindCoverNearPlayer.uasset b/EndlessVendetta/Content/AI/Companion/Generic/EQS_FindCoverNearPlayer.uasset
new file mode 100644
index 00000000..6f4e7c66
--- /dev/null
+++ b/EndlessVendetta/Content/AI/Companion/Generic/EQS_FindCoverNearPlayer.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7b6be5f989ea63aac50260d68dd846abb7a4a421a8d3fa81d193204c6514c68
+size 24886
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/UU/P4XZ4FDZKD5IXIWK3JDDDK.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/UU/P4XZ4FDZKD5IXIWK3JDDDK.uasset
new file mode 100644
index 00000000..c31f9729
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/A/UU/P4XZ4FDZKD5IXIWK3JDDDK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf054aae033d323e2dc383293f32913ba2abc9f97ae89368159c2b9eb8c7e8bd
+size 5073
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset
new file mode 100644
index 00000000..c7e7eb8a
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fc0811871384ecf24f8ed7287814d09b40b34b84d18582e0a3dcd4273f9ac44d
+size 5073
From af34f6a5870fbcdc63f820f2ecbdc221ad0a8448 Mon Sep 17 00:00:00 2001
From: PHILIP WHITE
Date: Wed, 4 Oct 2023 02:30:47 +0100
Subject: [PATCH 058/112] Update Blackboard Key to Include Cover Location
---
.../Content/AI/Companion/Generic/BB_GenericCompanion.uasset | 4 ++--
.../Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset | 3 ---
2 files changed, 2 insertions(+), 5 deletions(-)
delete mode 100644 EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset
diff --git a/EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset b/EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset
index 38798a46..13d036c4 100644
--- a/EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset
+++ b/EndlessVendetta/Content/AI/Companion/Generic/BB_GenericCompanion.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:eaedcee2488826c0cbd4c69646da5a3f0b12d6815971805e9ecfbbdf4bc1a2ce
-size 2258
+oid sha256:20197ccd89d5871cd395eac1941f9d29344e76e457d5ebd1200fd271f2ced360
+size 2627
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset
deleted file mode 100644
index c7e7eb8a..00000000
--- a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/C/U2/RJOME4RGCN15IGVOBN2IPY.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fc0811871384ecf24f8ed7287814d09b40b34b84d18582e0a3dcd4273f9ac44d
-size 5073
From a2035ffe2fac8b09a06f381032fd015026788ba6 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Wed, 4 Oct 2023 15:45:43 +0100
Subject: [PATCH 059/112] Cleaned up & added Weapon kick shake (non-universal)
---
.../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++--
.../Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 4 ++--
.../BaseWeapons/BP_GunCameraShake.uasset | 3 +++
.../Pistols/BP_BasePistolWeapon.uasset | 4 ++--
.../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 2 +-
.../WeaponSystem/BaseWeaponClass.cpp | 16 ++++++++++++++--
.../WeaponSystem/BaseWeaponClass.h | 15 ++++++++-------
.../EndlessVendetta/WeaponSystem/PistolClass.cpp | 6 ++++++
.../EndlessVendetta/WeaponSystem/PistolClass.h | 2 ++
9 files changed, 40 insertions(+), 16 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
index 998ce21b..d62958e4 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6c3599c78d84a6895d06de8ce3697a6aefd517ac0105d041cab6f5124090bb3b
-size 35834
+oid sha256:fc4caf67df37627a19c4b9f2c464d84cb293574db45f018458c0d59e0a15ba1a
+size 37750
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
index f09d81f5..e4f50596 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:694f084a31b369305b9cf0e066786a624f73721bf819d3823177703341f0b98c
-size 28902
+oid sha256:77b4872fd2fde68620f3fb539222718cbe2c66160a956c6373d3650c58a9bf88
+size 29117
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset
new file mode 100644
index 00000000..a24df98a
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_GunCameraShake.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5b5bc4f06eaeb74c61b627c02ff6e49dedeebfe047bc79fbfa8941b25c4674ef
+size 7209
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
index a1f00f47..1a6ea0df 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:69e0dd14f07413220251048a5a7bb322eebd9e2d9362dc29bab3d3de096a9a82
-size 29337
+oid sha256:668c94fe648e9fde608e3a07b193f42087fddc44d0e76ec3e4705be642f78679
+size 29493
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
index b70bdb74..3f91ee89 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:51fdff374c4c25c321646b9315bc5286b1ddc89511a597538bf96bea96222e02
+oid sha256:f9dd9531bbf28069122709420605ec7c6478ddea44b642b28f016b2349a05597
size 5061
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 5bcf7c6a..0c3cafba 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -2,7 +2,11 @@
#include "BaseWeaponClass.h"
+
+#include "AIHelpers.h"
+#include "GeneratedCodeHelpers.h"
#include "EndlessVendetta/EndlessVendettaCharacter.h"
+#include "Kismet/KismetMathLibrary.h"
#include "Components/CapsuleComponent.h"
#include "Kismet/GameplayStatics.h"
@@ -28,6 +32,11 @@ void ABaseWeaponClass::BeginPlay()
GunStartArrow = Cast(actorComp);
break;
}
+
+ if (!playerControllerRef)
+ {
+ playerControllerRef = UGameplayStatics::GetPlayerController(GetWorld(), 0);
+ }
}
@@ -35,6 +44,7 @@ void ABaseWeaponClass::BeginPlay()
void ABaseWeaponClass::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
+
}
void ABaseWeaponClass::ClickDetectionTimer()
@@ -47,6 +57,7 @@ void ABaseWeaponClass::CancelFire()
GetWorldTimerManager().ClearTimer(timerHandle);
}
+
void ABaseWeaponClass::Fire()
{
FHitResult outHit;
@@ -63,11 +74,12 @@ void ABaseWeaponClass::Fire()
}
GetWorld()->LineTraceSingleByChannel(outHit, traceStart, traceEnd, ECC_Visibility, collisionParams);
//Debug line to see where the trace hit
- DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, true, 500.0f, 0U, 5.f);
+ DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, false, 5.0f, 0U, 2.5f);
+ playerControllerRef->PlayerCameraManager->StartCameraShake(CameraShakeClass, 1);
ClickDetectionTimer();
if (outHit.bBlockingHit)
{
UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
}
}
-
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index 67be17fc..a32c90bc 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -5,6 +5,7 @@
#include "CoreMinimal.h"
#include "WeaponItemClass.h"
#include "Components/ArrowComponent.h"
+#include "Kismet/KismetMathLibrary.h"
#include "BaseWeaponClass.generated.h"
class AEndlessVendettaCharacter;
@@ -43,7 +44,7 @@ public:
UTexture2D* WeaponImage;
UFUNCTION(BlueprintCallable, Category = "Weapons")
- void Fire();
+ virtual void Fire();
UFUNCTION(BlueprintCallable, Category = "Weapons")
void ClickDetectionTimer();
@@ -53,10 +54,16 @@ public:
UPROPERTY(VisibleAnywhere)
ACharacter* player;
+ UPROPERTY()
+ APlayerController* playerControllerRef;
+
FTimerHandle timerHandle;
bool bFirstBulletShot = false;
+ UPROPERTY(EditAnywhere)
+ TSubclassOf CameraShakeClass;
+
private:
UArrowComponent* GunStartArrow;
@@ -64,10 +71,4 @@ private:
UPROPERTY(EditAnywhere)
float BulletDistance;
-
- //Add HoldFire functionality after pistol is complete for holding fire for pistol and make it start spraying innacuratly.
-
- // UFUNCTION(BlueprintCallable, Category = "Weapons")
- // void HoldFire();
-
};
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp
index c40b9fdc..2b7dc95a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.cpp
@@ -24,3 +24,9 @@ void APistolClass::Tick(float DeltaTime)
Super::Tick(DeltaTime);
}
+void APistolClass::Fire()
+{
+ Super::Fire();
+ UE_LOG(LogTemp, Display, TEXT("Testing overrides: Pistol has been fired"));
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h
index 4ad676b2..ca85b67e 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/PistolClass.h
@@ -22,4 +22,6 @@ protected:
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
+
+ virtual void Fire() override;
};
From 2f0a49faafc1fde775a30236699d6e58c943d83d Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Wed, 4 Oct 2023 16:11:31 +0100
Subject: [PATCH 060/112] Added base weapon camera shake class
---
.../WeaponSystem/BaseWeaponClass.cpp | 1 +
.../WeaponSystem/WeaponCameraShake.cpp | 4 ++++
.../WeaponSystem/WeaponCameraShake.h | 16 ++++++++++++++++
3 files changed, 21 insertions(+)
create mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.h
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 0c3cafba..92a56a31 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -60,6 +60,7 @@ void ABaseWeaponClass::CancelFire()
void ABaseWeaponClass::Fire()
{
+ //do damage fallof based off distance
FHitResult outHit;
FVector traceStart;
FVector traceEnd;
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.cpp
new file mode 100644
index 00000000..03a594a9
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.cpp
@@ -0,0 +1,4 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "WeaponCameraShake.h"
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.h
new file mode 100644
index 00000000..604113b5
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/WeaponCameraShake.h
@@ -0,0 +1,16 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+
+#include "WeaponCameraShake.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API UWeaponCameraShake : public UCameraShakeBase
+{
+ GENERATED_BODY()
+};
From e9cacdb064dc6c01419afa186691ae5a013ae08a Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Thu, 5 Oct 2023 10:48:44 +0100
Subject: [PATCH 061/112] Added temp crosshair to level
---
.../FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset | 4 ++--
.../Blueprints/BaseWeapons/Images/crosshair.uasset | 3 +++
...-god-hates-us-all-album-cover-11562902578sasayvkjg8.uasset | 3 +++
.../Content/FirstPerson/Blueprints/WBP_Crosshair.uasset | 3 +++
.../Content/StarterContent/Architecture/Floor_400x400.uasset | 4 ++--
.../StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 ++--
.../GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp | 4 ++--
7 files changed, 17 insertions(+), 8 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/crosshair.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/fadenkreuz-transparent-crosshair-slayer-god-hates-us-all-album-cover-11562902578sasayvkjg8.uasset
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 62e16495..0e677a52 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:059c5de9ae43a57d471949157f8c1e59bcbc14c1ca117627ccb9d1b27036c180
-size 27098
+oid sha256:a64df34489d5d5452a5b7310e944fd0cb2ea1a2a52eacf2c7bcf9a8d03aadb2c
+size 40999
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/crosshair.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/crosshair.uasset
new file mode 100644
index 00000000..aeb09d75
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/crosshair.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:110eea3093bb784d7c237753fcd6f029cc8d3b388991f886a9752d6960195e14
+size 12511
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/fadenkreuz-transparent-crosshair-slayer-god-hates-us-all-album-cover-11562902578sasayvkjg8.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/fadenkreuz-transparent-crosshair-slayer-god-hates-us-all-album-cover-11562902578sasayvkjg8.uasset
new file mode 100644
index 00000000..2caf2972
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Images/fadenkreuz-transparent-crosshair-slayer-god-hates-us-all-album-cover-11562902578sasayvkjg8.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df1398829f499b8a95bd2a912851aa613d1b26519496f1bc38a58db91c2a7730
+size 62044
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset
new file mode 100644
index 00000000..bdd28701
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/WBP_Crosshair.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a3c0a70c5b68ec66372ae8e29abcb76deb385319f24202e43395c9061b3d0f8a
+size 24854
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index ec9ee977..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d4e6c0e1dad79feeaa5078889de9cf4c6753f1e77cf7d17a3eb3de082b91d4ae
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index 0f990580..48901753 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
-size 72364642
+oid sha256:2f245999e23fa99035343927a6662fb51718dfc13fbb549ffb43d3f94b47e375
+size 66790690
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
index b81b4d54..feac557c 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Recon/VisionLink/VisionLinkEnemyLOSTest.cpp
@@ -57,11 +57,11 @@ void AVisionLinkEnemyLOSTest::TestLOS(TArray EnemiesInLink, AActor* LOS
return;
}
- for (AActor* Enemy : OverlappingEnemies)
+ /*for (AActor* Enemy : OverlappingEnemies)
{
FRotator LookAtRotation = UKismetMathLibrary::FindLookAtRotation(LOSActor->GetActorLocation(), Enemy->GetActorLocation());
UE_LOG(LogTemp, Warning, TEXT("Look at Rotation: %f"), LookAtRotation.Yaw);
- }
+ }*/
Destroy();
From fed628ed770d7a4c07eafc97fa646ed6e8768c49 Mon Sep 17 00:00:00 2001
From: MARCEL HARA
Date: Thu, 5 Oct 2023 12:24:18 +0100
Subject: [PATCH 062/112] Added weapon recoil for all future guns
---
.../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 +-
.../BaseWeapons/BP_BaseWeapon.uasset | 4 +-
.../Pistols/BP_BasePistolWeapon.uasset | 4 +-
.../WeaonRecoil/AssaultRecoilPattern.uasset | 3 +
.../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 2 +-
.../WeaponSystem/BaseWeaponClass.cpp | 76 ++++++++++++++++++-
.../WeaponSystem/BaseWeaponClass.h | 44 +++++++++++
7 files changed, 128 insertions(+), 9 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
index d62958e4..ef248e2a 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:fc4caf67df37627a19c4b9f2c464d84cb293574db45f018458c0d59e0a15ba1a
-size 37750
+oid sha256:cff6a88ce5641de43b7168dbe156dc6c743108fd4fe22dd89647224cdc5249fc
+size 37804
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
index e4f50596..eb786d5b 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:77b4872fd2fde68620f3fb539222718cbe2c66160a956c6373d3650c58a9bf88
-size 29117
+oid sha256:c12dd919c67095a4cdc8439b9a0e8c25d5d65566abbd657d7b43bcdf6dac24b8
+size 29704
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
index 1a6ea0df..ea240160 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:668c94fe648e9fde608e3a07b193f42087fddc44d0e76ec3e4705be642f78679
-size 29493
+oid sha256:71b1463641785fe268bbea7f26c1e1d12cb0703f47b2ec1c50afd19ed3f061ed
+size 30046
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset
new file mode 100644
index 00000000..6fa60a25
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5f4479a0f7cd596b9f9d263ba4898b07487d8e065ec43bd14dd4ea87d239695d
+size 2006
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
index 3f91ee89..82931fab 100644
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f9dd9531bbf28069122709420605ec7c6478ddea44b642b28f016b2349a05597
+oid sha256:1beca35b5b67f492442adf27a1933f51133cce10ed01c3ae69b21a371efe6c4e
size 5061
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 92a56a31..170ad5ab 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -44,9 +44,81 @@ void ABaseWeaponClass::BeginPlay()
void ABaseWeaponClass::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
-
+
+ if (player)
+ {
+ ApplyRecoil(DeltaTime);
+ }
}
+
+
+
+// Recoil Handling //
+void ABaseWeaponClass::GenerateRecoilVector()
+{
+ float angle = FMath::RandRange(recoilMaxAngleLeft, -recoilMaxAngleRight); //randomg recoil vector angle between left and right
+ float recMag = recoilMagnitude * 252.f; //converting degrees to controller units
+ float tempMag = -FMath::RandRange(recMag * recoilMinMultiplier, recMag); // recoil magnitude
+
+ recoilResultYaw = FMath::Sin(FMath::DegreesToRadians(angle));
+ recoilResultPitch = FMath::Cos(FMath::DegreesToRadians(angle));
+
+ //scaling direction to magnitude
+ recoilResultPitch *= -tempMag;
+ recoilResultYaw *= tempMag;
+
+ //reset recoil to 0 of curve
+ recoilTime = 0;
+}
+
+void ABaseWeaponClass::ApplyRecoil(float DeltaTime)
+{
+ if (recoilTime < 0.3)
+ {
+ float amplitude = RecoilCurve->GetFloatValue(recoilTime); //get current value of curve in time
+ recoilTime += DeltaTime;
+ player->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime));
+ player->AddControllerYawInput(GetRecoilYaw(amplitude, recoilTime));
+ UpdateSamples(amplitude, recoilTime);
+ }
+}
+
+void ABaseWeaponClass::nullSamples()
+{
+ recoilCurvet = 0;
+ recoilCurvez1 = 0;
+}
+
+float ABaseWeaponClass::GetRecoilPitch(float Amp, float Time)
+{
+ //Using the trapez method and we are getting the surface under the curve, each trapezoid consist of square and right triangle
+ float lower = recoilCurvez1 < Amp ? recoilCurvez1 : Amp; //get which point is common for both triangle and square of trapezoid
+ //lower point
+ float mult = (Time - recoilCurvet) * lower; //getting surface of square
+ mult += (Time - recoilCurvet) * (Amp - recoilCurvez1) / 2.0f; //getting and adding surface of triangle
+ return (recoilResultPitch * mult) / playerControllerRef->InputPitchScale_DEPRECATED; //calculating and return recoil force for current frame
+}
+
+
+//Same as getrecoilpitch
+float ABaseWeaponClass::GetRecoilYaw(float Amp, float Time)
+{
+ float lower = recoilCurvez1 < Amp ? recoilCurvez1 : Amp;
+ float mult = (Time - recoilCurvet) * lower;
+
+ mult += (Time - recoilCurvet) * (Amp - recoilCurvez1) / 2.0f;
+ return (recoilResultYaw * mult) / playerControllerRef->InputYawScale_DEPRECATED;
+}
+
+void ABaseWeaponClass::UpdateSamples(float Amp, float Time)
+{
+ recoilCurvez1 = Amp;
+ recoilCurvet = Time;
+}
+
+
+// Fire handling //
void ABaseWeaponClass::ClickDetectionTimer()
{
GetWorldTimerManager().SetTimer(timerHandle, this, &ABaseWeaponClass::Fire, 1 / FireRate, false);
@@ -57,7 +129,6 @@ void ABaseWeaponClass::CancelFire()
GetWorldTimerManager().ClearTimer(timerHandle);
}
-
void ABaseWeaponClass::Fire()
{
//do damage fallof based off distance
@@ -77,6 +148,7 @@ void ABaseWeaponClass::Fire()
//Debug line to see where the trace hit
DrawDebugLine(this->GetWorld(), traceStart, traceEnd, FColor::Red, false, 5.0f, 0U, 2.5f);
playerControllerRef->PlayerCameraManager->StartCameraShake(CameraShakeClass, 1);
+ GenerateRecoilVector();
ClickDetectionTimer();
if (outHit.bBlockingHit)
{
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index a32c90bc..b7e3b654 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -24,6 +24,23 @@ protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
+ void GenerateRecoilVector();
+
+ void ApplyRecoil(float DeltaTime);
+
+ void nullSamples();
+
+ //recoil previous curve
+ float recoilCurvez1 = 0;
+
+ //recoil previous curve time
+ float recoilCurvet = 0;
+
+ float recoilTime = 0;
+
+ float recoilResultPitch = 0;
+ float recoilResultYaw = 0;
+
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
@@ -64,6 +81,33 @@ public:
UPROPERTY(EditAnywhere)
TSubclassOf CameraShakeClass;
+ /* How far the gun goes up*/
+ UPROPERTY(EditAnywhere, Category = "Recoil")
+ float recoilMagnitude;
+
+ UPROPERTY(EditAnywhere, Category = "Recoil")
+ float recoilMaxAngleLeft;
+
+ UPROPERTY(EditAnywhere, Category = "Recoil")
+ float recoilMaxAngleRight;
+
+ UPROPERTY(EditAnywhere, Category = "Recoil")
+ float recoilMinMultiplier;
+
+ UPROPERTY(EditAnywhere, Category = "Recoil")
+ class UCurveFloat* RecoilCurve;
+
+ UFUNCTION(BlueprintCallable, Category = "Recoil")
+ float GetRecoilPitch(float Amp, float Time);
+
+ UFUNCTION(BlueprintCallable, Category = "Recoil")
+ float GetRecoilYaw(float Amp, float Time);
+
+ UFUNCTION(BlueprintCallable, Category = "Recoil")
+ void UpdateSamples(float Amp, float Time);
+
+
+
private:
UArrowComponent* GunStartArrow;
From ac4662a9f31c3449ce0a8ca934fef4b71e7eebc7 Mon Sep 17 00:00:00 2001
From: Louis Horne
Date: Thu, 5 Oct 2023 18:52:21 +0100
Subject: [PATCH 063/112] Add Blockout for Tutrorial
Started the blockout for the tutorial level.
---
.../Characters/Mannequins/Animations/ABP_Manny.uasset | 3 +++
.../Characters/Mannequins/Animations/ABP_Quinn.uasset | 3 +++
.../Mannequins/Animations/Manny/BS_MM_WalkRun.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Idle.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Jump.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Land.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset | 3 +++
.../Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset | 3 +++
.../Mannequins/Animations/Manny/MM_Walk_InPlace.uasset | 3 +++
.../Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset | 3 +++
.../Characters/Mannequins/Animations/Quinn/MF_Idle.uasset | 3 +++
.../Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset | 3 +++
.../Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset | 3 +++
.../Mannequins/Materials/Functions/CA_Mannequin.uasset | 3 +++
.../Mannequins/Materials/Functions/ChromaticCurve.uasset | 3 +++
.../Mannequins/Materials/Functions/MF_Diffraction.uasset | 3 +++
.../Mannequins/Materials/Functions/MF_logo3layers.uasset | 3 +++
.../Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset | 3 +++
.../Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset | 3 +++
.../Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset | 3 +++
.../Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset | 3 +++
.../Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset | 3 +++
.../Characters/Mannequins/Materials/M_Mannequin.uasset | 3 +++
.../Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset | 3 +++
.../Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset | 3 +++
.../Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset | 3 +++
.../Characters/Mannequins/Meshes/SK_Mannequin.uasset | 3 +++
.../Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset | 3 +++
.../Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset | 3 +++
.../Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset | 3 +++
.../Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset | 3 +++
.../ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset | 3 +++
.../Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset | 3 +++
.../Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset | 3 +++
.../Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset | 3 +++
.../Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset | 3 +++
.../Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset | 3 +++
.../Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset | 3 +++
.../Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset | 3 +++
.../Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset | 3 +++
.../Content/LevelPrototyping/Scenes/TutorialHit.umap | 3 +++
.../Content/StarterContent/Architecture/Floor_400x400.uasset | 2 +-
126 files changed, 376 insertions(+), 1 deletion(-)
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
create mode 100644 EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
create mode 100644 EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset
new file mode 100644
index 00000000..06510ed2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eeacdc8b0f92b8e16dd2cf4ed7e919feadf650736072c9efd4f5f77499eb62d9
+size 377396
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset
new file mode 100644
index 00000000..301842c6
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/ABP_Quinn.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e423711c22cbb84b4249a04385d8f5c398a5e9c5d237516ff0db3a8dccefc96
+size 39372
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
new file mode 100644
index 00000000..73c543f1
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2acc29c41680b4c399ffacd3299289c2e98f6770c099f55495218754a8390d2a
+size 8851
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
new file mode 100644
index 00000000..8979d182
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dcaaea03f57149cff7cd81e7e7f598e85e252378b0d84202824c63055ea7fc26
+size 616720
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
new file mode 100644
index 00000000..8ffff7be
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a315ff6ecf54d4e1abe6600072267a2a20cb83e990d2ee91fa1fad63fa3c25e0
+size 838022
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
new file mode 100644
index 00000000..924ae4fc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Jump.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bfd7488afe83d1d50faae6b6c281c4889f739ea6b4bfc7fbfbcb9e1c399ed75
+size 209468
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset
new file mode 100644
index 00000000..42e11bb3
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Land.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:05de3888c5a29ab643f74adf4d588a72b1ee547520c049520e3c90b9cd91bc2f
+size 210231
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
new file mode 100644
index 00000000..70eb9d5f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:779b8f8fd668b9b3ac255796b5eb505b38582a5f3a6a14d21015746c427f5203
+size 233628
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
new file mode 100644
index 00000000..01750427
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b554f588731ccc2ab91017696d6edc189e8d905f3bd1658aa0bbb52fb56d9f2a
+size 323175
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
new file mode 100644
index 00000000..10d9e0aa
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c5b75829aa4fa7d1400ab98858ae3ff499c7473bb12487e9e58c853e500ebc90
+size 565708
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
new file mode 100644
index 00000000..34e0bb3c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1842726ff2d091261376cfb631645e1f6e676edc7c8332d6edc6bbf8b4306ab7
+size 8891
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
new file mode 100644
index 00000000..cc05e290
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aed5bfcce6e424c3fde1fe69bbb2a5b4406b78109ed9818e2f0de85096f5d883
+size 869685
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
new file mode 100644
index 00000000..3793707b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ef6b3b0d8435fa4aa92bbf22317e265446ddcab34f2596258f4316a8f52f275
+size 381450
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
new file mode 100644
index 00000000..b65637cb
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68fae0ca27a7cffec957a549bdd37e0637162981b41de6018b720de4201ec5de
+size 400317
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
new file mode 100644
index 00000000..ca441994
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:923f69a89ca9a3c34e2dcb3b0be8fdeb180f0d5f5781c2f5aed93591434df0d4
+size 4654
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
new file mode 100644
index 00000000..98a22005
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2db73d6d14a4bfe11d2aefec2a6ed72dbceaa7fc658de55a7ce1037aaa2da15
+size 6118
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
new file mode 100644
index 00000000..d6efab0e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0461c5e62fb008d178b4a23172511cdfb3f2f29d3201dedbae3014e979ac3a53
+size 31748
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
new file mode 100644
index 00000000..50716752
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:43c4cf35c7e847de2ee6e93c086e18c2163a9b09e095b170a3b8e66941aa689c
+size 55701
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
new file mode 100644
index 00000000..3e526b8c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e8d8f5cdab9bd468ad3731719000cbd72134a64aed69bd6a2349241b6c08ef8
+size 13422
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
new file mode 100644
index 00000000..bb3aa5e4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a854b2354341c525668b120e3fdfc356d58d51a3297394ee471ae8b14a9a1bf0
+size 21243
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
new file mode 100644
index 00000000..128b32dc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b651ac85f23b43b1751155bb479766d66ae1db4bfdd1b191d1c6526988d003fe
+size 24277
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
new file mode 100644
index 00000000..76c30741
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cae533968c2178e476733efcd12b1d7d03b9cdd8ca50bd0f90da77ad3edd3ab5
+size 19288
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
new file mode 100644
index 00000000..82cfe40b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64032da0d5072a3c4447f603c63a1ffb33990cfdc69573d0817c9c02f717919a
+size 24636
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset
new file mode 100644
index 00000000..982d1365
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Materials/M_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:10d06ca935972621ab0699abd560d3a31343dba40248d21cede0704b31bc735c
+size 83055
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
new file mode 100644
index 00000000..76e83de3
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d1832b78f81bbe3c7cbc648c7c25b0af352605e25c35f7de5b8ece4668d57ef0
+size 18631
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset
new file mode 100644
index 00000000..97ff8bac
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2563c3549a2e563431c27c7c082960b18a53b503299ce6b92c61460436290879
+size 34534206
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
new file mode 100644
index 00000000..8d9a50e4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:830f40a8cd84a39637256dee341382ec0e91968cfb44db724bfed2f91af1c775
+size 18526672
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset
new file mode 100644
index 00000000..6fdb30df
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:63f14e9f8aac7d52b18078b8d50648c9957cedd09007c225a8f3e8776cd68265
+size 36495213
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
new file mode 100644
index 00000000..fe094e23
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:048c0ae462fb0dffc00b29b554070db7e7246a9369e2a00931ec5729c1ad7312
+size 19371051
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset
new file mode 100644
index 00000000..8ce47365
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Meshes/SK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:215ed40ad2c8290531cf50ead108221d2aa6af461636a98cf891e63775446616
+size 119087
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
new file mode 100644
index 00000000..78071b7c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:592779e91fc8ed09e4d2e71852ff4af108050e37d3a82b0f5b300c7712ff2966
+size 462272
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
new file mode 100644
index 00000000..644a100d
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c51c2993e09be99e3480af0ce30ac7d4f5299e3cb1ea95deeff583789794353
+size 462170
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset
new file mode 100644
index 00000000..61dbe44b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicBiped.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e370a6ffd00112b7f6189e99703b5920f09664f686733de528c485126356fa19
+size 4168573
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
new file mode 100644
index 00000000..18f1fb5d
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e30a862ca99af96f3d0877538c5140c9e2b989df252d52468eabdb872ec45cc
+size 590359
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
new file mode 100644
index 00000000..55fd98be
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46c93ec5db984971aaa40cc7e63ecd07f415bce492403bedfaecb755b415ef53
+size 16002462
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
new file mode 100644
index 00000000..65fc2cf2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5aec7fd100ef8687ac4cf56996eb22de4d6833e7361b7c61b31685e94e7d6796
+size 2335736
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset
new file mode 100644
index 00000000..f50d2d95
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/IK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cab1d297286a5bc0e62b5c3dd86af3f178e7c8f4710e4dc1203868894b3e132
+size 143134
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset
new file mode 100644
index 00000000..987b2548
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/PA_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d082d00558bf6ea9284f65623cee82f4f9a823adf2883b0ca7172352e8916fc6
+size 63662
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
new file mode 100644
index 00000000..92e00056
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b59f701e426315cadfd16453f1445cab8f23caca24bed38e77e0a26031f18101
+size 64816
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
new file mode 100644
index 00000000..8f8c5f06
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ebe608a1bb96251dc4aa098caefeb3c7aac17c5f952383950e29a744ae62b18e
+size 207223
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
new file mode 100644
index 00000000..87a69787
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bf6059f576b4cc9ccd78a90eed7cf3cd6ae1d2bbd51be46ee313e3584e75833c
+size 64826
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
new file mode 100644
index 00000000..050dafb1
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b350e80733131422cfa702d41f3df2ce96e00d2afb441d2fb5d746014504380
+size 207223
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
new file mode 100644
index 00000000..55d25794
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b37dfd7dba3014752915db44545ee334eeda25409a738b99ded3b2074fccbfcb
+size 64852
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
new file mode 100644
index 00000000..39f87a29
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:790016bfdb567b8200e0cd84f76d6f11a831e057054d7dcf8374b30d79a3df5b
+size 205529
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
new file mode 100644
index 00000000..532b46c2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd400f5be56c758ff5394dbb683c5169d0848b0ba9d09f9e6c272e3bf3f10ab5
+size 64854
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
new file mode 100644
index 00000000..b8d0058f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb0713e0451b39d49c5cdac5cd1ee4f9154bfd1423098cf4195686df3c4d20d8
+size 206131
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
new file mode 100644
index 00000000..cab49123
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c5f150d98767071f4bcd28bdfde1685fee9d40aa1d5d82434c518d40ad6b3b30
+size 52824
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
new file mode 100644
index 00000000..af8531d0
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:142101f70f42f02f41199706477b99874c75bcefd0f277fbdea47ba7de193741
+size 131969
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
new file mode 100644
index 00000000..a653463e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40b46c0ef3ddba150b14bc4c3263e515300ebc72dd88419c9e027334e3c6082d
+size 52826
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
new file mode 100644
index 00000000..5d3c11c4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df08784aa1c599d205e05ba57d9348381e6db5f74d2332e3449f62df981d2bda
+size 131969
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
new file mode 100644
index 00000000..d3043a5f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:112cb9ce37a704413410f4996e4a3ee04b54b27a08e023e6ad3939b16b422552
+size 58824
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
new file mode 100644
index 00000000..b887852a
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27f7d9ff395a01d762166107f3c8fb43b9862b0785750e185e25fa1dd86ce29c
+size 168999
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
new file mode 100644
index 00000000..46de699f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b1b2777419bfc49e444bf34c4ec6bb1427b8bb829c92ccfcf0f979e2dd90ddd7
+size 58826
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
new file mode 100644
index 00000000..6aba1f00
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6f73d48f424e90b916123b37783fbe47b568e53ffbbf16bfc3599978f3e7badd
+size 168999
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
new file mode 100644
index 00000000..f98cb1c6
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69ccff3cc8a6ed58eff6463be1f8d5290f3fde12b91e72ffd5c93a852bc177ee
+size 127276
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
new file mode 100644
index 00000000..f8b77ff9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3b7caf543c0b38805f75fd1406e26520a1124b2c1ca3aa81792ae5c897d20741
+size 361441
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
new file mode 100644
index 00000000..55866a7e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:32d442c2f889f74f96be4a678e84f4ddfbda7a6231bfcf073d8259c9257079c8
+size 88854
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
new file mode 100644
index 00000000..4c001f2b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:327e6b5cb9d426c10f21ea1e5e2f6004761016a0e11361aed240a8a493f35dbc
+size 361441
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
new file mode 100644
index 00000000..a8234112
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:153a9f670d5612852b3bdfb1e5911dd3ba13f00a53e01c004cd6c0625a4e25cd
+size 118833
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
new file mode 100644
index 00000000..fc5710d4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24ee80de174ae79555219f1eb7a12d5cbaabac6b42fae59421dd8192e754be55
+size 557766
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
new file mode 100644
index 00000000..2e838034
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e61e506bc006d9db0ba4a0469b48984dd9ca90cb4caf89db100ff7b43cbbbd00
+size 118835
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
new file mode 100644
index 00000000..f08619af
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c02f07aa3e4f0a0229508f410901cbc56c18adc334d51e4ab58b11b039b150e2
+size 557766
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
new file mode 100644
index 00000000..dde86b2e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:16c364d55b05f67bbffb4ed23cc5d0333fe5611c82380a74aed7e11371a32d1d
+size 130854
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
new file mode 100644
index 00000000..6c78a0dc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:747e14c6054a2c809011c3aac243f4438bd929183d6b24dc05c827c6599eec04
+size 641430
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
new file mode 100644
index 00000000..e9dc936a
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:922fddcf4264b66d389f61b7c5e5effcef2aca70f48c98d41fec4514a250cc2c
+size 130856
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
new file mode 100644
index 00000000..a5e78588
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:de4cec17652b3232f12905381e0fb3085486b47f8c169d8988dc1573aa98ab99
+size 629992
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
new file mode 100644
index 00000000..309aed01
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9d1e68764a3e6438bf344c38faff188298708652d54a14bf16e4c6d42f16ee13
+size 71463
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
new file mode 100644
index 00000000..d635f868
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df7fddc20d642dfee60ee24b42b7cdfb8181ef77b63590173c227bedb37c996e
+size 244960
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
new file mode 100644
index 00000000..b860ce2f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:34ea78c58adb22c006f9030cbc238c1f22fa3060857de5ce75374dc694cd0bb6
+size 109521
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
new file mode 100644
index 00000000..0f1c58ba
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:baeebcaeab8371ac6d2c113396d402bc7ce4d0279d9ac47ba70a870bfcf7e2ff
+size 245041
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
new file mode 100644
index 00000000..8b1c8220
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb3cb479595daad83cbd3f700bddaa0f7cf3a5173a6b470ba03ff22cf7b63a9d
+size 103489
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
new file mode 100644
index 00000000..619dca36
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a2ee7b5868b5af8dc3dc0441986980bc3a72db7f9989798d08c0ee43b41c728
+size 205712
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
new file mode 100644
index 00000000..568122ff
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be091ffa3cd99911432a60807d3df1a1790dbd9c5f311274eee61df93221a8a2
+size 65171
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
new file mode 100644
index 00000000..7a436416
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d6cbf50e59d7484b0e5e96e2d76c2a152d960804778599f60273f3bc07b27a22
+size 205813
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
new file mode 100644
index 00000000..67fa2677
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e1c2166fca7cd0381f733bee6c0f93697fb4a01aa24be032fcff672d31a4518b
+size 53141
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
new file mode 100644
index 00000000..53474c50
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf437126561ca844185fab690f3f52b5102768f78c9dbf6090e7c07778f95685
+size 131952
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
new file mode 100644
index 00000000..70ad1394
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9b384a47ef153f631d9ef77d5074e97fd608d17932f82eba5b896072be8634d
+size 53143
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
new file mode 100644
index 00000000..417f3946
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac044481c0edcc833e959a64fc0d1185d1c07d9abd95674f7861b9e81868c202
+size 131952
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
new file mode 100644
index 00000000..ec3be71f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:35d5a7296f4b2f06506bc1804a0f8a1b5acd6b277450a8f16c66667a1a5ce79d
+size 59141
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
new file mode 100644
index 00000000..8f46f2f5
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8bb2a9106bfe27f7edc51a421346adeb114bc03e3d28b02e11680a7afac5e87
+size 168982
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
new file mode 100644
index 00000000..68b24613
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf604470532fda86259c302e289344845dec4534a587a08d90ccd471a6d5015a
+size 59143
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
new file mode 100644
index 00000000..dec28731
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b74a369ae02fcba33cc58eb0adea2b9e75aa23f765e90153d7431544b2ab62ed
+size 168982
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
new file mode 100644
index 00000000..09e63c52
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9811d92c228fcc359c7ea4a8edd75654250872b2d53afafb15ce5b544e4e4b4
+size 95170
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
new file mode 100644
index 00000000..ddfe6f8b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df72c191c2ca9520e199904e02662a18703a6a6a1932b460ec4ab87875581932
+size 399362
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
new file mode 100644
index 00000000..27d5a7ca
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a4afc263c634f34988b35d831c31797a2b5caf793d18b2c9ced7463d87a67432
+size 95172
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
new file mode 100644
index 00000000..f8388f33
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a1aca955ce2d3f39ecc3f99ba4e84ff15efa2c739aca482bed9c832f8974a16
+size 399362
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
new file mode 100644
index 00000000..57c4da95
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80291d670ebbf2bf83e00b8eb5cf778bdcce65c69e6d5ded19de0735f259e725
+size 119150
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
new file mode 100644
index 00000000..bfc7a63e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f02da143850cb1e7530144714de054cadf0360af342779ce7dde8e6c702b39f5
+size 557448
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
new file mode 100644
index 00000000..791b5783
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5290046e20673b247d12f49b09dfc6345fc9c3ed94d69d4c27eb36939224af44
+size 119152
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
new file mode 100644
index 00000000..9b1dd61f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7d64cf78ef6c012d5a5473681f2e30958ed9b9e316a1ae5c067fdcfd4bab2dff
+size 557448
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
new file mode 100644
index 00000000..1de13a5d
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44579e38e5daa8cdf0ea5e91e5615c559a4ff49af59e219813a73f70fe3669aa
+size 107171
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
new file mode 100644
index 00000000..4411b7e9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b8395312c3806b120b145e0f12d121470cdbd3cd5f20920b6a57ff7b3768faa5
+size 485273
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
new file mode 100644
index 00000000..697794ab
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57abcd99441bf8add532a089ed4e4d84f0d9a4cde364a7fbb257a93a4360abec
+size 107173
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
new file mode 100644
index 00000000..38e3461b
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ef3cf53ba9d8e6cd365bbaf0872feeed031fb8df636e5ad98a371e70909e75c9
+size 488283
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
new file mode 100644
index 00000000..d35d1f94
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Rigs/RTG_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ec102df7e53ef4385079d0cae403bb9c3e666b0a04bf32b1148563083de5f76
+size 13589
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
new file mode 100644
index 00000000..4f63c941
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9d6193987025eb29f967d5ccb5b7901b4381e5c10e415db41c176ea4572ef11
+size 3612394
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
new file mode 100644
index 00000000..cc3a87eb
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afe938a994f15b8fe1e0342e614635923745e83907b73dfaf9e622c963a53dad
+size 18513946
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..b87cea11
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c0ec57bdad72c7ed955916bc3046c68b30952ee6f03b2a85ec227fede620b362
+size 10271764
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
new file mode 100644
index 00000000..54ae2e0e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:19c9590688726f55ab28ec7af40adc894c445eda255b7799c06a3351a8fd5dcf
+size 5740132
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
new file mode 100644
index 00000000..4fc7f16e
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f853e5fe06fd03309769cd2dd656e56ece60ef917d53178cdbd55c8832aeb0b0
+size 11037967
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
new file mode 100644
index 00000000..5bc356d7
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b03f66c9332142ba3ced19ddc37cf332794c045e2d43a7bb676c4a4b06e36061
+size 7198028
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
new file mode 100644
index 00000000..4dee7ebb
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:82a54cc8769089d8d874e4dee8978893d454dc3e91672c701233e3765bb6039f
+size 1357549
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
new file mode 100644
index 00000000..9ad1a156
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ded416115c3f655485bcb55362ea06fbe8f47440d4be9b3fd7ed88ba7546c57
+size 8341170
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
new file mode 100644
index 00000000..fbeb06b4
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:321087605f95eb2e4842e14a50c6103b9068a57a6243e2d0fa873686684baad0
+size 21139305
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..434d166f
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:176ddc8fedd7f83cf83f50834db2bd66a5d9242a40e2caec5be50dd2f70dd830
+size 13143835
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
new file mode 100644
index 00000000..66be3576
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a8b6209275181a583ecf7cc09fddfbd572bd84cf0d1c4fb37d6a83cec57d783e
+size 9033300
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
new file mode 100644
index 00000000..6c01dcd3
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4231e9852bad86777fc300d63dbaa79d39f02e05f014894e0b2d04cef1f8a3e0
+size 13677393
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
new file mode 100644
index 00000000..054a64a5
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:766a04e3601e2f7a05e6a98a8ebcc686bbca8bcaacc03291f869068c40cf44cd
+size 7269112
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
new file mode 100644
index 00000000..bba8ece2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ebbf4022a70efdc480e3880867d3a772ca2f13577514eb6b5cd9175ecc8b7ac2
+size 2153569
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
new file mode 100644
index 00000000..dc1695f8
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9b2dbe21cd947d3615eba6478966f3521b05d09211e0628184134bfd906e21f
+size 16108379
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
new file mode 100644
index 00000000..f2d4d67c
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd16576a92ac50a81a69f0fc1c4fee4f5a671d819f698639479a41dffcc6045e
+size 4710914
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
new file mode 100644
index 00000000..f44f47dc
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3b8e783361011ce33b9dea10f1bdd8f915b12efb3d3ace5c5b6d5049e7f404f9
+size 11655926
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
new file mode 100644
index 00000000..330656e7
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb239cf13f6e7761a95442749a7a68d44bbb075e9dd965277107313eb8e5b290
+size 5217455
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
new file mode 100644
index 00000000..8cfa1129
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:faed00de843abcb013d3b59b9ff4025a7792c970c61e08d360a46a4549ba9b21
+size 1104408
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
new file mode 100644
index 00000000..62a520a6
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a609a98d50bac5143c9421774ce99e737b7aec6afcc762e2674751cf1367254f
+size 5834622
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..e9c1f2f9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c59546202439d76750e5b2dc5ce16638e5ba8a105d23e952d947be51cf397ee
+size 12399718
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
new file mode 100644
index 00000000..512284a0
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9e566088ab415b4ab1fbf674880372d4f1dabf66b91fd26df0f4ab109203224
+size 19706663
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
new file mode 100644
index 00000000..e08d9438
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5941d417ca6312003935cd4ea0b88b8192207ba1e88b3feb924e633f0080a6a9
+size 6732282
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
new file mode 100644
index 00000000..d387ee1a
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:79fadb22034452a17bc381ce845347c94f4cdb069f6e5d70a3caa2e50450aec7
+size 13169556
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
new file mode 100644
index 00000000..946ce264
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5fdce23eac905d8bef79eeb463d1b5885b1f7fe94626f261a8544050eec81149
+size 5217455
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
new file mode 100644
index 00000000..a9a702e2
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f6a39df9d091562417420c2ae5f23a490ef085f51445599f708aa74b989a4fbb
+size 1758275
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
new file mode 100644
index 00000000..d16e6bed
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:509bca88dce73baa774f45ee2e5a336928db2b6a5aa3f473ed05dfe1edf7fdc3
+size 6901761
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
new file mode 100644
index 00000000..fecab4c9
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ddc71bc1851c3e8657d0093d8a8b451c7e25ed143c43e77a9c246a453c646c7
+size 13427650
diff --git a/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
new file mode 100644
index 00000000..1b633b61
--- /dev/null
+++ b/EndlessVendetta/Content/ControlRig/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2a99d47f554511c79553803721702bf58f71e5c56553f1dde948aeeabb226e90
+size 69737
diff --git a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
new file mode 100644
index 00000000..32e67cd1
--- /dev/null
+++ b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9b3a3b80c0e2202acf7dee2abf480fb0af186208e3b66ad51aaee63d9cb64d49
+size 59846
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index d7e5048f..e1c5d9aa 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4affdcf4a4ad958c59cf0f89fc2b9cd113305262e46a5221a577ae9b2fa83055
+oid sha256:1fad714b06ca68b8c0ca86d9188b06810dc1c45596e9b9feb3133228ffdc9e7e
size 14831
From 262de913ce5a9a7e384cc3ce0c252123cd4ddea4 Mon Sep 17 00:00:00 2001
From: Louis Horne
Date: Fri, 6 Oct 2023 10:40:08 +0100
Subject: [PATCH 064/112] Continue Tutorial Hit Blockout
Finished the first floor of the tutorial hit.
Carrying on to the upper floor later.
---
.../Content/LevelPrototyping/Scenes/TutorialHit.umap | 4 ++--
.../Content/StarterContent/Architecture/Floor_400x400.uasset | 4 ++--
.../StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
index 32e67cd1..7227b585 100644
--- a/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
+++ b/EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9b3a3b80c0e2202acf7dee2abf480fb0af186208e3b66ad51aaee63d9cb64d49
-size 59846
+oid sha256:d1c1c6bbcd436113a83a234d11ea9ffdcd3519ae2c184849d31d77d5866ed7a8
+size 132947
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index e1c5d9aa..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1fad714b06ca68b8c0ca86d9188b06810dc1c45596e9b9feb3133228ffdc9e7e
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index 0f990580..1ba35309 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
-size 72364642
+oid sha256:dda4b9b170b4163ec9781daf3302b88539cf260efdacb29df1a4a10813400f5c
+size 66790688
From b93e78108e826bf50cb3607099073ba6cf889538 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 6 Oct 2023 13:42:20 +0100
Subject: [PATCH 065/112] Added Stand-In Dead Enemy
---
EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset | 3 +++
.../Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset | 4 ++--
EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap | 4 ++--
.../Content/StarterContent/Architecture/Floor_400x400.uasset | 4 ++--
.../StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset | 4 ++--
5 files changed, 11 insertions(+), 8 deletions(-)
create mode 100644 EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
diff --git a/EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset b/EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
new file mode 100644
index 00000000..bbf47748
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4f28b60c8b026af2e9c599996f99ccc333e23e38bac7fcaf83d345bb48703edf
+size 28631
diff --git a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
index a52acef6..f0c43d86 100644
--- a/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
+++ b/EndlessVendetta/Content/Gadgets/ReconGadgets/VisionLink/RG_VisionLink.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:00ef54778dd4058c75ad6dca1b46531f8b20b3b154373294be43fa8d5e9ebbdc
-size 106247
+oid sha256:f40722ce6381c0b65978b90489e162c36b1335524162d4b112fe22a6d382fc24
+size 108529
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index cb32e614..80f122b6 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4b05392dd6ea5c33327b50c71be4e3b736b96c356d8de84d894562af209c1f75
-size 103876
+oid sha256:d2231f4d2a4b46f8a7daa258e14487b5ee0c0d6ed602fa256de0ef9cdd04f188
+size 106160
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index c2a34afc..699c604a 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
-size 14948
+oid sha256:c4ecdd1c9e06062da33fac4c12ca5f4011e86800bee678d985f6c95066e281d1
+size 14831
diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
index caa0814c..0f990580 100644
--- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
+++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:81331a890b185a2c1bc418da80b947c289a8ab67ff91737e9b187c45c71d083d
-size 66790690
+oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d
+size 72364642
From 2c299728102b1f3d1ee53ed036e73477adae0b73 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Fri, 6 Oct 2023 16:11:28 +0100
Subject: [PATCH 066/112] Added Basic weapon scope in functionality
---
EndlessVendetta/Config/DefaultEditor.ini | 5 ++-
.../FPWeapon/Mesh/SK_FPGun_Skeleton.uasset | 4 +-
.../Blueprints/BP_FirstPersonCharacter.uasset | 4 +-
.../BaseWeapons/BP_BaseWeapon.uasset | 4 +-
.../Input/Actions/IA_GunAimIn.uasset | 3 ++
.../FirstPerson/Input/IMC_Default.uasset | 4 +-
.../Animations/FirstPerson_AnimBP.uasset | 4 +-
.../0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset | 3 --
.../EndlessVendettaCharacter.cpp | 40 ++++++++++++++++++-
.../EndlessVendettaCharacter.h | 11 ++++-
.../WeaponSystem/BaseWeaponClass.cpp | 17 +++++---
.../WeaponSystem/BaseWeaponClass.h | 3 +-
12 files changed, 78 insertions(+), 24 deletions(-)
create mode 100644 EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset
delete mode 100644 EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
diff --git a/EndlessVendetta/Config/DefaultEditor.ini b/EndlessVendetta/Config/DefaultEditor.ini
index 58552fae..e7314343 100644
--- a/EndlessVendetta/Config/DefaultEditor.ini
+++ b/EndlessVendetta/Config/DefaultEditor.ini
@@ -5,4 +5,7 @@ SimpleMapName=/Game/FirstPerson/Maps/FirstPersonExampleMap
bAllowClassAndBlueprintPinMatching=true
bReplaceBlueprintWithClass= true
bDontLoadBlueprintOutsideEditor= true
-bBlueprintIsNotBlueprintType= true
\ No newline at end of file
+bBlueprintIsNotBlueprintType= true
+
+[/Script/AdvancedPreviewScene.SharedProfiles]
+
diff --git a/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset b/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
index 69ba91c0..c6396a47 100644
--- a/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
+++ b/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:eec8c05a75e7932e3834cbc1cd1b112f29171212b871fa1552f458ceb1b65948
-size 8000
+oid sha256:f9c7063e48c0b3c23194a6a2fc3625da96d20bbd92fece19210001cf0cac8964
+size 8568
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
index 0e677a52..441dabb0 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a64df34489d5d5452a5b7310e944fd0cb2ea1a2a52eacf2c7bcf9a8d03aadb2c
-size 40999
+oid sha256:ff90caf01f6ea20dccd612ea5629215ce5c5a4a63e4da2ec242cabf9000bd6c6
+size 42353
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
index eb786d5b..dc2d119d 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c12dd919c67095a4cdc8439b9a0e8c25d5d65566abbd657d7b43bcdf6dac24b8
-size 29704
+oid sha256:af36276c4e513a207e06ec1eaa8f5c4273ab5634330a999db47ac9128e7d02ec
+size 29776
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset
new file mode 100644
index 00000000..59590b50
--- /dev/null
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:75503df8d15af2a4661c6cd18bc8f690d50f79cafe5ea8e2b3665db0b882cc24
+size 1370
diff --git a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
index 6c703775..bb4e7fab 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/IMC_Default.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:639f363d6702f2597b9140becc6854a1a5e5872978e79c4a83b062ccec7c1966
-size 15739
+oid sha256:6a0af94b654f58c85c8b4453fa211608ecc7bc67b9c82e2e3768814e906babcd
+size 16334
diff --git a/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset b/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset
index c514eab5..20a95d4b 100644
--- a/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset
+++ b/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:175427d440d7f510cbbfa4630c82a677a83348f3b3b5cc555e09a7b03cf2e4ee
-size 473991
+oid sha256:bc9b39a1c54d40b77f7893a00f72fc8e3feedec1d19fbdfa2db4f64d47e63bc3
+size 478510
diff --git a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset b/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
deleted file mode 100644
index 82931fab..00000000
--- a/EndlessVendetta/Content/__ExternalActors__/FirstPerson/Maps/GunMechanicTester/0/3Z/SNIBJQL2L6YHSC7MTTK1C2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1beca35b5b67f492442adf27a1933f51133cce10ed01c3ae69b21a371efe6c4e
-size 5061
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index 38f6b3b4..d7a13fac 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -89,6 +89,8 @@ void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent*
//Weapon Shooting
EnhancedInputComponent->BindAction(TapShootAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::FireCaller);
+ EnhancedInputComponent->BindAction(GunAimInAction, ETriggerEvent::Triggered, this, &AEndlessVendettaCharacter::GunRightClick);
+ EnhancedInputComponent->BindAction(GunAimInAction, ETriggerEvent::Completed, this, &AEndlessVendettaCharacter::StopGunRightClick);
}
}
@@ -188,8 +190,6 @@ void AEndlessVendettaCharacter::EquipSecondary()
AActor* SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams);
SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint"));
SecondaryWeapon = Cast(SecondaryWeaponActor);
-
-
}
//Calls the fire function in the baseWeaponClass
@@ -206,6 +206,42 @@ void AEndlessVendettaCharacter::FireCaller()
}
}
+void AEndlessVendettaCharacter::GunRightClick()
+{
+ if (IsValid(PrimaryWeapon))
+ {
+ for (UActorComponent* actorComp : this->GetComponentsByTag(UArrowComponent::StaticClass(), FName("ScopedLocationArrow")))
+ {
+ ScopedLocationArrow = Cast(actorComp);
+ break;
+ }
+ if (!IsValid(ScopedLocationArrow)) return;
+ PrimaryWeapon->SetActorLocation(ScopedLocationArrow->GetComponentLocation());
+ PrimaryWeapon->WeaponScopedFire();
+ this->GetFirstPersonCameraComponent()->SetFieldOfView(50); //change this number to a number you can change in editor eventually
+ }
+ if (IsValid(SecondaryWeapon))
+ {
+ SecondaryWeapon->WeaponScopedFire();
+ SecondaryWeapon->SetActorLocation(ScopedLocationArrow->GetComponentLocation());
+ this->GetFirstPersonCameraComponent()->SetFieldOfView(50); //change this number to a number you can change in editor eventually
+ }
+}
+
+void AEndlessVendettaCharacter::StopGunRightClick()
+{
+ if (IsValid(PrimaryWeapon))
+ {
+ PrimaryWeapon->SetActorRelativeLocation(FVector(0,0,0));
+ this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
+ }
+ if (IsValid(SecondaryWeapon))
+ {
+ SecondaryWeapon->SetActorRelativeLocation(FVector(0,0,0));
+ this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
+ }
+}
+
void AEndlessVendettaCharacter::Move(const FInputActionValue& Value)
{
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 259737a7..597364e8 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -58,9 +58,9 @@ class AEndlessVendettaCharacter : public ACharacter
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
class UInputAction* TapShootAction;
-
+
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
- class UInputAction* HoldShootAction;
+ class UInputAction* GunAimInAction;
public:
AEndlessVendettaCharacter();
@@ -103,6 +103,13 @@ public:
UFUNCTION(BlueprintCallable, Category = "Weapons")
void FireCaller();
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void GunRightClick();
+
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void StopGunRightClick();
+
+ UArrowComponent* ScopedLocationArrow;
protected:
/** Called for movement input */
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 170ad5ab..1e914665 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -52,9 +52,7 @@ void ABaseWeaponClass::Tick(float DeltaTime)
}
-
-
-// Recoil Handling //
+// Recoil Handling ////////////////////////////////////////////////////////////////////////////////////////////////////////////
void ABaseWeaponClass::GenerateRecoilVector()
{
float angle = FMath::RandRange(recoilMaxAngleLeft, -recoilMaxAngleRight); //randomg recoil vector angle between left and right
@@ -117,8 +115,7 @@ void ABaseWeaponClass::UpdateSamples(float Amp, float Time)
recoilCurvet = Time;
}
-
-// Fire handling //
+// Fire handling //////////////////////////////////////////////////////////////////////////////////////////////////////////
void ABaseWeaponClass::ClickDetectionTimer()
{
GetWorldTimerManager().SetTimer(timerHandle, this, &ABaseWeaponClass::Fire, 1 / FireRate, false);
@@ -155,4 +152,14 @@ void ABaseWeaponClass::Fire()
UE_LOG(LogTemp, Display, TEXT("hit item: %s"), *outHit.GetActor()->GetName());
}
}
+
+void ABaseWeaponClass::WeaponScopedFire()
+{
+ UE_LOG(LogTemp, Display, TEXT("Activated WeaponScopedFire function in BaseWeaponClass"));
+ recoilMagnitude -= 0.2f;
+ recoilMaxAngleLeft /= 2.f;
+ recoilMaxAngleRight /= 2.f;
+ recoilMinMultiplier -= 2.f;
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index b7e3b654..4e3e498a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -106,7 +106,8 @@ public:
UFUNCTION(BlueprintCallable, Category = "Recoil")
void UpdateSamples(float Amp, float Time);
-
+ UFUNCTION(BlueprintCallable, Category = "Weapons")
+ void WeaponScopedFire();
private:
From 13a3900e6d9075576c266927f972d763740261d0 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Fri, 6 Oct 2023 17:21:17 +0100
Subject: [PATCH 067/112] Added Aim In Functionality for weapons
---
EndlessVendetta/Config/DefaultEngine.ini | 3 ++
.../AssaultRifles/BP_BaseAssaultRifle.uasset | 4 +-
.../Input/Actions/IA_GunAimIn.uasset | 2 +-
.../Animations/FirstPerson_AnimBP.uasset | 2 +-
.../EndlessVendettaCharacter.cpp | 18 ++++++++-
.../EndlessVendettaCharacter.h | 3 ++
.../WeaponSystem/BaseWeaponClass.cpp | 40 +++++++++++++------
.../WeaponSystem/BaseWeaponClass.h | 12 ++++--
8 files changed, 63 insertions(+), 21 deletions(-)
diff --git a/EndlessVendetta/Config/DefaultEngine.ini b/EndlessVendetta/Config/DefaultEngine.ini
index f61108f4..8a52ed56 100644
--- a/EndlessVendetta/Config/DefaultEngine.ini
+++ b/EndlessVendetta/Config/DefaultEngine.ini
@@ -87,3 +87,6 @@ ConnectionType=USBOnly
bUseManualIPAddress=False
ManualIPAddress=
+
+[CoreRedirects]
++PropertyRedirects=(OldName="/Script/EndlessVendetta.BaseWeaponClass.player",NewName="/Script/EndlessVendetta.BaseWeaponClass.playerInWorld")
\ No newline at end of file
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
index ef248e2a..075055c8 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cff6a88ce5641de43b7168dbe156dc6c743108fd4fe22dd89647224cdc5249fc
-size 37804
+oid sha256:4473a9d8bdd893373d3b489bc1ccb878bc568d94b9b495b1e2be83880bac0959
+size 37793
diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset
index 59590b50..e3118a9f 100644
--- a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_GunAimIn.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:75503df8d15af2a4661c6cd18bc8f690d50f79cafe5ea8e2b3665db0b882cc24
+oid sha256:8b9f2db74a440d4cbe20066719467311b6d43de3676027ec2162fc39a2c7ac85
size 1370
diff --git a/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset b/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset
index 20a95d4b..44d21afa 100644
--- a/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset
+++ b/EndlessVendetta/Content/FirstPersonArms/Animations/FirstPerson_AnimBP.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bc9b39a1c54d40b77f7893a00f72fc8e3feedec1d19fbdfa2db4f64d47e63bc3
+oid sha256:bd95413d072ec5535444d09946cfb0ec3f4f6392ff5712e60fa521c845b23cdc
size 478510
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
index d7a13fac..93a21cd9 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp
@@ -141,6 +141,7 @@ void AEndlessVendettaCharacter::EquipPrimary()
if (IsValid(PrimaryWeapon))
{
PrimaryWeapon->Destroy();
+ this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
PrimaryWeapon = nullptr;
bHasRifle = false;
return;
@@ -171,6 +172,7 @@ void AEndlessVendettaCharacter::EquipSecondary()
if (IsValid(SecondaryWeapon))
{
SecondaryWeapon->Destroy();
+ this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
SecondaryWeapon = nullptr;
bHasRifle = false;
return;
@@ -208,7 +210,7 @@ void AEndlessVendettaCharacter::FireCaller()
void AEndlessVendettaCharacter::GunRightClick()
{
- if (IsValid(PrimaryWeapon))
+ if (IsValid(PrimaryWeapon) && !bIsScoped)
{
for (UActorComponent* actorComp : this->GetComponentsByTag(UArrowComponent::StaticClass(), FName("ScopedLocationArrow")))
{
@@ -217,11 +219,19 @@ void AEndlessVendettaCharacter::GunRightClick()
}
if (!IsValid(ScopedLocationArrow)) return;
PrimaryWeapon->SetActorLocation(ScopedLocationArrow->GetComponentLocation());
+ bIsScoped = true;
PrimaryWeapon->WeaponScopedFire();
this->GetFirstPersonCameraComponent()->SetFieldOfView(50); //change this number to a number you can change in editor eventually
}
- if (IsValid(SecondaryWeapon))
+ if (IsValid(SecondaryWeapon) && !bIsScoped)
{
+ for (UActorComponent* actorComp : this->GetComponentsByTag(UArrowComponent::StaticClass(), FName("ScopedLocationArrow")))
+ {
+ ScopedLocationArrow = Cast(actorComp);
+ break;
+ }
+ if (!IsValid(ScopedLocationArrow)) return;
+ bIsScoped = true;
SecondaryWeapon->WeaponScopedFire();
SecondaryWeapon->SetActorLocation(ScopedLocationArrow->GetComponentLocation());
this->GetFirstPersonCameraComponent()->SetFieldOfView(50); //change this number to a number you can change in editor eventually
@@ -232,11 +242,15 @@ void AEndlessVendettaCharacter::StopGunRightClick()
{
if (IsValid(PrimaryWeapon))
{
+ bIsScoped = false;
+ PrimaryWeapon->WeaponScopedFire();
PrimaryWeapon->SetActorRelativeLocation(FVector(0,0,0));
this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
}
if (IsValid(SecondaryWeapon))
{
+ bIsScoped = false;
+ SecondaryWeapon->WeaponScopedFire();
SecondaryWeapon->SetActorRelativeLocation(FVector(0,0,0));
this->GetFirstPersonCameraComponent()->SetFieldOfView(90);
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
index 597364e8..8762426a 100644
--- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
+++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h
@@ -111,6 +111,9 @@ public:
UArrowComponent* ScopedLocationArrow;
+ UPROPERTY(EditAnywhere, Category = "Dont Touch")
+ bool bIsScoped;
+
protected:
/** Called for movement input */
void Move(const FInputActionValue& Value);
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index 1e914665..b0ff8a20 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -25,9 +25,11 @@ void ABaseWeaponClass::BeginPlay()
// Attempt to find the player character
APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0);
- player = Cast(PlayerController->GetCharacter());
+ playerInWorld = Cast(PlayerController->GetCharacter());
+
+ endlessVendettaChar = Cast(playerInWorld);
- for (UActorComponent* actorComp : player->GetComponentsByTag(UArrowComponent::StaticClass(), FName("GunStart")))
+ for (UActorComponent* actorComp : playerInWorld->GetComponentsByTag(UArrowComponent::StaticClass(), FName("GunStart")))
{
GunStartArrow = Cast(actorComp);
break;
@@ -37,7 +39,11 @@ void ABaseWeaponClass::BeginPlay()
{
playerControllerRef = UGameplayStatics::GetPlayerController(GetWorld(), 0);
}
-
+
+ originalMagnitude = recoilMagnitude;
+ originalMaxAngleLeft = recoilMaxAngleLeft;
+ originalMaxAngleRight = recoilMaxAngleRight;
+ originalMinMultiplier = recoilMinMultiplier;
}
// Called every frame
@@ -45,7 +51,7 @@ void ABaseWeaponClass::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
- if (player)
+ if (playerInWorld)
{
ApplyRecoil(DeltaTime);
}
@@ -76,8 +82,8 @@ void ABaseWeaponClass::ApplyRecoil(float DeltaTime)
{
float amplitude = RecoilCurve->GetFloatValue(recoilTime); //get current value of curve in time
recoilTime += DeltaTime;
- player->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime));
- player->AddControllerYawInput(GetRecoilYaw(amplitude, recoilTime));
+ playerInWorld->AddControllerPitchInput(GetRecoilPitch(amplitude, recoilTime));
+ playerInWorld->AddControllerYawInput(GetRecoilYaw(amplitude, recoilTime));
UpdateSamples(amplitude, recoilTime);
}
}
@@ -135,7 +141,7 @@ void ABaseWeaponClass::Fire()
traceStart = GunStartArrow->GetComponentLocation();
traceEnd = traceStart + (GunStartArrow->GetForwardVector() * BulletDistance);
FCollisionQueryParams collisionParams;
- collisionParams.AddIgnoredActor(player);
+ collisionParams.AddIgnoredActor(playerInWorld);
collisionParams.AddIgnoredActor(this);
if (GetWorldTimerManager().IsTimerActive(timerHandle))
{
@@ -155,11 +161,21 @@ void ABaseWeaponClass::Fire()
void ABaseWeaponClass::WeaponScopedFire()
{
- UE_LOG(LogTemp, Display, TEXT("Activated WeaponScopedFire function in BaseWeaponClass"));
- recoilMagnitude -= 0.2f;
- recoilMaxAngleLeft /= 2.f;
- recoilMaxAngleRight /= 2.f;
- recoilMinMultiplier -= 2.f;
+ if (endlessVendettaChar->bIsScoped)
+ {
+ recoilMagnitude -= 0.2f;
+ recoilMaxAngleLeft /= 2.f;
+ recoilMaxAngleRight /= 2.f;
+ recoilMinMultiplier -= 0.2f;
+
+ }
+ else
+ {
+ recoilMagnitude = originalMagnitude;
+ recoilMaxAngleLeft = originalMaxAngleLeft;
+ recoilMaxAngleRight = originalMaxAngleRight;
+ recoilMinMultiplier = originalMinMultiplier;
+ }
}
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index 4e3e498a..8eb2d617 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -69,9 +69,10 @@ public:
void CancelFire();
UPROPERTY(VisibleAnywhere)
- ACharacter* player;
-
- UPROPERTY()
+ ACharacter* playerInWorld;
+
+ AEndlessVendettaCharacter* endlessVendettaChar;
+
APlayerController* playerControllerRef;
FTimerHandle timerHandle;
@@ -115,5 +116,10 @@ private:
UPROPERTY(EditAnywhere)
float BulletDistance;
+
+ float originalMagnitude;
+ float originalMaxAngleLeft;
+ float originalMaxAngleRight;
+ float originalMinMultiplier;
};
From c025d84a907af5ab6c9a4ee5f11d41a748a87bb9 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Fri, 6 Oct 2023 17:29:55 +0100
Subject: [PATCH 068/112] Changed weapon values
---
.../BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++--
.../BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
index 075055c8..bda0660d 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4473a9d8bdd893373d3b489bc1ccb878bc568d94b9b495b1e2be83880bac0959
-size 37793
+oid sha256:4b3aee8c3c553b35b2e127ddd7dd44974fda5563ad4eb9bc18a34efceee4d004
+size 37850
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset
index 6fa60a25..423c7283 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WeaonRecoil/AssaultRecoilPattern.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5f4479a0f7cd596b9f9d263ba4898b07487d8e065ec43bd14dd4ea87d239695d
-size 2006
+oid sha256:b63c754fc78a67f950a91e30dd31a6778bac31a485191b9cc14560515d5012a5
+size 2033
From 0f5c983e755e400596719db30446f8a01c621f3e Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 6 Oct 2023 18:27:33 +0100
Subject: [PATCH 069/112] Implemented AOverloadModule and its Activation
Functions
---
.../OverloadModule/CG_OverloadModule.uasset | 3 +
.../Content/Levels/GadgetSystemTestLevel.umap | 4 +-
.../Architecture/Floor_400x400.uasset | 4 +-
.../Props/MaterialSphere.uasset | 4 +-
.../Combat/OverloadModule/OverloadModule.cpp | 122 ++++++++++++++++++
.../Combat/OverloadModule/OverloadModule.h | 64 +++++++++
6 files changed, 195 insertions(+), 6 deletions(-)
create mode 100644 EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h
diff --git a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset
new file mode 100644
index 00000000..4d8790c5
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7d61bb4d0a3f7c25b8901699a8047059fb83a255d89990a5b366410f51d23792
+size 23259
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 80f122b6..62d689b2 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d2231f4d2a4b46f8a7daa258e14487b5ee0c0d6ed602fa256de0ef9cdd04f188
-size 106160
+oid sha256:f27623f7de4cd3ffafc332f52d32f9d58031dad0ba48c3954472553188926618
+size 106253
diff --git a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
index 699c604a..c2a34afc 100644
--- a/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
+++ b/EndlessVendetta/Content/StarterContent/Architecture/Floor_400x400.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c4ecdd1c9e06062da33fac4c12ca5f4011e86800bee678d985f6c95066e281d1
-size 14831
+oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6
+size 14948
diff --git a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
index 56bddfc9..7759cc15 100644
--- a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
+++ b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3a8777c01491888bba9f40eda9d2bed76a611f0e80f75917501ce69c1a321342
-size 47333
+oid sha256:a34dc965cab9faa793895f1015563f0440389135257bb3e9682863c87e3cdae1
+size 47710
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp
new file mode 100644
index 00000000..1ad9fad0
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp
@@ -0,0 +1,122 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "OverloadModule.h"
+
+#include "BehaviorTree/BTCompositeNode.h"
+#include "Components/SphereComponent.h"
+#include "GameFramework/Character.h"
+
+void AOverloadModule::BeginPlay()
+{
+ Super::BeginPlay();
+
+ this->SetActorTickInterval(0.2);
+ PlayerChar = GetWorld()->GetFirstPlayerController()->GetCharacter();
+ PlayerCam = Cast(PlayerChar->GetComponentByClass(UCameraComponent::StaticClass()));
+}
+
+
+void AOverloadModule::Tick(float DeltaSeconds)
+{
+ Super::Tick(DeltaSeconds);
+
+ CheckForPotentialHackTarget();
+}
+
+void AOverloadModule::CheckForPotentialHackTarget()
+{
+ FHitResult OutHit;
+ FVector LT_Start = PlayerCam->GetComponentLocation();
+ FVector LT_End = PlayerCam->GetComponentLocation() + (PlayerCam->GetForwardVector() * DeadBodyCheckDistance);
+
+ DrawDebugLine(GetWorld(), LT_Start, LT_End, FColor::Red, false, 0.2, 0, 1);
+
+ if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera) || !(OutHit.GetActor()->ActorHasTag(FName("Enemy")) && OutHit.GetActor()->ActorHasTag(FName("Dead"))))
+ {
+ PotentialHackTarget = nullptr;
+ DisplayNeedADeadEnemy();
+ return;
+ }
+
+ if (HackedEnemies.Contains(OutHit.GetActor()->GetUniqueID()))
+ {
+ PotentialHackTarget = nullptr;
+ DisplayAlreadyHacked();
+ }
+
+ DrawDebugLine(GetWorld(), LT_Start, OutHit.ImpactPoint, FColor::Green, false, 0.2, 0, 1);
+ PotentialHackTarget = OutHit.GetActor();
+ DisplayFoundPotentialTarget();
+}
+
+
+void AOverloadModule::Activate()
+{
+ if (GadgetCantBeUsed() || !IsValid(PotentialHackTarget)) return;
+
+ Super::Activate();
+ HackedEnemies.Add(PotentialHackTarget->GetUniqueID());
+ ExplodeClosestAliveEnemy();
+}
+
+void AOverloadModule::FinishedUsing()
+{
+ Super::FinishedUsing();
+}
+
+void AOverloadModule::ExplodeClosestAliveEnemy()
+{
+ FActorSpawnParameters SpawnParams;
+ SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
+ AActor* SphereCollisionActor = GetWorld()->SpawnActor(USphereComponent::StaticClass(), PlayerChar->GetActorLocation(), PlayerChar->GetActorRotation(), SpawnParams);
+ USphereComponent* SphereCollision = Cast(SphereCollisionActor);
+
+ SphereCollision->SetHiddenInGame(false);
+ SphereCollision->SetSphereRadius(AreaOfEffectInMeters * 100, true);
+
+ TArray OverlappingActors;
+ TArray EnemiesInRadius;
+
+ // Find all living enemies within the radius
+ SphereCollision->GetOverlappingActors(OverlappingActors, ACharacter::StaticClass());
+ for (AActor* OverlappingActor : OverlappingActors)
+ {
+ if (OverlappingActor->ActorHasTag(FName("Enemy")) && !OverlappingActor->ActorHasTag(FName("Dead"))) EnemiesInRadius.Add(OverlappingActor);
+ }
+
+ if (EnemiesInRadius.IsEmpty())
+ {
+ DisplayFailedToFindTarget();
+ return;
+ }
+
+ // Find the closest Enemy in radius
+ AActor* ClosestEnemy = EnemiesInRadius[0];
+ float Dist = FVector::Distance(PlayerChar->GetActorLocation(), ClosestEnemy->GetActorLocation());
+ UE_LOG(LogTemp, Warning, TEXT("Distacne To first Considered Enemy = %f"), Dist);
+ if (EnemiesInRadius.Num() < 2)
+ {
+ SpawnExplosiveOnActor(ClosestEnemy, SpawnParams);
+ return;
+ }
+
+ for (int i = 1; i < EnemiesInRadius.Num(); i++)
+ {
+ float ConsideredDist = FVector::Distance(PlayerChar->GetActorLocation(), EnemiesInRadius[i]->GetActorLocation());
+ if (ConsideredDist <= Dist)
+ {
+ ClosestEnemy = EnemiesInRadius[i];
+ Dist = ConsideredDist;
+ }
+ }
+
+ SpawnExplosiveOnActor(ClosestEnemy, SpawnParams);
+
+}
+
+void AOverloadModule::SpawnExplosiveOnActor(AActor* ActortoExplode, FActorSpawnParameters SpawnParams)
+{
+ GetWorld()->SpawnActor(Explosive, ActortoExplode->GetActorLocation(), ActortoExplode->GetActorRotation(), SpawnParams);
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h
new file mode 100644
index 00000000..7dbfcb41
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.h
@@ -0,0 +1,64 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Camera/CameraComponent.h"
+#include "EndlessVendetta/GadgetSystem/CombatGadget.h"
+#include "EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.h"
+#include "OverloadModule.generated.h"
+
+/**
+ *
+ */
+UCLASS()
+class ENDLESSVENDETTA_API AOverloadModule : public ACombatGadget
+{
+ GENERATED_BODY()
+
+ ACharacter* PlayerChar;
+
+ UCameraComponent* PlayerCam;
+
+ AActor* PotentialHackTarget;
+
+ // An Array of previously hacked enemies, stops player from hacking the same Dead Enemy
+ TArray HackedEnemies;
+
+ virtual void BeginPlay() override;
+
+ virtual void Tick(float DeltaSeconds) override;
+
+ virtual void Activate() override;
+
+ virtual void FinishedUsing() override;
+
+ void CheckForPotentialHackTarget();
+
+ void ExplodeClosestAliveEnemy();
+
+ void SpawnExplosiveOnActor(AActor* ActortoExplode, FActorSpawnParameters SpawnParams);
+
+protected:
+ UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
+ float AreaOfEffectInMeters = 15;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
+ float DeadBodyCheckDistance = 300;
+
+ UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
+ TSubclassOf Explosive;
+
+// --------------- Display Functions ---------------
+ UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module")
+ void DisplayAlreadyHacked();
+
+ UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module")
+ void DisplayNeedADeadEnemy();
+
+ UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module")
+ void DisplayFoundPotentialTarget();
+
+ UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module")
+ void DisplayFailedToFindTarget();
+};
From 588b2e5a91c4991e97dfacb0bb4ca8b3b8c6a6f8 Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 6 Oct 2023 18:27:57 +0100
Subject: [PATCH 070/112] Implemented a Generic Explosive Class
---
.../Content/Gadgets/BP_Explosive.uasset | 3 ++
.../GadgetClasses/Combat/Explosive.cpp | 29 +++++++++++++++++++
.../GadgetClasses/Combat/Explosive.h | 26 +++++++++++++++++
3 files changed, 58 insertions(+)
create mode 100644 EndlessVendetta/Content/Gadgets/BP_Explosive.uasset
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.cpp
create mode 100644 EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.h
diff --git a/EndlessVendetta/Content/Gadgets/BP_Explosive.uasset b/EndlessVendetta/Content/Gadgets/BP_Explosive.uasset
new file mode 100644
index 00000000..e4a28dde
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/BP_Explosive.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c546719195bfec717a1ea448ffd23e7eea15b3997b28a7bec6582c82fd6e0889
+size 16032
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.cpp
new file mode 100644
index 00000000..5f36be4b
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.cpp
@@ -0,0 +1,29 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "Explosive.h"
+
+// Sets default values
+AExplosive::AExplosive()
+{
+ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
+ PrimaryActorTick.bCanEverTick = true;
+
+}
+
+// Called when the game starts or when spawned
+void AExplosive::BeginPlay()
+{
+ Super::BeginPlay();
+
+ UE_LOG(LogTemp, Warning, TEXT("An explosive has Spawned in ;)"));
+
+}
+
+// Called every frame
+void AExplosive::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.h b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.h
new file mode 100644
index 00000000..b2c9f019
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/Explosive.h
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "GameFramework/Actor.h"
+#include "Explosive.generated.h"
+
+UCLASS()
+class ENDLESSVENDETTA_API AExplosive : public AActor
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this actor's properties
+ AExplosive();
+
+protected:
+ // Called when the game starts or when spawned
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void Tick(float DeltaTime) override;
+
+};
From 6bcc703974f0f748ecbdf16e07edeefc8dd8254b Mon Sep 17 00:00:00 2001
From: Rafal Swierczek <34179rs@gmail.com>
Date: Fri, 6 Oct 2023 19:58:51 +0100
Subject: [PATCH 071/112] Started Working on UI for Overload Module
---
.../Content/Gadgets/BP_DeadEnemy.uasset | 4 +--
.../Content/Gadgets/BP_Explosive.uasset | 4 +--
.../OverloadModule/CG_OverloadModule.uasset | 4 +--
.../OverloadModule/WBP_OM_ScreenWidget.uasset | 3 ++
.../Content/Gadgets/GM_GadgetManager.uasset | 4 +--
.../Content/Levels/GadgetSystemTestLevel.umap | 2 +-
.../Blueprints/Blueprint_CeilingLight.uasset | 4 +--
.../Props/MaterialSphere.uasset | 4 +--
.../Combat/OverloadModule/OverloadModule.cpp | 28 +++++++++++--------
.../Combat/OverloadModule/OverloadModule.h | 9 ++++--
10 files changed, 38 insertions(+), 28 deletions(-)
create mode 100644 EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset
diff --git a/EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset b/EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
index bbf47748..934ef0f7 100644
--- a/EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
+++ b/EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4f28b60c8b026af2e9c599996f99ccc333e23e38bac7fcaf83d345bb48703edf
-size 28631
+oid sha256:45e0a403f0bfb807fb6b6b3fe987c02e2f1f79af908507e8071a0c6259d64ed1
+size 28624
diff --git a/EndlessVendetta/Content/Gadgets/BP_Explosive.uasset b/EndlessVendetta/Content/Gadgets/BP_Explosive.uasset
index e4a28dde..7589b28e 100644
--- a/EndlessVendetta/Content/Gadgets/BP_Explosive.uasset
+++ b/EndlessVendetta/Content/Gadgets/BP_Explosive.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c546719195bfec717a1ea448ffd23e7eea15b3997b28a7bec6582c82fd6e0889
-size 16032
+oid sha256:f28aca2e17c3afa2dd55c79b5f66c1ea851dd8067e0712fbc9677ca614f8c927
+size 16005
diff --git a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset
index 4d8790c5..1093b52a 100644
--- a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset
+++ b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/CG_OverloadModule.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7d61bb4d0a3f7c25b8901699a8047059fb83a255d89990a5b366410f51d23792
-size 23259
+oid sha256:599c54946bc53ff3d3ee06fc5c1e8322aa69d8a54380df1e8a63a41c5aefed46
+size 22249
diff --git a/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset
new file mode 100644
index 00000000..042d528a
--- /dev/null
+++ b/EndlessVendetta/Content/Gadgets/CombatGadgets/OverloadModule/WBP_OM_ScreenWidget.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1fa538706ad1bf961d40e82afa4e2ff2937e4377d353f0db4b46cd1599609d19
+size 25427
diff --git a/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset b/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
index 3f170b83..b227979b 100644
--- a/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
+++ b/EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:654adc50d788c8fb0546796c4a290967958f12c156d3a135034339350831dba6
-size 22655
+oid sha256:5aba529a9880bd712825883152d7ea40ba2c5e309dbd8d783942cdcb1e1879bf
+size 22674
diff --git a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
index 62d689b2..83fabf6e 100644
--- a/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/GadgetSystemTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f27623f7de4cd3ffafc332f52d32f9d58031dad0ba48c3954472553188926618
+oid sha256:35b4a02d71c80d38b36dd3e41dcc099477704b99bd7e2785129503a80a20e67e
size 106253
diff --git a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
index c5c3b84e..d5c9196d 100644
--- a/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
+++ b/EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331
-size 158206
+oid sha256:b6a5543ffe1a37190e943bef495c0b5c55b3170e3609ac120b2b0197825e858d
+size 43745
diff --git a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
index 7759cc15..56bddfc9 100644
--- a/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
+++ b/EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a34dc965cab9faa793895f1015563f0440389135257bb3e9682863c87e3cdae1
-size 47710
+oid sha256:3a8777c01491888bba9f40eda9d2bed76a611f0e80f75917501ce69c1a321342
+size 47333
diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp
index 1ad9fad0..5e29360d 100644
--- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetClasses/Combat/OverloadModule/OverloadModule.cpp
@@ -30,9 +30,11 @@ void AOverloadModule::CheckForPotentialHackTarget()
FVector LT_Start = PlayerCam->GetComponentLocation();
FVector LT_End = PlayerCam->GetComponentLocation() + (PlayerCam->GetForwardVector() * DeadBodyCheckDistance);
- DrawDebugLine(GetWorld(), LT_Start, LT_End, FColor::Red, false, 0.2, 0, 1);
-
- if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera) || !(OutHit.GetActor()->ActorHasTag(FName("Enemy")) && OutHit.GetActor()->ActorHasTag(FName("Dead"))))
+ //DrawDebugLine(GetWorld(), LT_Start, LT_End, FColor::Red, false, 0.2, 0, 1);
+
+ FCollisionQueryParams QueryParams = FCollisionQueryParams::DefaultQueryParam;
+ QueryParams.AddIgnoredActor(PlayerChar);
+ if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera, QueryParams) || !(OutHit.GetActor()->ActorHasTag(FName("Enemy")) && OutHit.GetActor()->ActorHasTag(FName("Dead"))))
{
PotentialHackTarget = nullptr;
DisplayNeedADeadEnemy();
@@ -41,11 +43,13 @@ void AOverloadModule::CheckForPotentialHackTarget()
if (HackedEnemies.Contains(OutHit.GetActor()->GetUniqueID()))
{
+ UE_LOG(LogTemp, Warning, TEXT("Enemy has already been hacked!"));
PotentialHackTarget = nullptr;
DisplayAlreadyHacked();
+ return;
}
- DrawDebugLine(GetWorld(), LT_Start, OutHit.ImpactPoint, FColor::Green, false, 0.2, 0, 1);
+ //DrawDebugLine(GetWorld(), LT_Start, OutHit.ImpactPoint, FColor::Green, false, 0.2, 0, 1);
PotentialHackTarget = OutHit.GetActor();
DisplayFoundPotentialTarget();
}
@@ -58,6 +62,7 @@ void AOverloadModule::Activate()
Super::Activate();
HackedEnemies.Add(PotentialHackTarget->GetUniqueID());
ExplodeClosestAliveEnemy();
+ PlayHackingAnim(GadgetMaxUptime);
}
void AOverloadModule::FinishedUsing()
@@ -67,10 +72,8 @@ void AOverloadModule::FinishedUsing()
void AOverloadModule::ExplodeClosestAliveEnemy()
{
- FActorSpawnParameters SpawnParams;
- SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
- AActor* SphereCollisionActor = GetWorld()->SpawnActor(USphereComponent::StaticClass(), PlayerChar->GetActorLocation(), PlayerChar->GetActorRotation(), SpawnParams);
- USphereComponent* SphereCollision = Cast