diff --git a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/CharacterLogic/ALS_AnimMan_CharacterBP.uasset b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/CharacterLogic/ALS_AnimMan_CharacterBP.uasset index 88a80c5d..5615c2df 100644 --- a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/CharacterLogic/ALS_AnimMan_CharacterBP.uasset +++ b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/CharacterLogic/ALS_AnimMan_CharacterBP.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:058c7e07ce64eb42a5f53141569734c7d9b145219fce25b7f8b18a0a7c87153b -size 1136591 +oid sha256:45333bc610b22b03190c323c53231f364ba1e94c2bf292c5f950db632716eb2b +size 1139379 diff --git a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/ALS_HUD.uasset b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/ALS_HUD.uasset index 615f9a3a..3b0b7734 100644 --- a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/ALS_HUD.uasset +++ b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/ALS_HUD.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dd5a7ca874502f44a7b1958b0485622b24965499028cd2e1603a397d62c0c3ec -size 679028 +oid sha256:5557f29800501f3a12dfac9cd0a1631d084d2b2de8f2934b0396309fc35068ed +size 677579 diff --git a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateButtonParams.uasset b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateButtonParams.uasset index 5a47d2c8..a893d929 100644 --- a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateButtonParams.uasset +++ b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateButtonParams.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f3b018c5135ce96547991ae4310be79289da7e9a277e0cffc06a411fd8a3a02f -size 5379 +oid sha256:4a0081e39b6aa17352aec46ba19afdf5de3684875cf818bf3e7475280f75380e +size 5457 diff --git a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateSwitcher.uasset b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateSwitcher.uasset index 8980415b..1ae1d0fb 100644 --- a/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateSwitcher.uasset +++ b/EndlessVendetta/Content/AdvancedLocomotionV4/Blueprints/UI/OverlayStateSwitcher.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7479282be86610c346acc6f937214045de04482f79f2be53a6f8fb7134977caf -size 213124 +oid sha256:964976fe5b991654d0918e5e77ad54af6fec9658a0d6e858fdd5862b0908d0b1 +size 202465 diff --git a/EndlessVendetta/Content/AdvancedLocomotionV4/CharacterAssets/MannequinSkeleton/ALS_AnimBP.uasset b/EndlessVendetta/Content/AdvancedLocomotionV4/CharacterAssets/MannequinSkeleton/ALS_AnimBP.uasset index afbe2cca..952772e7 100644 --- a/EndlessVendetta/Content/AdvancedLocomotionV4/CharacterAssets/MannequinSkeleton/ALS_AnimBP.uasset +++ b/EndlessVendetta/Content/AdvancedLocomotionV4/CharacterAssets/MannequinSkeleton/ALS_AnimBP.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f752f1dfc0c5f6ef1792c1454e24b4a7472684575b3453fbbc5e215a51bd59f2 -size 13165256 +oid sha256:894e64c518aa3708b6d32816bd269fc8adcfac11151e4cd58d7dd4fc522f5c5d +size 15224228 diff --git a/EndlessVendetta/Content/AdvancedLocomotionV4/Data/Enums/ALS_OverlayState.uasset b/EndlessVendetta/Content/AdvancedLocomotionV4/Data/Enums/ALS_OverlayState.uasset index 4377e4c7..7a1e27e7 100644 --- a/EndlessVendetta/Content/AdvancedLocomotionV4/Data/Enums/ALS_OverlayState.uasset +++ b/EndlessVendetta/Content/AdvancedLocomotionV4/Data/Enums/ALS_OverlayState.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:788747a02440a822d1578270fd27b571e113962afa85447bf1b59cccf1b93186 -size 6952 +oid sha256:e6d47448e2ba9d891ff71777753b742e6db3ed7d64cf07ee22e8b7d14b4a6de9 +size 8095 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Combat_start__808s_.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Combat_start__808s_.uasset deleted file mode 100644 index ed33c9a4..00000000 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Combat_start__808s_.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:46a5e732f251a9a1aebd24f5aa29364c2cc5f2522e5c4e3ed5473ef8d887597c -size 263 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Drums.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Drums.uasset deleted file mode 100644 index 0702a9c2..00000000 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Drums.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2a2d9989263e89a8577c8baa8a65e1f80fd07fafc10e59c4f39c7811e1157976 -size 263 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Guitar.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Guitar.uasset deleted file mode 100644 index b72829a6..00000000 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Guitar.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7fbe6b96fb4bdc4cb792a15c41f30f90de4c02f2aa062f8a7ab4118a150e7b4 -size 263 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Hats_and_clap.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Hats_and_clap.uasset deleted file mode 100644 index 8b9aa5bb..00000000 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Hats_and_clap.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:511e3e89548523140214c15a7e2b78a2c8c55be342b9e09e6bb8850ac9861c3b -size 263 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Sound_effect.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Sound_effect.uasset deleted file mode 100644 index 31f504ec..00000000 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Sound_effect.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6efff96f83427cfcfa4510324170bc0308809746d85e3bd8af720296972c5e87 -size 263 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/combat_Continuous.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/combat_Continuous.uasset deleted file mode 100644 index 146e605a..00000000 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/combat_Continuous.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7987db3ca44fcfd6e371db571ea5d6a58468534c9668bffbb43ab7939bf5299 -size 263 diff --git a/EndlessVendetta/Content/FirstPerson/BPGM_Vendetta.uasset b/EndlessVendetta/Content/FirstPerson/BPGM_Vendetta.uasset new file mode 100644 index 00000000..a7861ade --- /dev/null +++ b/EndlessVendetta/Content/FirstPerson/BPGM_Vendetta.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29a63f4dea65c981019d64786ece156caa4724ef3e6db2b53143e152e8b5c889 +size 19470 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset index bab13078..95a8f02d 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:25ffcbdf32a99c7e8deee6e9c29a09527704f2abea05408613f0af08f6ad3ff5 -size 1337792 +oid sha256:f1d86397bdd108841b2763aee9fd0325a8d605efd9c97ecd8be22b7b750bbc9a +size 1356275 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ABP_Pistol.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ABP_Pistol.uasset index 322b4510..4baae90f 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ABP_Pistol.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ABP_Pistol.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f3077551eb634bbf035f1f5a40ce0a498a24c35e8750ee5de67ea7fb18454ff -size 52977 +oid sha256:6bf95da3d3ffd242577fab3f408cd78a0775db4c750c8c58b7fce42dd35d6e92 +size 67435 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/ABP_Arms.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/ABP_Arms.uasset index 0fb86391..b705fc9b 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/ABP_Arms.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/ABP_Arms.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:555b07e0c927cb7f2f9aa1a03e62efb455c63b8717bc730f117c051802ea41a7 -size 310471 +oid sha256:e89533a168e5c0d88bb0a8da4042c13d96d89adcc034d5c33430257d6e7d5093 +size 416357 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/FP_Pistol_Reload_Montage.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/FP_Pistol_Reload_Montage.uasset index 98b9569c..f51fbfca 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/FP_Pistol_Reload_Montage.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/ArmsAnimations/FP_Pistol_Reload_Montage.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:673f4c8c538f8db6a7f3306d10f4acc8b14d620524ecad73038c3757ad2cd896 -size 8422 +oid sha256:3c79e997ff6586b60db8a1bfb34f572e1f7e5f2b7abb05db7bdcab10bc721fa4 +size 10176 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset index d0fbf56b..1984e416 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:41832d2b11af01f885737b0133e5296cdc69e25ed7d78a809a0b4d6636846e3d -size 253229 +oid sha256:4d525f0bed0d08486856e1144f795a8cdd6f0b1e85e9a01ef0bbb4b031f664af +size 252383 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/PistolAnimations/Pistol_Anims_Armature_Fire_Montage.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/PistolAnimations/Pistol_Anims_Armature_Fire_Montage.uasset index 06b50220..86bf07de 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/PistolAnimations/Pistol_Anims_Armature_Fire_Montage.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/PistolAnimations/Pistol_Anims_Armature_Fire_Montage.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:734e7c05f532b3175f620e9dd1d1dee4d7e9571019142764c33a75ceaa56afc2 -size 8847 +oid sha256:fafa9c12873295b838b5a91d329eb8c4e266ac9a685ed37ea505a7dd03ccbd4c +size 13062 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset index 9bff187d..3aa488b7 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83de794a6ca955709e5b2082d8706348d61ae3f3754014ccd7205754c917bfd8 -size 7545 +oid sha256:b7e0480b2ff1c91c0099c9d4a03590743360d8d139a4e103154e2be11856cf8d +size 7647 diff --git a/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Idle.uasset b/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Idle.uasset index 4462b986..a5fa483a 100644 --- a/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Idle.uasset +++ b/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Idle.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:03dcee1261414fa798048349790dde669b81cd949f7059874e6356baf79dc04b -size 655644 +oid sha256:9628418b18b5f7592c9c060f439e0f27f629d96b0a46f2bccfb7aa77161be82b +size 656496 diff --git a/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Rifle_Idle.uasset b/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Rifle_Idle.uasset index 697e59a1..240ab98d 100644 --- a/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Rifle_Idle.uasset +++ b/EndlessVendetta/Content/FirstPersonArms/Animations/FP_Rifle_Idle.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e175b62a191b77bd56f14ecc4e49ed13fe5065e5a273d45330a9c81cb8853bfe -size 366405 +oid sha256:b9b4f9fee9f6f15054c16e928ce9e0ec9a82755f1c2431becad5a3d9cacac7a6 +size 269980 diff --git a/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms.uasset b/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms.uasset index 3c586d3e..2759e21d 100644 --- a/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms.uasset +++ b/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e95ede55778bc6b6a3390e877f252980175a582de150c98fbdf8657530b832ee -size 2780197 +oid sha256:0b5e2637772c5e14185997df73ef2f30c8daf071f197892c810169248315d130 +size 2785824 diff --git a/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset b/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset index d260b726..42e48143 100644 --- a/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset +++ b/EndlessVendetta/Content/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0fc5ca2693f166d0b2d6bf7bf5ddb143d0bfbfb05b50ba5cae12a09d46736871 -size 23513 +oid sha256:31e46415fa3a46c4eb1a6c2caa24bb86f061176cc0ad3fb575ed06d3631f7960 +size 23756 diff --git a/EndlessVendetta/Content/Levels/MovementTest.umap b/EndlessVendetta/Content/Levels/MovementTest.umap index e12f5e1f..e805b0b0 100644 --- a/EndlessVendetta/Content/Levels/MovementTest.umap +++ b/EndlessVendetta/Content/Levels/MovementTest.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3817c95ab5de495db9002dbdfdb3d5c1bf97f27825de7ce5564dcf120144df44 -size 19736 +oid sha256:1570b3ebfce5202d1d38a6cdb299b1724f82b64dc92b93641045c7ee36eed9a8 +size 19702 diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/MovementTest/4/CL/VBF482BJA06GWQ2VE89T4K.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/MovementTest/4/CL/VBF482BJA06GWQ2VE89T4K.uasset new file mode 100644 index 00000000..dd9cd7c7 --- /dev/null +++ b/EndlessVendetta/Content/__ExternalActors__/Levels/MovementTest/4/CL/VBF482BJA06GWQ2VE89T4K.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccf58c6d6975b4eed1e617e697aaf1f27a0c37d93ceb92150b1d9a830e2a0da8 +size 6735 diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/MovementTest/C/ZX/8GZK30F02QUUO234VY329I.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/MovementTest/C/ZX/8GZK30F02QUUO234VY329I.uasset new file mode 100644 index 00000000..8af0f6e2 --- /dev/null +++ b/EndlessVendetta/Content/__ExternalActors__/Levels/MovementTest/C/ZX/8GZK30F02QUUO234VY329I.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1059f10fadb2631145ab8e4d90925171bb8d1a408e406985d552db36d4546b74 +size 8031 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 07d81f21..db6d18e6 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -30,21 +30,6 @@ AEndlessVendettaCharacter::AEndlessVendettaCharacter() GetCharacterMovement()->GetNavAgentPropertiesRef().bCanCrouch = true; // Set size for collision capsule GetCapsuleComponent()->InitCapsuleSize(55.f, 96.0f); - - // // Create a CameraComponent - // FirstPersonCameraComponent = CreateDefaultSubobject(TEXT("FirstPersonCamera")); - // FirstPersonCameraComponent->SetupAttachment(GetCapsuleComponent()); - // FirstPersonCameraComponent->SetRelativeLocation(FVector(-10.f, 0.f, 60.f)); // Position the camera - // FirstPersonCameraComponent->bUsePawnControlRotation = true; - // - // // Create a mesh component that will be used when being viewed from a '1st person' view (when controlling this pawn) - // Mesh1P = CreateDefaultSubobject(TEXT("CharacterMesh1P")); - // Mesh1P->SetOnlyOwnerSee(true); - // Mesh1P->SetupAttachment(FirstPersonCameraComponent); - // Mesh1P->bCastDynamicShadow = false; - // Mesh1P->CastShadow = false; - // //Mesh1P->SetRelativeRotation(FRotator(0.9f, -19.19f, 5.2f)); - // Mesh1P->SetRelativeLocation(FVector(-30.f, 0.f, -150.f)); } void AEndlessVendettaCharacter::IncrementRestrictedBoundsCount() @@ -67,10 +52,23 @@ void AEndlessVendettaCharacter::DecrementRestrictedBoundsCount() } } +void AEndlessVendettaCharacter::ReloadAnimationComplete() +{ + bIsReloading = false; +} + +void AEndlessVendettaCharacter::SetOverlayState(const EOverlayState OverlayState) const +{ + SetOverlayStateEvent.Broadcast(OverlayState); +} + void AEndlessVendettaCharacter::BeginPlay() { // Call the base class Super::BeginPlay(); + FirstPersonArms = Cast(GetComponentsByTag(USkeletalMeshComponent::StaticClass(), FName("FirstPersonArms"))[0]); + HeldWeapon = Cast(GetComponentsByTag(UChildActorComponent::StaticClass(), FName("Weapon"))[0]); + bIsCurrentlyHoldingWeapon = false; UEVGameInstance* GI = Cast(GetWorld()->GetGameInstance()); if (IsValid(GI->MainSaveGameInstanceRef)) @@ -388,7 +386,7 @@ void AEndlessVendettaCharacter::EquipPrimary() { GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, TEXT("IsPrimaryWeapon valid check running")); PrimaryWeapon->DetachFromActor(DetatchRules); - PrimaryWeapon->AttachToComponent(Mesh1P, AttachmentRules, FName("UnEquipGunSocket")); + PrimaryWeapon->AttachToComponent(FirstPersonArms, AttachmentRules, FName("UnEquipGunSocket")); PrimaryWeapon->SetActorHiddenInGame(true); PrimaryWeapon->SetActorEnableCollision(false); this->GetFirstPersonCameraComponent()->SetFieldOfView(90); @@ -397,6 +395,7 @@ void AEndlessVendettaCharacter::EquipPrimary() bHasRifle = false; GLog->Log("Primary Weapon Put Away"); bIsCurrentlyHoldingWeapon = false; + SetOverlayState(EOverlayState::Default); //this is for philips stat viewer thingy Cast(GetWorld()->GetAuthGameMode())->SendEvent("DeEquip", "Pri"); return; @@ -411,27 +410,32 @@ void AEndlessVendettaCharacter::EquipPrimary() if (!IsValid(PrimaryWeapon)) { bHasRifle = true; + if (!bIsPrimaryWeaponCreated) { PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams); GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, TEXT("Spawning weapon")); - PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint")); + PrimaryWeaponActor->AttachToComponent(FirstPersonArms, AttachmentRules, FName("GripPoint")); PrimaryWeapon = Cast(PrimaryWeaponActor); PrimaryWeapon->SetActorHiddenInGame(false); + PrimaryWeapon->SetActorEnableCollision(false); bIsCurrentlyHoldingWeapon = true; bIsPrimaryWeaponCreated = true; + SetOverlayState(EOverlayState::AssaultRifle); } } //For when you already have all your weapons and ur switching with 1 and 2 or when your picking up a weapon with a weapon in hand if (PrimaryWeaponClass != nullptr) { GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Green, TEXT("non ifstatement code running")); - PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint")); + PrimaryWeaponActor->AttachToComponent(FirstPersonArms, AttachmentRules, FName("GripPoint")); PrimaryWeapon = Cast(PrimaryWeaponActor); PrimaryWeapon->SetActorHiddenInGame(false); + PrimaryWeapon->SetActorEnableCollision(false); GetWorldTimerManager().ClearTimer(PrimaryWeapon->reloadTimerHandle); bIsCurrentlyHoldingWeapon = true; bHasRifle = true; + SetOverlayState(EOverlayState::AssaultRifle); } } @@ -445,10 +449,8 @@ void AEndlessVendettaCharacter::EquipSecondary() FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true); FDetachmentTransformRules DetatchRules(EDetachmentRule::KeepWorld, false); - if (bIsReloading) return; if (IsValid(SecondaryWeapon)) { - SecondaryWeapon->AttachToComponent(Mesh1P, AttachmentRules, FName("UnEquipGunSocket")); SecondaryWeapon->SetActorHiddenInGame(true); SecondaryWeapon->SetActorEnableCollision(false); this->GetFirstPersonCameraComponent()->SetFieldOfView(90); @@ -457,6 +459,7 @@ void AEndlessVendettaCharacter::EquipSecondary() SecondaryWeapon = nullptr; bIsCurrentlyHoldingWeapon = false; bHasRifle = false; + SetOverlayState(EOverlayState::Default); GLog->Log("Secondary Weapon Put Away"); return; } @@ -471,21 +474,22 @@ void AEndlessVendettaCharacter::EquipSecondary() bHasRifle = true; if (!bIsSecondaryWeaponCreated) { - SecondaryWeaponActor = GetWorld()->SpawnActor(SecondaryWeaponClass, spawnParams); - SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint")); + HeldWeapon->SetChildActorClass(SecondaryWeaponClass); + SecondaryWeaponActor = HeldWeapon->GetChildActor(); SecondaryWeapon = Cast(SecondaryWeaponActor); SecondaryWeapon->SetActorHiddenInGame(false); bIsCurrentlyHoldingWeapon = true; bIsSecondaryWeaponCreated = true; + SetOverlayState(EOverlayState::Pistol); } GLog->Log("Secondary Weapon Equipped"); } if (SecondaryWeaponClass != nullptr) { - SecondaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("PistolGripPoint")); SecondaryWeapon = Cast(SecondaryWeaponActor); SecondaryWeapon->SetActorHiddenInGame(false); bIsCurrentlyHoldingWeapon = true; + SetOverlayState(EOverlayState::Pistol); GetWorldTimerManager().ClearTimer(SecondaryWeapon->reloadTimerHandle); } } @@ -524,7 +528,7 @@ void AEndlessVendettaCharacter::WeaponSwitcher(AActor* Outhit) { PrimaryWeaponActor = GetWorld()->SpawnActor(PrimaryWeaponClass, spawnParams); GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Green, TEXT("non ifstatement code running")); - PrimaryWeaponActor->AttachToComponent(Mesh1P, AttachmentRules, FName("GripPoint")); + PrimaryWeaponActor->AttachToComponent(FirstPersonArms, AttachmentRules, FName("GripPoint")); PrimaryWeapon = Cast(PrimaryWeaponActor); PrimaryWeapon->SetActorHiddenInGame(false); GetWorldTimerManager().ClearTimer(PrimaryWeapon->reloadTimerHandle); @@ -568,11 +572,11 @@ void AEndlessVendettaCharacter::FireCaller() { if (bIsReloading) return; if (InPauseMenu) return; - if (IsValid(PrimaryWeapon) && !bIsReloading) + if (IsValid(PrimaryWeapon)) { PrimaryWeapon->Fire(); } - if (IsValid(SecondaryWeapon) && !bIsReloading) + if (IsValid(SecondaryWeapon)) { SecondaryWeapon->Fire(); } diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index 549571d8..86f2afef 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -21,6 +21,16 @@ class UCameraComponent; class UAnimMontage; class USoundBase; +UENUM(BlueprintType) +enum class EOverlayState : uint8 +{ + Default UMETA(DisplayName = "Default"), + Pistol UMETA(DisplayName = "Pistol"), + AssaultRifle UMETA(DisplayName = "AssaultRifle"), + Shotgun UMETA(DisplayName = "Shotgun"), + Sniper UMETA(DisplayName = "Sniper") +}; + UCLASS(config=Game) class AEndlessVendettaCharacter : public ACharacter { @@ -29,7 +39,7 @@ class AEndlessVendettaCharacter : public ACharacter protected: /** Pawn mesh: 1st person view (arms; seen only by self) */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Mesh) - USkeletalMeshComponent* Mesh1P; + USkeletalMeshComponent* FirstPersonArms; bool InOpenWorld = false; @@ -118,6 +128,8 @@ public: AActor* PrimaryWeaponActor; UPROPERTY(BlueprintReadWrite) AActor* SecondaryWeaponActor; + UPROPERTY(BlueprintReadWrite) + UChildActorComponent* HeldWeapon; bool bIsPrimaryWeaponCreated = false; bool bIsSecondaryWeaponCreated = false; bool bIsWeaponPickedUp = false; @@ -138,9 +150,21 @@ public: void IncrementRestrictedBoundsCount(); UFUNCTION(BlueprintCallable) void DecrementRestrictedBoundsCount(); + DECLARE_DYNAMIC_MULTICAST_DELEGATE(FReloadAnimationComplete); + + UFUNCTION(BlueprintCallable, Category = "Weapon") + void ReloadAnimationComplete(); + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSetOverlayState, EOverlayState, OverlayState); + + UPROPERTY(BlueprintAssignable, Category = "Weapon") + FSetOverlayState SetOverlayStateEvent; + + UFUNCTION(BlueprintCallable, Category = "Weapon") + void SetOverlayState(EOverlayState OverlayState) const; DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FRestrictedAreaStatusChangedSignature, bool, bIsInRestrictedAreaLmao); + UPROPERTY(BlueprintAssignable, Category = "Restricted Area") FRestrictedAreaStatusChangedSignature RestrictedAreaStatusChanged; @@ -263,8 +287,7 @@ public: UFUNCTION(BlueprintCallable, Category = "Stealth") void SetUnCrouch(); - /** Returns Mesh1P Sub-object **/ - USkeletalMeshComponent* GetMesh1P() const { return Mesh1P; } + USkeletalMeshComponent* GetFirstPersonArms() const { return FirstPersonArms; } /** Returns FirstPersonCameraComponent Sub-object **/ UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; } diff --git a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.cpp b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.cpp deleted file mode 100644 index 5dcfc9c3..00000000 --- a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#include "EndlessVendettaProjectile.h" -#include "GameFramework/ProjectileMovementComponent.h" -#include "Components/SphereComponent.h" - -AEndlessVendettaProjectile::AEndlessVendettaProjectile() -{ - // Use a sphere as a simple collision representation - CollisionComp = CreateDefaultSubobject(TEXT("SphereComp")); - CollisionComp->InitSphereRadius(5.0f); - CollisionComp->BodyInstance.SetCollisionProfileName("Projectile"); - CollisionComp->OnComponentHit.AddDynamic(this, &AEndlessVendettaProjectile::OnHit); // set up a notification for when this component hits something blocking - - // Players can't walk on it - CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f)); - CollisionComp->CanCharacterStepUpOn = ECB_No; - - // Set as root component - RootComponent = CollisionComp; - - // Use a ProjectileMovementComponent to govern this projectile's movement - ProjectileMovement = CreateDefaultSubobject(TEXT("ProjectileComp")); - ProjectileMovement->UpdatedComponent = CollisionComp; - ProjectileMovement->InitialSpeed = 3000.f; - ProjectileMovement->MaxSpeed = 3000.f; - ProjectileMovement->bRotationFollowsVelocity = true; - ProjectileMovement->bShouldBounce = true; - - // Die after 3 seconds by default - InitialLifeSpan = 3.0f; -} - -void AEndlessVendettaProjectile::OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit) -{ - // Only add impulse and destroy projectile if we hit a physics - if ((OtherActor != nullptr) && (OtherActor != this) && (OtherComp != nullptr) && OtherComp->IsSimulatingPhysics()) - { - OtherComp->AddImpulseAtLocation(GetVelocity() * 100.0f, GetActorLocation()); - - Destroy(); - } -} \ No newline at end of file diff --git a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.h b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.h deleted file mode 100644 index 01b4b61c..00000000 --- a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/EndlessVendettaProjectile.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#pragma once - -#include "CoreMinimal.h" -#include "GameFramework/Actor.h" -#include "EndlessVendettaProjectile.generated.h" - -class USphereComponent; -class UProjectileMovementComponent; - -UCLASS(config=Game) -class AEndlessVendettaProjectile : public AActor -{ - GENERATED_BODY() - - /** Sphere collision component */ - UPROPERTY(VisibleDefaultsOnly, Category=Projectile) - USphereComponent* CollisionComp; - - /** Projectile movement component */ - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Movement, meta = (AllowPrivateAccess = "true")) - UProjectileMovementComponent* ProjectileMovement; - -public: - AEndlessVendettaProjectile(); - - /** called when projectile hits something */ - UFUNCTION() - void OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit); - - /** Returns CollisionComp subobject **/ - USphereComponent* GetCollisionComp() const { return CollisionComp; } - /** Returns ProjectileMovement subobject **/ - UProjectileMovementComponent* GetProjectileMovement() const { return ProjectileMovement; } -}; - diff --git a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.cpp b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.cpp deleted file mode 100644 index 906557d6..00000000 --- a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#include "TP_PickUpComponent.h" - -UTP_PickUpComponent::UTP_PickUpComponent() -{ - // Setup the Sphere Collision - SphereRadius = 32.f; -} - -void UTP_PickUpComponent::BeginPlay() -{ - Super::BeginPlay(); - - // Register our Overlap Event - OnComponentBeginOverlap.AddDynamic(this, &UTP_PickUpComponent::OnSphereBeginOverlap); -} - -void UTP_PickUpComponent::OnSphereBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) -{ - // Checking if it is a First Person Character overlapping - AEndlessVendettaCharacter* Character = Cast(OtherActor); - if(Character != nullptr) - { - // Notify that the actor is being picked up - OnPickUp.Broadcast(Character); - - // Unregister from the Overlap Event so it is no longer triggered - OnComponentBeginOverlap.RemoveAll(this); - } -} diff --git a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.h b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.h deleted file mode 100644 index 62b5655a..00000000 --- a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_PickUpComponent.h +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#pragma once - -#include "CoreMinimal.h" -#include "Components/SphereComponent.h" -#include "EndlessVendetta/EndlessVendettaCharacter.h" -#include "TP_PickUpComponent.generated.h" - -// Declaration of the delegate that will be called when someone picks this up -// The character picking this up is the parameter sent with the notification -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPickUp, AEndlessVendettaCharacter*, PickUpCharacter); - -UCLASS(Blueprintable, BlueprintType, ClassGroup = (Custom), meta = (BlueprintSpawnableComponent)) -class ENDLESSVENDETTA_API UTP_PickUpComponent : public USphereComponent -{ - GENERATED_BODY() - -public: - - /** Delegate to whom anyone can subscribe to receive this event */ - UPROPERTY(BlueprintAssignable, Category = "Interaction") - FOnPickUp OnPickUp; - - UTP_PickUpComponent(); -protected: - - /** Called when the game starts */ - virtual void BeginPlay() override; - - /** Code for when something overlaps this component */ - UFUNCTION() - void OnSphereBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult); -}; \ No newline at end of file diff --git a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.cpp b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.cpp deleted file mode 100644 index 50dfa1d8..00000000 --- a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - - -#include "TP_WeaponComponent.h" -#include "EndlessVendetta/EndlessVendettaCharacter.h" -#include "EndlessVendettaProjectile.h" -#include "GameFramework/PlayerController.h" -#include "Camera/PlayerCameraManager.h" -#include "Kismet/GameplayStatics.h" -#include "EnhancedInputComponent.h" -#include "EnhancedInputSubsystems.h" - -// Sets default values for this component's properties -UTP_WeaponComponent::UTP_WeaponComponent() -{ - // Default offset from the character location for projectiles to spawn - MuzzleOffset = FVector(100.0f, 0.0f, 10.0f); -} - - -void UTP_WeaponComponent::Fire() -{ - if (Character == nullptr || Character->GetController() == nullptr) - { - return; - } - - // Try and fire a projectile - if (ProjectileClass != nullptr) - { - UWorld* const World = GetWorld(); - if (World != nullptr) - { - APlayerController* PlayerController = Cast(Character->GetController()); - const FRotator SpawnRotation = PlayerController->PlayerCameraManager->GetCameraRotation(); - // MuzzleOffset is in camera space, so transform it to world space before offsetting from the character location to find the final muzzle position - const FVector SpawnLocation = GetOwner()->GetActorLocation() + SpawnRotation.RotateVector(MuzzleOffset); - - //Set Spawn Collision Handling Override - FActorSpawnParameters ActorSpawnParams; - ActorSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButDontSpawnIfColliding; - - // Spawn the projectile at the muzzle - World->SpawnActor(ProjectileClass, SpawnLocation, SpawnRotation, ActorSpawnParams); - } - } - - // Try and play the sound if specified - if (FireSound != nullptr) - { - UGameplayStatics::PlaySoundAtLocation(this, FireSound, Character->GetActorLocation()); - } - - // Try and play a firing animation if specified - if (FireAnimation != nullptr) - { - // Get the animation object for the arms mesh - UAnimInstance* AnimInstance = Character->GetMesh1P()->GetAnimInstance(); - if (AnimInstance != nullptr) - { - AnimInstance->Montage_Play(FireAnimation, 1.f); - } - } -} - -void UTP_WeaponComponent::AttachWeapon(AEndlessVendettaCharacter* TargetCharacter) -{ - Character = TargetCharacter; - if (Character == nullptr) - { - return; - } - - // Attach the weapon to the First Person Character - FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true); - AttachToComponent(Character->GetMesh1P(), AttachmentRules, FName(TEXT("GripPoint"))); - - // switch bHasRifle so the animation blueprint can switch to another animation set - Character->SetHasRifle(true); - - // Set up action bindings - if (APlayerController* PlayerController = Cast(Character->GetController())) - { - if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(PlayerController->GetLocalPlayer())) - { - // Set the priority of the mapping to 1, so that it overrides the Jump action with the Fire action when using touch input - Subsystem->AddMappingContext(FireMappingContext, 1); - } - - if (UEnhancedInputComponent* EnhancedInputComponent = Cast(PlayerController->InputComponent)) - { - // Fire - EnhancedInputComponent->BindAction(FireAction, ETriggerEvent::Triggered, this, &UTP_WeaponComponent::Fire); - } - } -} - -void UTP_WeaponComponent::EndPlay(const EEndPlayReason::Type EndPlayReason) -{ - if (Character == nullptr) - { - return; - } - - if (APlayerController* PlayerController = Cast(Character->GetController())) - { - if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(PlayerController->GetLocalPlayer())) - { - Subsystem->RemoveMappingContext(FireMappingContext); - } - } -} \ No newline at end of file diff --git a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.h b/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.h deleted file mode 100644 index 7d6e2e9b..00000000 --- a/EndlessVendetta/Source/EndlessVendetta/FirstPersonTemplateClasses/TP_WeaponComponent.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#pragma once - -#include "CoreMinimal.h" -#include "Components/SkeletalMeshComponent.h" -#include "TP_WeaponComponent.generated.h" - -class AEndlessVendettaCharacter; - -UCLASS(Blueprintable, BlueprintType, ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) -class ENDLESSVENDETTA_API UTP_WeaponComponent : public USkeletalMeshComponent -{ - GENERATED_BODY() - -public: - /** Projectile class to spawn */ - UPROPERTY(EditDefaultsOnly, Category=Projectile) - TSubclassOf ProjectileClass; - - /** Sound to play each time we fire */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Gameplay) - USoundBase* FireSound; - - /** AnimMontage to play each time we fire */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay) - UAnimMontage* FireAnimation; - - /** Gun muzzle's offset from the characters location */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Gameplay) - FVector MuzzleOffset; - - /** MappingContext */ - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true")) - class UInputMappingContext* FireMappingContext; - - /** Fire Input Action */ - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true")) - class UInputAction* FireAction; - - /** Sets default values for this component's properties */ - UTP_WeaponComponent(); - - /** Attaches the actor to a FirstPersonCharacter */ - UFUNCTION(BlueprintCallable, Category="Weapon") - void AttachWeapon(AEndlessVendettaCharacter* TargetCharacter); - - /** Make the weapon Fire a Projectile */ - UFUNCTION(BlueprintCallable, Category="Weapon") - void Fire(); - -protected: - /** Ends gameplay for this component. */ - UFUNCTION() - virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; - -private: - /** The Character holding this weapon*/ - AEndlessVendettaCharacter* Character; -};