@@ -5,23 +5,31 @@ export (float) var fire_rate_multiplyer = 3.0
5
5
var reload_time_delta = 0
6
6
var fire_rate_delta = 0
7
7
8
- var _weapon :Weapon = null
8
+ var weapon :Weapon = null
9
+
10
+ func _ready () -> void :
11
+ if is_instance_valid (player .weapon ):
12
+ player .weapon .connect ("weapon_switch" ,self ,"_on_weapon_switch" )
9
13
10
14
func add_effect ():
11
15
if player .weapon .current_weapon is Weapon :
12
16
13
- _weapon = player .weapon .current_weapon
14
- _weapon .ammo_infinity_stack += 1
17
+ weapon = player .weapon .current_weapon
18
+ weapon .ammo_infinity_stack += 1
15
19
16
20
# Increase fire rate
17
- var new_fire_rate = int (_weapon .fire_rate * fire_rate_multiplyer )
18
- fire_rate_delta = new_fire_rate - _weapon .fire_rate
19
- _weapon .fire_rate_delta += fire_rate_delta
20
- _weapon .set_fire_rate (new_fire_rate )
21
+ var new_fire_rate = int (weapon .fire_rate * fire_rate_multiplyer )
22
+ fire_rate_delta = new_fire_rate - weapon .fire_rate
23
+ weapon .fire_rate_delta += fire_rate_delta
24
+ weapon .set_fire_rate (new_fire_rate )
21
25
22
26
func remove_effect ():
23
- if is_instance_valid (_weapon ):
24
- _weapon .ammo_infinity_stack -= 1
25
- _weapon .fire_rate_delta -= fire_rate_delta
26
- _weapon .set_fire_rate (_weapon .fire_rate - fire_rate_delta )
27
+ if is_instance_valid (weapon ):
28
+ weapon .ammo_infinity_stack -= 1
29
+ weapon .fire_rate_delta -= fire_rate_delta
30
+ weapon .set_fire_rate (weapon .fire_rate - fire_rate_delta )
31
+
32
+ func _on_weapon_switch (_weapon )-> void :
33
+ if is_instance_valid (player .weapon ):
34
+ add_effect ()
27
35
0 commit comments