godot-shooter / files / weapons / Weapons.gd
Weapons.gd
bb5e0222 2023-11-08 Pavel Safronov | 1 | # Note: `tool` is optional but without it there are no error reporting in the editor |
5e4e3a9c 2023-11-08 Pavel Safronov | 2 | tool |
| 3 | ||
5320761c 2023-11-17 Pavel Safronov | 4 | const Constants = preload("res://utils/Constants.gd") |
| 5 | ||
a5758228 2023-11-30 Pavel Safronov | 6 | static 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 | ||
3fcb817e 2023-11-10 Pavel Safronov | 17 | static func create_basic_gun() -> Weapon: |
4ac09ada 2023-11-09 Pavel Safronov | 18 | var weapon = Weapon.new() |
16938031 2023-11-17 Pavel Safronov | 19 | weapon.particle = preload("res://weapons/Bullet.tscn") |
56eea835 2023-12-02 Pavel Safronov | 20 | weapon.shooting_range = 450 |
3fcb817e 2023-11-10 Pavel Safronov | 21 | weapon.particle_lifetime_secs = 1 |
5320761c 2023-11-17 Pavel Safronov | 22 | weapon.particle_speed = Constants.SPEED * 5 |
4ac09ada 2023-11-09 Pavel Safronov | 23 | weapon.cooldown_seconds = 1 |
3fcb817e 2023-11-10 Pavel Safronov | 24 | weapon.damage_amount = 10 |
c2827327 2023-11-10 Pavel Safronov | 25 | weapon.ammo = INF |
3fcb817e 2023-11-10 Pavel Safronov | 26 | weapon.reload_size = 1 |
5e4e3a9c 2023-11-08 Pavel Safronov | 27 | return weapon |
bd0825dd 2023-11-09 Pavel Safronov | 28 | |
0f8974b8 2023-12-01 Pavel Safronov | 29 | static func create_basic_enemy_gun() -> Weapon: |
| 30 | var weapon = Weapon.new() | |
| 31 | weapon.particle = preload("res://weapons/Bullet.tscn") | |
a45831a2 2023-12-01 Pavel Safronov | 32 | weapon.shooting_range = 300 |
c8aa3c68 2023-12-01 Pavel Safronov | 33 | weapon.particle_lifetime_secs = .75 |
0f8974b8 2023-12-01 Pavel Safronov | 34 | weapon.particle_speed = Constants.SPEED * 5 |
| 35 | weapon.cooldown_seconds = 1 | |
| 36 | weapon.damage_amount = 1 | |
| 37 | weapon.ammo = INF | |
c8aa3c68 2023-12-01 Pavel Safronov | 38 | # weapon.reload_size = 1 |
0f8974b8 2023-12-01 Pavel Safronov | 39 | return weapon |
| 40 | ||
023ec2fb 2023-11-29 Pavel Safronov | 41 | static func create_smg_gun() -> Weapon: |
3fcb817e 2023-11-10 Pavel Safronov | 42 | var weapon = Weapon.new() |
16938031 2023-11-17 Pavel Safronov | 43 | weapon.particle = preload("res://weapons/Bullet.tscn") |
5320761c 2023-11-17 Pavel Safronov | 44 | weapon.shooting_range = 400 |
3fcb817e 2023-11-10 Pavel Safronov | 45 | weapon.particle_lifetime_secs = 1 |
5320761c 2023-11-17 Pavel Safronov | 46 | weapon.particle_speed = Constants.SPEED * 5 |
3fcb817e 2023-11-10 Pavel Safronov | 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 | ||
| 54 | static func create_rocket_gun() -> Weapon: | |
4ac09ada 2023-11-09 Pavel Safronov | 55 | var weapon = Weapon.new() |
16938031 2023-11-17 Pavel Safronov | 56 | weapon.particle = preload("res://weapons/Rocket.tscn") |
c8aa3c68 2023-12-01 Pavel Safronov | 57 | weapon.shooting_range = 300 |
ce0d0f72 2023-11-11 Pavel Safronov | 58 | weapon.particle_lifetime_secs = 2 |
c8aa3c68 2023-12-01 Pavel Safronov | 59 | weapon.particle_speed = Constants.SPEED * 3 |
| 60 | weapon.cooldown_seconds = .1 | |
| 61 | weapon.ammo = 100 | |
c2827327 2023-11-10 Pavel Safronov | 62 | weapon.name = "Rocket" |
c8aa3c68 2023-12-01 Pavel Safronov | 63 | weapon.damage_amount = 2 |
| 64 | weapon.reload_size = 100 | |
bd0825dd 2023-11-09 Pavel Safronov | 65 | return weapon |