fuzzyworld

godot-shooter / files / weapons / Weapons.gd

Weapons.gd

1.8 KB · history · blame

1# Note: `tool` is optional but without it there are no error reporting in the editor
2tool
3
4const Constants = preload("res://utils/Constants.gd")
5
6static func create_non_gun() -> Weapon:
7 var weapon = Weapon.new()
8 weapon.shooting_range = 0
9 weapon.particle_lifetime_secs = 0
10 weapon.cooldown_seconds = 0
11 weapon.damage_amount = 10
12 weapon.name = ""
13 weapon.ammo = 0
14 weapon.reload_size = 0
15 return weapon
16
17static func create_basic_gun() -> Weapon:
18 var weapon = Weapon.new()
19 weapon.particle = preload("res://weapons/Bullet.tscn")
20 weapon.shooting_range = 450
21 weapon.particle_lifetime_secs = 1
22 weapon.particle_speed = Constants.SPEED * 5
23 weapon.cooldown_seconds = 1
24 weapon.damage_amount = 10
25 weapon.ammo = INF
26 weapon.reload_size = 1
27 return weapon
28
29static func create_basic_enemy_gun() -> Weapon:
30 var weapon = Weapon.new()
31 weapon.particle = preload("res://weapons/Bullet.tscn")
32 weapon.shooting_range = 300
33 weapon.particle_lifetime_secs = .75
34 weapon.particle_speed = Constants.SPEED * 5
35 weapon.cooldown_seconds = 1
36 weapon.damage_amount = 1
37 weapon.ammo = INF
38# weapon.reload_size = 1
39 return weapon
40
41static func create_smg_gun() -> Weapon:
42 var weapon = Weapon.new()
43 weapon.particle = preload("res://weapons/Bullet.tscn")
44 weapon.shooting_range = 400
45 weapon.particle_lifetime_secs = 1
46 weapon.particle_speed = Constants.SPEED * 5
47 weapon.cooldown_seconds = .1
48 weapon.ammo = 50
49 weapon.name = "SMG"
50 weapon.damage_amount = 1
51 weapon.reload_size = 50
52 return weapon
53
54static func create_rocket_gun() -> Weapon:
55 var weapon = Weapon.new()
56 weapon.particle = preload("res://weapons/Rocket.tscn")
57 weapon.shooting_range = 300
58 weapon.particle_lifetime_secs = 2
59 weapon.particle_speed = Constants.SPEED * 3
60 weapon.cooldown_seconds = .1
61 weapon.ammo = 100
62 weapon.name = "Rocket"
63 weapon.damage_amount = 2
64 weapon.reload_size = 100
65 return weapon