Advertisement
Guest User

Weapon Header

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