Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include "PWNWeapon.h"
- #include "PWNDamageType_Melee.h"
- #include "PWNWeapon_Melee.generated.h"
- USTRUCT()
- struct FTraceLocation
- {
- GENERATED_USTRUCT_BODY()
- UPROPERTY()
- FVector LocFrom;
- UPROPERTY()
- FVector LocTo;
- float AnimPos;
- };
- /**
- *
- */
- UCLASS()
- class APWNWeapon_Melee : public APWNWeapon
- {
- GENERATED_UCLASS_BODY()
- void Tick(float DeltaTime) override;
- void AttackStart(const TEnumAsByte<EMovementDirectionEnum::EMovementDirection> attackDirection = EMovementDirectionEnum::MOVEMENTDIRECTION_NoDirection) override;
- void AttackStop() override;
- /*********************/
- /*** Serialisation ***/
- /*********************/
- UPWNSerialiser* Serialise();
- void DeSerialise(UPWNSerialiser* mySavedData);
- /*********************/
- protected:
- void UpdateAttackDirectionAnimset() override;
- void SetAssetReferences_Specific() override;
- void SpawnAssets_Specific() override;
- void SetAssets_Specific() override;
- void ArmState_PreAttacking_Start(float const startPosPct = 0.0f) override;
- void ArmState_Attacking_Start(float const startPosPct = 0.0f) override;
- void ArmState_PostAttacking_Start(float const startPosPct = 0.0f) override;
- void ArmState_AttackReturning_Start(float const startPosPct = 0.0f) override;
- void ArmState_AttackRebounding_Start(float const startPosPct = 0.0f) override;
- // Tracing
- int NumTracesDone; // Debug
- bool IsAttackTracing;
- FCollisionQueryParams TraceSweepParameters;
- FCollisionObjectQueryParams TraceSweepQueryPararameters;
- FPointDamageEvent DamageEvent;
- FTraceLocation TraceLocCurr;
- FTraceLocation TraceLocPrev;
- FMontageDetails TraceMontageCurrDetails;
- FMontageDetails TraceMontagePrevDetails;
- TArray<FTraceLocation> GetSubTraceLocsOrthogonal(FTraceLocation prevLoc, FTraceLocation currLoc, uint32 numIntermTraces);
- TArray<FTraceLocation> GetSubTraceLocsParallel(FTraceLocation prevLoc, FTraceLocation currLoc, uint32 numIntermTraces);
- void TraceAttack();
- float AttackTraceSweepRadius;
- FTraceLocation GetTraceLocation();
- void ProcessAttackTick(float prevAnimPosition, float currAnimPosition);
- TArray<FString> ActorsHitInThisStrike;
- void CleanupAfterStrike();
- // Tracing
- UPROPERTY()
- FName TraceSocketNameBase;
- UPROPERTY()
- FName TraceSocketNameTip;
- TArray<FTraceLocation> TraceLocs;
- bool CheckIfActorHasBeenHit(AActor* hitActor);
- // Directional Attacks
- // Refs
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_NoDirection_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_ForwardCenter_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_ForwardRight_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_CenterRight_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_BackRight_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_BackCenter_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_BackLeft_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_CenterLeft_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Left_ForwardLeft_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_NoDirection_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_ForwardCenter_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_ForwardRight_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_CenterRight_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_BackRight_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_BackCenter_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_BackLeft_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_CenterLeft_BP;
- UPROPERTY()
- FString ConstRef_ArmAnimSet_Attacking_Right_ForwardLeft_BP;
- // Animsets
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_NoDirection;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_ForwardCenter;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_ForwardRight;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_CenterRight;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_BackRight;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_BackCenter;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_BackLeft;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_CenterLeft;
- UPROPERTY()
- APWNAnimSet_Attacking* ArmAnimSet_Attacking_ForwardLeft;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement