Reworked weapons and projectiles

This commit is contained in:
2025-12-20 18:35:27 +03:00
parent 2ecc53416a
commit 8227e8bcf3
312 changed files with 2466 additions and 1376 deletions
+18
View File
@@ -0,0 +1,18 @@
@abstract
class_name AbstractDamage
extends Resource
@export_range(1, 250) var value: int = 1
@abstract
func shield_damage_multiplier() -> float
@abstract
func armor_damage_multiplier() -> float
@abstract
func hull_damage_multiplier() -> float
+1
View File
@@ -0,0 +1 @@
uid://bjurq6dl6trdh
+14
View File
@@ -0,0 +1,14 @@
class_name EnergyDamage
extends AbstractDamage
func shield_damage_multiplier() -> float:
return 1.5
func armor_damage_multiplier() -> float:
return 0.5
func hull_damage_multiplier() -> float:
return 1.0
+1
View File
@@ -0,0 +1 @@
uid://c27v705giygv4
+14
View File
@@ -0,0 +1,14 @@
class_name ExplosionDamage
extends AbstractDamage
func shield_damage_multiplier() -> float:
return 0.75
func armor_damage_multiplier() -> float:
return 0.75
func hull_damage_multiplier() -> float:
return 1.25
+1
View File
@@ -0,0 +1 @@
uid://dftb7hg5f06b5
+14
View File
@@ -0,0 +1,14 @@
class_name KineticDamage
extends AbstractDamage
func shield_damage_multiplier() -> float:
return 0.5
func armor_damage_multiplier() -> float:
return 1.5
func hull_damage_multiplier() -> float:
return 1.0
+1
View File
@@ -0,0 +1 @@
uid://bhqvk5cnjg5mv
+17
View File
@@ -0,0 +1,17 @@
class_name GameData
extends Resource
@export var game_seed: String
@export var current_area_index: int
@export var current_stage_index: int
@export var current_sector_index: int
func reset() -> void:
game_seed = ""
current_area_index = 0
current_stage_index = 0
current_sector_index = 0
+1
View File
@@ -0,0 +1 @@
uid://cmqv00wdh1jk5
+14
View File
@@ -0,0 +1,14 @@
class_name EnemyData
extends Resource
@export var seed_value : int = 0
@export var spawn_point : Vector2
@export var spawn_time : float
@export var enemy_scene: String
@export var weapon: WeaponData
@export var weapon_count: int
+1
View File
@@ -0,0 +1 @@
uid://dsg7ml2ebhs3w
+16
View File
@@ -0,0 +1,16 @@
class_name PlayerData
extends Resource
@export var weapons: Array[WeaponData]
@export var hull: int
var is_new_game: bool = false
func reset() -> void:
weapons.clear()
hull = 0
is_new_game = true
+1
View File
@@ -0,0 +1 @@
uid://bc5bi1nr7845m
+18
View File
@@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://dxap3sahurth4"]
[ext_resource type="PackedScene" uid="uid://d3co2xx0th1d0" path="res://game/entities/weapons/cannon/enemy_cannon_weapon.tscn" id="1_2gkq7"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_c34y3"]
[ext_resource type="PackedScene" uid="uid://mpr5kl87nx3f" path="res://game/entities/weapons/cannon/player_cannon_weapon.tscn" id="2_qvf4o"]
[resource]
script = ExtResource("1_c34y3")
id = "cannon"
name = "Cannon"
group = "explosion"
description = "High damage (explosion)
Low firerate
Moderate velocity
High explosion radius"
enemy_scene = ExtResource("1_2gkq7")
player_scene = ExtResource("2_qvf4o")
metadata/_custom_type_script = "uid://870r1efinhqd"
+17
View File
@@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://djelo5gu3ybuf"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_bt4k8"]
[ext_resource type="PackedScene" uid="uid://b0ajhllwm5qux" path="res://game/entities/weapons/gatling/enemy_gatling_weapon.tscn" id="1_punrp"]
[ext_resource type="PackedScene" uid="uid://ca2cjffcrfxkq" path="res://game/entities/weapons/gatling/player_gatling_weapon.tscn" id="2_84glq"]
[resource]
script = ExtResource("1_bt4k8")
id = "gatling"
name = "Gatling"
group = "kinetic"
description = "Low damage (kinetic)
High firerate
Moderate velocity"
enemy_scene = ExtResource("1_punrp")
player_scene = ExtResource("2_84glq")
metadata/_custom_type_script = "uid://870r1efinhqd"
+17
View File
@@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://y7ccba1uqf2d"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_ipxhy"]
[ext_resource type="PackedScene" uid="uid://mjt8xj8k28vi" path="res://game/entities/weapons/laser/enemy_laser_weapon.tscn" id="1_mdqmb"]
[ext_resource type="PackedScene" uid="uid://cargptjtnale2" path="res://game/entities/weapons/laser/player_laser_weapon.tscn" id="2_bmgx0"]
[resource]
script = ExtResource("1_ipxhy")
id = "laser"
name = "Laser"
group = "energy"
description = "Low damage (energetic)
High firerate
Low velocity"
enemy_scene = ExtResource("1_mdqmb")
player_scene = ExtResource("2_bmgx0")
metadata/_custom_type_script = "uid://870r1efinhqd"
+19
View File
@@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://ddgggndifycge"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_tcis2"]
[ext_resource type="PackedScene" uid="uid://b757rcwc231o2" path="res://game/entities/weapons/launcher/enemy_launcher_weapon.tscn" id="1_vypk3"]
[ext_resource type="PackedScene" uid="uid://bmn3cxk1ajydl" path="res://game/entities/weapons/launcher/player_launcher_weapon.tscn" id="2_sdkfu"]
[resource]
script = ExtResource("1_tcis2")
id = "launcher"
name = "Launcher"
group = "explosion"
description = "Moderate damage (explosion)
Moderate firerate
Low velocity
Small explosion radius
Homing"
enemy_scene = ExtResource("1_vypk3")
player_scene = ExtResource("2_sdkfu")
metadata/_custom_type_script = "uid://870r1efinhqd"
+19
View File
@@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://40sshnf6g80k"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_152qt"]
[ext_resource type="PackedScene" uid="uid://bjbfi6vvikk15" path="res://game/entities/weapons/minelayer/enemy_minelayer_weapon.tscn" id="1_bpafq"]
[ext_resource type="PackedScene" uid="uid://dxh4m1upio4fx" path="res://game/entities/weapons/minelayer/player_minelayer_weapon.tscn" id="2_77jvm"]
[resource]
script = ExtResource("1_152qt")
id = "minelayer"
name = "Minelayer"
group = "explosion"
description = "High damage (explosion)
Low firerate
Low velocity
Medium explosion radius
Short range"
enemy_scene = ExtResource("1_bpafq")
player_scene = ExtResource("2_77jvm")
metadata/_custom_type_script = "uid://870r1efinhqd"
+17
View File
@@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://dq0pjpg3slr8s"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_3fasx"]
[ext_resource type="PackedScene" uid="uid://dtl3d7soletdn" path="res://game/entities/weapons/plasma/enemy_plasma_weapon.tscn" id="1_h185p"]
[ext_resource type="PackedScene" uid="uid://dd8juohu1x2xo" path="res://game/entities/weapons/plasma/player_plasma_weapon.tscn" id="2_6cfmm"]
[resource]
script = ExtResource("1_3fasx")
id = "plasma"
name = "Plasma"
group = "energy"
description = "Moderate damage (energetic)
Moderate firerate
Moderate velocity"
enemy_scene = ExtResource("1_h185p")
player_scene = ExtResource("2_6cfmm")
metadata/_custom_type_script = "uid://870r1efinhqd"
+18
View File
@@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://dtpk5apjti4vh"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_6lcn5"]
[ext_resource type="PackedScene" uid="uid://chgf0tdlikwlb" path="res://game/entities/weapons/railgun/enemy_railgun_weapon.tscn" id="1_srmn2"]
[ext_resource type="PackedScene" uid="uid://b745401et1bom" path="res://game/entities/weapons/railgun/player_railgun_weapon.tscn" id="2_hqpda"]
[resource]
script = ExtResource("1_6lcn5")
id = "railgun"
name = "Railgun"
group = "kinetic"
description = "High damage (kinetic)
Low firerate
High velocity
Can pierce enemies"
enemy_scene = ExtResource("1_srmn2")
player_scene = ExtResource("2_hqpda")
metadata/_custom_type_script = "uid://870r1efinhqd"
+19
View File
@@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://d1kc2gvye2f28"]
[ext_resource type="PackedScene" uid="uid://df816hasxkglk" path="res://game/entities/weapons/shrapnel/enemy_shrapnel_weapon.tscn" id="1_260ps"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_xds2o"]
[ext_resource type="PackedScene" uid="uid://cvtwks2ooetxp" path="res://game/entities/weapons/shrapnel/player_shrapnel_weapon.tscn" id="2_nj3we"]
[resource]
script = ExtResource("1_xds2o")
id = "shrapnel"
name = "Shrapnel"
group = "kinetic"
description = "High damage (kinetic)
Moderate firerate
Moderate velocity
Short range
Multiple projectiles"
enemy_scene = ExtResource("1_260ps")
player_scene = ExtResource("2_nj3we")
metadata/_custom_type_script = "uid://870r1efinhqd"
+19
View File
@@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="WeaponData" load_steps=4 format=3 uid="uid://c7tim0uie3m35"]
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/data/weapons/weapon_data.gd" id="1_a16gw"]
[ext_resource type="PackedScene" uid="uid://dqgybquvuw0v6" path="res://game/entities/weapons/tesla/enemy_tesla_weapon.tscn" id="1_iwabo"]
[ext_resource type="PackedScene" uid="uid://u6hpohk5i3eu" path="res://game/entities/weapons/tesla/player_tesla_weapon.tscn" id="2_kqe35"]
[resource]
script = ExtResource("1_a16gw")
id = "tesla"
name = "Tesla"
group = "energy"
description = "Moderate damage (energetic)
Low firerate
High velocity
Hits nearest target
Can pierce enemies"
enemy_scene = ExtResource("1_iwabo")
player_scene = ExtResource("2_kqe35")
metadata/_custom_type_script = "uid://870r1efinhqd"
+12
View File
@@ -0,0 +1,12 @@
class_name WeaponData
extends Resource
@export var id: String
@export var name: String
@export var group: String
@export_multiline var description: String
@export var enemy_scene: PackedScene
@export var player_scene: PackedScene
+1
View File
@@ -0,0 +1 @@
uid://870r1efinhqd
+8
View File
@@ -0,0 +1,8 @@
class_name AreaData
extends Resource
@export var stages : Array[StageData] = []
@export var passages : Array[PassageData] = []
@export var seed_value : int = 0
+1
View File
@@ -0,0 +1 @@
uid://chsdac455jkm4
+33
View File
@@ -0,0 +1,33 @@
class_name PassageData
extends Resource
signal activity_changed(is_active: bool)
enum PassageType {
Minus45Grad,
Minus26Grad,
ZeroGrad,
Plus26Grad,
Plus45Grad,
}
@export var previous_sector : SectorData
@export var next_sector : SectorData
@export var enemies : Array[EnemyData] = []
@export var seed_value : int = 0
@export var length : float = 0
@export var type : PassageType = PassageType.ZeroGrad
var is_active: bool = true:
set(value):
if is_active == value: return
is_active = value
activity_changed.emit(is_active)
+1
View File
@@ -0,0 +1 @@
uid://bvqvn7slf5f82
+34
View File
@@ -0,0 +1,34 @@
class_name SectorData
extends Resource
signal activity_changed(is_active: bool)
enum SectorType {
ShopSector,
RepairSector,
DebrisSector,
StartSector,
BossSector,
}
@export var previous_passages : Array[PassageData] = []
@export var next_passages : Array[PassageData] = []
@export var seed_value : int = 0
@export var type : SectorType = SectorType.DebrisSector
@export var sector_to_left: SectorData = null
@export var sector_to_right: SectorData = null
@export var sector_above: SectorData = null
@export var sector_below: SectorData = null
var is_active: bool = true:
set(value):
if is_active == value: return
is_active = value
activity_changed.emit(is_active)
+1
View File
@@ -0,0 +1 @@
uid://ru80bu5nt6rs
+7
View File
@@ -0,0 +1,7 @@
class_name StageData
extends Resource
@export var sectors : Array[SectorData] = []
@export var seed_value : int = 0
+1
View File
@@ -0,0 +1 @@
uid://donl4fqb825et
+9
View File
@@ -0,0 +1,9 @@
class_name WorldData
extends Resource
@export var areas : Array[AreaData] = []
@export var seed_value : int = 0
@export var player_start_weapons: Array[WeaponData]
+1
View File
@@ -0,0 +1 @@
uid://1hanx5eudexx