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 01/31] 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 02/31] 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 03/31] 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 04/31] 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 05/31] 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 06/31] 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 07/31] 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 08/31] 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 09/31] 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 10/31] 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 11/31] 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 12/31] 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 13/31] 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 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 14/31] 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 d5223bcf4f482bf32f021ae2e31ab5d7b68a8ac8 Mon Sep 17 00:00:00 2001
From: Marcel Hara
Date: Thu, 28 Sep 2023 22:37:31 +0100
Subject: [PATCH 15/31] 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 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 16/31] 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 17/31] 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 18/31] 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 19/31] 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 20/31] 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 21/31] 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 22/31] 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 23/31] 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 24/31] 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 25/31] 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 26/31] 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 27/31] 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 28/31] 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 29/31] 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 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 30/31] 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 31/31] 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