Guest User

Weapon Header

a guest
Feb 15th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include "GameFramework/Actor.h"
  4. #include "AuroraBaseWeapon.generated.h"
  5. #define Trace_Weapon ECC_GameTraceChannel2
  6.  
  7. UENUM(BlueprintType)
  8. namespace EWeaponProjectile
  9. {
  10.     enum ProjectileType
  11.     {
  12.         EBullet         UMETA(DisplayName = "Bullet"),
  13.         ESpread         UMETA(DisplayName = "Spread"),
  14.     };
  15. }
  16.  
  17. UCLASS(Blueprintable)
  18. class ENTERAURORA_API AAuroraBaseWeapon : public AActor
  19. {
  20.     GENERATED_BODY()
  21.  
  22.         /* Weapon Mesh */
  23.         UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Weapon", meta = (AllowPrivateAccess = "true"))
  24.     class USkeletalMeshComponent* weaponMesh;
  25.  
  26. public:
  27.     /*  Constructor */
  28.     AAuroraBaseWeapon(const FObjectInitializer& ObjectInitializer);
  29.  
  30.     // Called when the game starts or when spawned
  31.     virtual void BeginPlay() override;
  32.  
  33.     // Called every frame
  34.     virtual void Tick(float DeltaSeconds) override;
  35.  
  36.     /* Weapon Properties */
  37.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  38.         FName weaponName;
  39.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  40.         float fireRate;
  41.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  42.         TEnumAsByte<EWeaponProjectile::ProjectileType> projectileType;
  43.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  44.         FName muzzleSocket;
  45.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  46.         float currentCryoLevel;
  47.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  48.         float cryoMultiplier;
  49.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  50.         float maxCryoLevel;
  51.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  52.         bool bExhausted;
  53.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  54.         float weaponRange;
  55.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  56.         float weaponSpread;
  57.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  58.         float weaponDamage;
  59.     UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Weapon")
  60.         TSubclassOf<UDamageType> damageType;
  61.  
  62.     /* Audio Handling */
  63.     UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Audio Component")
  64.     class UAudioComponent* audioSource;
  65.  
  66.     /* Timers */
  67.     FTimerHandle fireHandler;
  68.     FTimerHandle exhaustedHandler;
  69.  
  70.     /* Weapon Functions */
  71.     UFUNCTION()
  72.         void OnWeaponFireStart();
  73.     UFUNCTION()
  74.         void OnWeaponFireStop();
  75.     UFUNCTION()
  76.         void Instant_Fire();
  77.     void CheckCryoLevel();
  78.     void ExhaustedWaitTimer();
  79.  
  80. protected:
  81.     FHitResult WeaponTrace(const FVector &TraceFrom, const FVector &TraceTo) const;
  82.     void ProcessInstantHit(const FHitResult &Impact, const FVector &Origin, const FVector &ShootDir, int32 RandomSeed, float ReticleSpread);
  83. };
Add Comment
Please, Sign In to add comment