godot-shooter / asteroids / files / weapons / Weapons.gd
Branch asteroids · default branch · all branches
Weapons.gd
| 1 | # Note: `tool` is optional but without it there are no error reporting in the editor |
| 2 | tool |
| 3 | |
| 4 | const Constants = preload("res://utils/Constants.gd") |
| 5 | |
| 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 | |
| 17 | static 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 | |
| 29 | static 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 | |
| 41 | static 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 | |
| 54 | static 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 |