-
Notifications
You must be signed in to change notification settings - Fork 0
/
Weapon.h
95 lines (55 loc) · 1.5 KB
/
Weapon.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#pragma once
#include "GameFramework/Actor.h"
#include "Usable.h"
#include "Weapon.generated.h"
/**
*
*/
UCLASS(abstract)
class AWeapon : public AActor, public IUsable
{
GENERATED_UCLASS_BODY()
public:
float getSpreadPercentage();
void reload();
UFUNCTION(BlueprintCallable, Category = Network)
bool getFiring();
void setSpreadPercentage(float x);
void setSpreadPercentageNull();
void setSpreadPercentageOne();
virtual void simulateFire(FVector EndPoint);
protected:
float spreadPercentage;
float FireRate;
UPROPERTY(EditAnywhere, Blueprintreadwrite, Category = Projectile)
float wDamage;
int32 clipSize;
float weaponRange;
bool brapid;
float maxXSpread;
float maxYSpread;
float baseXSpread;
float baseYSpread;
FVector weaponMinSpread;
FVector weaponMaxSpread;
FVector weaponSpread;
int32 mag;
public:
virtual void fire(AActor *hero);
UFUNCTION(BlueprintCallable, Category = Attr)
FName getWName();
UFUNCTION(BlueprintCallable, Category = Attr)
int32 getAmmo();
FName WName;
UPROPERTY(Replicated, EditAnywhere, BlueprintReadWrite, Category = Attributes)
int32 bullets;
UPROPERTY(Replicated, EditAnywhere, BlueprintReadWrite, Category = Attributes)
bool firing;
bool isWeapon();
void setFiring(bool fstate);
UPROPERTY(EditDefaultsOnly, Category = Projectile)
TSubclassOf<class ABullet> ProjectileClass;
/** Gun muzzle's offset from the camera location */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay)
FVector MuzzleOffset;
};