Fixed weapons scenes inheritance

This commit is contained in:
2025-11-08 02:23:42 +03:00
parent 32fa3dca57
commit 8f7e7aa78f
40 changed files with 277 additions and 412 deletions
+3 -3
View File
@@ -10,6 +10,6 @@ script = ExtResource("1_3a8sv")
collision_layer = 2
collision_mask = 21
size = Vector2(48, 32)
acceleration = 46
deceleration = 23
max_speed = 46
acceleration = 92
deceleration = 46
max_speed = 92
+2 -1
View File
@@ -17,6 +17,7 @@ extends CharacterBody2D
@export var deceleration : int
@export var max_speed : int
@onready var weapons : Array[AbstractWeapon]:
set(value):
pass
@@ -73,7 +74,7 @@ func _get_new_speed(accel: float, decel: float, current_speed: float) -> float:
func shoot(weapon: Node) -> void:
if weapon in weapons:
weapon.shoot()
weapon.shoot(velocity)
func reload(weapon: Node) -> void:
+16 -51
View File
@@ -1,83 +1,45 @@
class_name AbstractProjectile
extends CharacterBody2D
extends Area2D
const PLAYER_LAYER = 2
const ENEMY_LAYER = 4
const PLAYER_PROJECTILE_LAYER = 8
const ENEMY_PROJECTILE_LAYER = 16
const PROJECTILE_BORDER_LAYER = 32
signal destroyed
@export_range(0, 250) var damage : int
@export_range(0, 1000) var speed : int
@export_range(0, 10) var piercing: int
@export var damage : int
@export var speed : int
@export var direction : Vector2
@export var acceleration : int
@export var max_distance : int
@export var max_livetime : int
@export var piercing: int
var direction : Vector2
var ship_velocity: Vector2
@export var collide_player: bool:
var collide_player: bool:
set(value):
collide_player = value
_apply_collision_mask()
get:
return collide_player
@export var collide_enemies: bool:
var collide_enemies: bool:
set(value):
collide_enemies = value
_apply_collision_mask()
get:
return collide_enemies
var _traveled_distance: float
var _livetime: float
var _velocity: Vector2
func _ready() -> void:
velocity = direction.normalized() * speed
_velocity = direction.normalized() * speed + ship_velocity
_apply_collision_mask()
func _physics_process(_delta: float) -> void:
var was_collided := move_and_slide()
if was_collided:
destroyed.emit()
queue_free()
func _physics_process(delta: float) -> void:
position += _velocity * delta
func process_acceleration(delta: float) -> void:
var current_acceleration := acceleration * delta
if current_acceleration > 0:
velocity += velocity.normalized() * current_acceleration
elif current_acceleration < 0:
if velocity.length() > current_acceleration:
velocity += velocity.normalized() * current_acceleration
else:
velocity = Vector2.ZERO
func process_distance(delta: float) -> void:
_traveled_distance += velocity.length() * delta
if max_distance > 0 and _traveled_distance > max_distance:
destroyed.emit()
queue_free()
func process_livetime(delta: float) -> void:
_livetime += delta
if _livetime > max_livetime:
destroyed.emit()
queue_free()
func _apply_collision_mask() -> void:
collision_mask |= PROJECTILE_BORDER_LAYER
if collide_player:
collision_layer |= ENEMY_PROJECTILE_LAYER
collision_mask |= PLAYER_LAYER
@@ -91,4 +53,7 @@ func _apply_collision_mask() -> void:
else:
collision_layer &= ~PLAYER_PROJECTILE_LAYER
collision_mask &= ~ENEMY_LAYER
func _on_screen_exited() -> void:
queue_free()
@@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://ybkqaynvpcjm"]
[ext_resource type="Script" uid="uid://ctmjb3nkxrepu" path="res://game/entities/weapons/abstract_projectile.gd" id="1_4b2nh"]
[sub_resource type="CircleShape2D" id="CircleShape2D_4b2nh"]
[node name="AbstrastProjectile" type="Area2D"]
script = ExtResource("1_4b2nh")
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_4b2nh")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_screen_exited"]
+12 -7
View File
@@ -5,14 +5,16 @@ extends Node2D
enum Belonging { PLAYER, ENEMY }
@export var belonging: Belonging
@export_range(1, 100) var bullet_per_shot : int = 1
@export_range(0, 360) var sector_angle : int
@export var bullet_per_shot : int = 1
@export var sector_angle : int = 0
@export var Projectile : PackedScene
@export var reloaders : Array[AbstractReloader]
var belonging: Belonging
var _reloaders : Array[AbstractReloader]
@@ -26,28 +28,31 @@ func _physics_process(delta: float) -> void:
reloader.process(delta)
func shoot() -> void:
func shoot(ship_velocity: Vector2) -> void:
if not _can_shoot(): return
for i in range(bullet_per_shot):
var projectile := _create_projectile()
var projectile := _create_projectile(ship_velocity)
get_tree().current_scene.add_child(projectile)
for reloader in _reloaders:
reloader.shoot()
func _create_projectile() -> Node:
var projectile := Projectile.instantiate()
func _create_projectile(ship_velocity: Vector2) -> Node:
var projectile : AbstractProjectile = Projectile.instantiate()
projectile.global_position = global_position
projectile.ship_velocity = ship_velocity
match belonging:
Belonging.PLAYER:
projectile.direction = Vector2.RIGHT
projectile.collide_enemies = true
projectile.rotation_degrees = 90
Belonging.ENEMY:
projectile.direction = Vector2.LEFT
projectile.collide_player = true
projectile.rotation_degrees = -90
if sector_angle > 0:
var sector_rad := deg_to_rad(sector_angle)
+7 -18
View File
@@ -1,23 +1,12 @@
[gd_scene load_steps=8 format=3 uid="uid://1o2ta17yc5bp"]
[gd_scene load_steps=3 format=3 uid="uid://1o2ta17yc5bp"]
[ext_resource type="Script" uid="uid://dpqxs8hlql2o0" path="res://game/entities/weapons/abstract_weapon.gd" id="1_x30ps"]
[ext_resource type="PackedScene" uid="uid://cnoiv8hdgossf" path="res://game/entities/weapons/gatling/gatling_projectile.tscn" id="2_7kmqt"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_x30ps"]
[ext_resource type="Script" uid="uid://d2gfhnlbqxsoq" path="res://game/reloaders/magazine_reloader.gd" id="4_7kmqt"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="5_jj42u"]
[sub_resource type="Resource" id="Resource_xi513"]
script = ExtResource("4_7kmqt")
magazine_size = 5
reload_time = 2
metadata/_custom_type_script = "uid://d2gfhnlbqxsoq"
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_dra6h"]
size = Vector2(10, 7)
[sub_resource type="Resource" id="Resource_kq1js"]
script = ExtResource("5_jj42u")
firerate = 120
metadata/_custom_type_script = "uid://b255rb32vc6co"
[node name="Weapon" type="Node2D"]
[node name="AbstractWeapon" type="Node2D"]
script = ExtResource("1_x30ps")
Projectile = ExtResource("2_7kmqt")
reloaders = Array[ExtResource("3_x30ps")]([SubResource("Resource_xi513"), SubResource("Resource_kq1js")])
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("PlaceholderTexture2D_dra6h")
-11
View File
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+8 -10
View File
@@ -1,20 +1,18 @@
[gd_scene load_steps=6 format=3 uid="uid://3isnru3m6f84"]
[gd_scene load_steps=7 format=3 uid="uid://bccaoirwdkp7n"]
[ext_resource type="Script" uid="uid://db24dm76b1am7" path="res://game/entities/weapons/cannon/cannon.gd" id="1_xnbws"]
[ext_resource type="PackedScene" uid="uid://c6b8qbeaqpni8" path="res://game/entities/weapons/cannon/cannon_projectile.tscn" id="2_2bjeu"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_xnbws"]
[ext_resource type="PackedScene" uid="uid://cgi7wd84kjnyw" path="res://game/entities/weapons/cannon/cannon_projectile.tscn" id="2_2bjeu"]
[ext_resource type="Script" uid="uid://db24dm76b1am7" path="res://game/entities/weapons/cannon/cannon.gd" id="2_ew5um"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_7e2aj"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_bv8g1"]
[sub_resource type="Resource" id="Resource_xyug2"]
[sub_resource type="Resource" id="Resource_7e2aj"]
script = ExtResource("4_bv8g1")
firerate = 50
metadata/_custom_type_script = "uid://b255rb32vc6co"
[node name="Cannon" type="Node2D"]
script = ExtResource("1_xnbws")
[node name="Cannon" instance=ExtResource("1_xnbws")]
script = ExtResource("2_ew5um")
sector_angle = 1
Projectile = ExtResource("2_2bjeu")
reloaders = Array[ExtResource("3_7e2aj")]([SubResource("Resource_xyug2")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_7e2aj")]([SubResource("Resource_7e2aj")])
@@ -1,21 +1,21 @@
[gd_scene load_steps=4 format=3 uid="uid://c6b8qbeaqpni8"]
[gd_scene load_steps=5 format=3 uid="uid://cgi7wd84kjnyw"]
[ext_resource type="Script" uid="uid://dfdh0o88as054" path="res://game/entities/weapons/cannon/cannon_projectile.gd" id="1_20qwt"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_20qwt"]
[ext_resource type="Script" uid="uid://dfdh0o88as054" path="res://game/entities/weapons/cannon/cannon_projectile.gd" id="2_x3axw"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_20qwt"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_x3axw"]
size = Vector2(6, 6)
[sub_resource type="CircleShape2D" id="CircleShape2D_20qwt"]
[sub_resource type="CircleShape2D" id="CircleShape2D_lb11p"]
radius = 2.0
[node name="CannonProjectile" type="CharacterBody2D"]
script = ExtResource("1_20qwt")
[node name="CannonProjectile" instance=ExtResource("1_20qwt")]
script = ExtResource("2_x3axw")
damage = 50
speed = 600
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("PlaceholderTexture2D_20qwt")
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_x3axw")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_20qwt")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_lb11p")
-11
View File
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+8 -10
View File
@@ -1,28 +1,26 @@
[gd_scene load_steps=8 format=3 uid="uid://c4vvw741175tj"]
[gd_scene load_steps=9 format=3 uid="uid://c4mlppn5i55bp"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_gblx7"]
[ext_resource type="Script" uid="uid://c1bsvmj7xhnxe" path="res://game/entities/weapons/gatling/gatling.gd" id="1_kg6du"]
[ext_resource type="PackedScene" uid="uid://cnoiv8hdgossf" path="res://game/entities/weapons/gatling/gatling_projectile.tscn" id="2_ylc0n"]
[ext_resource type="PackedScene" uid="uid://yfvluap3uy1r" path="res://game/entities/weapons/gatling/gatling_projectile.tscn" id="2_ylc0n"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_uucc4"]
[ext_resource type="Script" uid="uid://oslebeau3f4b" path="res://game/reloaders/gatling_reloader.gd" id="4_g81jq"]
[ext_resource type="Script" uid="uid://d2gfhnlbqxsoq" path="res://game/reloaders/magazine_reloader.gd" id="5_tjfs0"]
[sub_resource type="Resource" id="Resource_kifyy"]
[sub_resource type="Resource" id="Resource_kg6du"]
script = ExtResource("4_g81jq")
firerate = 600
spin_out_time = 3
metadata/_custom_type_script = "uid://oslebeau3f4b"
[sub_resource type="Resource" id="Resource_6px3v"]
[sub_resource type="Resource" id="Resource_ylc0n"]
script = ExtResource("5_tjfs0")
magazine_size = 300
magazine_size = 150
reload_time = 2
metadata/_custom_type_script = "uid://d2gfhnlbqxsoq"
[node name="GatlingGun" type="Node2D"]
[node name="Gatling" instance=ExtResource("1_gblx7")]
script = ExtResource("1_kg6du")
sector_angle = 5
Projectile = ExtResource("2_ylc0n")
reloaders = Array[ExtResource("3_uucc4")]([SubResource("Resource_kifyy"), SubResource("Resource_6px3v")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_uucc4")]([SubResource("Resource_kg6du"), SubResource("Resource_ylc0n")])
@@ -1,24 +1,21 @@
[gd_scene load_steps=4 format=3 uid="uid://cnoiv8hdgossf"]
[gd_scene load_steps=5 format=3 uid="uid://yfvluap3uy1r"]
[ext_resource type="Script" uid="uid://rtsf1n0djorp" path="res://game/entities/weapons/gatling/gatling_projectile.gd" id="1_xq7oi"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_3tgt7"]
[ext_resource type="Script" uid="uid://rtsf1n0djorp" path="res://game/entities/weapons/gatling/gatling_projectile.gd" id="2_hbgoq"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_xq7oi"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_hbgoq"]
size = Vector2(4, 4)
[sub_resource type="CircleShape2D" id="CircleShape2D_xq7oi"]
[sub_resource type="CircleShape2D" id="CircleShape2D_2tbeq"]
radius = 1.0
[node name="GatlingProjectile" type="CharacterBody2D"]
collision_layer = 0
collision_mask = 0
motion_mode = 1
script = ExtResource("1_xq7oi")
[node name="GatlingProjectile" instance=ExtResource("1_3tgt7")]
script = ExtResource("2_hbgoq")
damage = 6
speed = 600
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("PlaceholderTexture2D_xq7oi")
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_hbgoq")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_xq7oi")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_2tbeq")
-11
View File
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+12 -13
View File
@@ -1,27 +1,26 @@
[gd_scene load_steps=8 format=3 uid="uid://c67jhwocoevkv"]
[gd_scene load_steps=9 format=3 uid="uid://def1alrel4ioo"]
[ext_resource type="Script" uid="uid://bxr150at8ul2a" path="res://game/entities/weapons/laser/laser.gd" id="1_pki4x"]
[ext_resource type="PackedScene" uid="uid://d31js2vi7dlit" path="res://game/entities/weapons/laser/laser_projectile.tscn" id="2_fecho"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_pki4x"]
[ext_resource type="PackedScene" uid="uid://cmni0xrbbfcy5" path="res://game/entities/weapons/laser/laser_projectile.tscn" id="2_fecho"]
[ext_resource type="Script" uid="uid://bxr150at8ul2a" path="res://game/entities/weapons/laser/laser.gd" id="2_lbdvb"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_c1wcw"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_cl0br"]
[ext_resource type="Script" uid="uid://dxk56xdihfw4m" path="res://game/reloaders/energy_reloader.gd" id="5_l3tgo"]
[sub_resource type="Resource" id="Resource_77vow"]
[sub_resource type="Resource" id="Resource_fecho"]
script = ExtResource("4_cl0br")
firerate = 3000
firerate = 1500
metadata/_custom_type_script = "uid://b255rb32vc6co"
[sub_resource type="Resource" id="Resource_nwpae"]
[sub_resource type="Resource" id="Resource_c1wcw"]
script = ExtResource("5_l3tgo")
heat_per_shot = 2
heat_per_shot = 4
heat_capacity = 1000
cooling_down_rate = 2500
metadata/_custom_type_script = "uid://dxk56xdihfw4m"
[node name="Laser" type="Node2D"]
script = ExtResource("1_pki4x")
[node name="Laser" instance=ExtResource("1_pki4x")]
script = ExtResource("2_lbdvb")
bullet_per_shot = 2
Projectile = ExtResource("2_fecho")
reloaders = Array[ExtResource("3_c1wcw")]([SubResource("Resource_77vow"), SubResource("Resource_nwpae")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_c1wcw")]([SubResource("Resource_fecho"), SubResource("Resource_c1wcw")])
@@ -1,22 +1,21 @@
[gd_scene load_steps=4 format=3 uid="uid://d31js2vi7dlit"]
[gd_scene load_steps=5 format=3 uid="uid://cmni0xrbbfcy5"]
[ext_resource type="Script" uid="uid://bdxq4aflhc8vd" path="res://game/entities/weapons/laser/laser_projectile.gd" id="1_3a8fg"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_3a8fg"]
[ext_resource type="Script" uid="uid://bdxq4aflhc8vd" path="res://game/entities/weapons/laser/laser_projectile.gd" id="2_je1a2"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_3a8fg"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_je1a2"]
size = Vector2(4, 4)
[sub_resource type="CircleShape2D" id="CircleShape2D_3a8fg"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ylokk"]
radius = 1.0
[node name="LaserProjectile" type="CharacterBody2D"]
motion_mode = 1
script = ExtResource("1_3a8fg")
[node name="LaserProjectile" instance=ExtResource("1_3a8fg")]
script = ExtResource("2_je1a2")
damage = 1
speed = 240
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
speed = 500
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("PlaceholderTexture2D_3a8fg")
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_je1a2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_3a8fg")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_ylokk")
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+7 -9
View File
@@ -1,8 +1,9 @@
[gd_scene load_steps=6 format=3 uid="uid://da5hpi3py7hhx"]
[gd_scene load_steps=7 format=3 uid="uid://c3l866fdqt7pf"]
[ext_resource type="Script" uid="uid://lauvvj5xhbud" path="res://game/entities/weapons/launcher/launcher.gd" id="1_sk5u1"]
[ext_resource type="PackedScene" uid="uid://du60nb1ni0bco" path="res://game/entities/weapons/launcher/launcher_projectile.tscn" id="2_q88o8"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_sk5u1"]
[ext_resource type="Script" uid="uid://lauvvj5xhbud" path="res://game/entities/weapons/launcher/launcher.gd" id="2_mxjpe"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_1rkeb"]
[ext_resource type="PackedScene" uid="uid://dukgbg13ujkv2" path="res://game/entities/weapons/launcher/launcher_projectile.tscn" id="3_fsoo2"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_fsoo2"]
[sub_resource type="Resource" id="Resource_8arbu"]
@@ -10,11 +11,8 @@ script = ExtResource("4_fsoo2")
firerate = 120
metadata/_custom_type_script = "uid://b255rb32vc6co"
[node name="Launcher" type="Node2D"]
script = ExtResource("1_sk5u1")
[node name="Launcher" instance=ExtResource("1_sk5u1")]
script = ExtResource("2_mxjpe")
sector_angle = 5
Projectile = ExtResource("2_q88o8")
Projectile = ExtResource("3_fsoo2")
reloaders = Array[ExtResource("3_1rkeb")]([SubResource("Resource_8arbu")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
@@ -1,24 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://du60nb1ni0bco"]
[gd_scene load_steps=5 format=3 uid="uid://dukgbg13ujkv2"]
[ext_resource type="Script" uid="uid://dkvur5bdwg3sr" path="res://game/entities/weapons/launcher/launcher_projectile.gd" id="1_0mcat"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_0mcat"]
[ext_resource type="Script" uid="uid://dkvur5bdwg3sr" path="res://game/entities/weapons/launcher/launcher_projectile.gd" id="2_6hdsf"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_0mcat"]
size = Vector2(8, 4)
size = Vector2(4, 8)
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_0mcat"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6hdsf"]
radius = 1.0
height = 6.0
[node name="LauncherProjectile" type="CharacterBody2D"]
motion_mode = 1
script = ExtResource("1_0mcat")
[node name="LauncherProjectile" instance=ExtResource("1_0mcat")]
script = ExtResource("2_6hdsf")
damage = 24
speed = 300
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_0mcat")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5707964
shape = SubResource("CapsuleShape2D_0mcat")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CapsuleShape2D_6hdsf")
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+8 -10
View File
@@ -1,20 +1,18 @@
[gd_scene load_steps=6 format=3 uid="uid://beddohbuop7d0"]
[gd_scene load_steps=7 format=3 uid="uid://j3yht6q4ru4e"]
[ext_resource type="Script" uid="uid://c3ckkpjaef5jn" path="res://game/entities/weapons/minelayer/minelayer.gd" id="1_12l3k"]
[ext_resource type="PackedScene" uid="uid://dh46vqucky3bo" path="res://game/entities/weapons/minelayer/minelayer_projectile.tscn" id="2_7y446"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_12l3k"]
[ext_resource type="PackedScene" uid="uid://4mkklqt1g14f" path="res://game/entities/weapons/minelayer/minelayer_projectile.tscn" id="2_7y446"]
[ext_resource type="Script" uid="uid://c3ckkpjaef5jn" path="res://game/entities/weapons/minelayer/minelayer.gd" id="2_mmhtn"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_uotj8"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_fbmxv"]
[sub_resource type="Resource" id="Resource_vl21o"]
[sub_resource type="Resource" id="Resource_uotj8"]
script = ExtResource("4_fbmxv")
firerate = 40
metadata/_custom_type_script = "uid://b255rb32vc6co"
[node name="Minelayer" type="Node2D"]
script = ExtResource("1_12l3k")
[node name="Minelayer" instance=ExtResource("1_12l3k")]
script = ExtResource("2_mmhtn")
sector_angle = 10
Projectile = ExtResource("2_7y446")
reloaders = Array[ExtResource("3_uotj8")]([SubResource("Resource_vl21o")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_uotj8")]([SubResource("Resource_uotj8")])
@@ -1 +1,29 @@
extends AbstractProjectile
@export var deceleration : int
@export var livetime : int
func _ready() -> void:
super._ready()
var livetime_timer := Timer.new()
add_child(livetime_timer)
livetime_timer.wait_time = livetime
livetime_timer.one_shot = true
livetime_timer.timeout.connect(queue_free)
livetime_timer.start()
func _physics_process(delta: float) -> void:
_process_acceleration(delta)
super._physics_process(delta)
func _process_acceleration(delta: float) -> void:
var current_deceleration := deceleration * delta
if _velocity.length() > current_deceleration:
_velocity -= _velocity.normalized() * current_deceleration
else:
_velocity = Vector2.ZERO
@@ -1,6 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://dh46vqucky3bo"]
[gd_scene load_steps=5 format=3 uid="uid://4mkklqt1g14f"]
[ext_resource type="Script" uid="uid://76swcukelnii" path="res://game/entities/weapons/minelayer/minelayer_projectile.gd" id="1_ufc4r"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_ufc4r"]
[ext_resource type="Script" uid="uid://76swcukelnii" path="res://game/entities/weapons/minelayer/minelayer_projectile.gd" id="2_hwwfa"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_ufc4r"]
size = Vector2(16, 16)
@@ -8,17 +9,15 @@ size = Vector2(16, 16)
[sub_resource type="CircleShape2D" id="CircleShape2D_ufc4r"]
radius = 7.0
[node name="MinelayerProjectile" type="CharacterBody2D"]
motion_mode = 1
script = ExtResource("1_ufc4r")
[node name="MinelayerProjectile" instance=ExtResource("1_ufc4r")]
script = ExtResource("2_hwwfa")
deceleration = 100
livetime = 60
damage = 100
speed = 200
acceleration = -10
max_livetime = 60
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_ufc4r")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_ufc4r")
-11
View File
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+9 -11
View File
@@ -1,28 +1,26 @@
[gd_scene load_steps=8 format=3 uid="uid://mhar8dm1ni73"]
[gd_scene load_steps=9 format=3 uid="uid://cj1jclfterepm"]
[ext_resource type="Script" uid="uid://cu6ck2oqqdem8" path="res://game/entities/weapons/plasma/plasma.gd" id="1_pkk8e"]
[ext_resource type="PackedScene" uid="uid://b2sd3ur65gpwh" path="res://game/entities/weapons/plasma/plasma_projectile.tscn" id="2_yluvp"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_pkk8e"]
[ext_resource type="Script" uid="uid://cu6ck2oqqdem8" path="res://game/entities/weapons/plasma/plasma.gd" id="2_fnsb7"]
[ext_resource type="PackedScene" uid="uid://cgvb0hjrl5h4s" path="res://game/entities/weapons/plasma/plasma_projectile.tscn" id="2_yluvp"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_fnsb7"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_gpth1"]
[ext_resource type="Script" uid="uid://dxk56xdihfw4m" path="res://game/reloaders/energy_reloader.gd" id="5_daaq0"]
[sub_resource type="Resource" id="Resource_d5x03"]
[sub_resource type="Resource" id="Resource_yluvp"]
script = ExtResource("4_gpth1")
firerate = 150
metadata/_custom_type_script = "uid://b255rb32vc6co"
[sub_resource type="Resource" id="Resource_028m2"]
[sub_resource type="Resource" id="Resource_fnsb7"]
script = ExtResource("5_daaq0")
heat_per_shot = 35
heat_capacity = 1000
cooling_down_rate = 1000
metadata/_custom_type_script = "uid://dxk56xdihfw4m"
[node name="Plasma" type="Node2D"]
script = ExtResource("1_pkk8e")
[node name="Plasma" instance=ExtResource("1_pkk8e")]
script = ExtResource("2_fnsb7")
sector_angle = 2
Projectile = ExtResource("2_yluvp")
reloaders = Array[ExtResource("3_fnsb7")]([SubResource("Resource_d5x03"), SubResource("Resource_028m2")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_fnsb7")]([SubResource("Resource_yluvp"), SubResource("Resource_fnsb7")])
@@ -1,6 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://b2sd3ur65gpwh"]
[gd_scene load_steps=5 format=3 uid="uid://cgvb0hjrl5h4s"]
[ext_resource type="Script" uid="uid://bu5sjoh4hwkhn" path="res://game/entities/weapons/plasma/plasma_projectile.gd" id="1_x58hw"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_x58hw"]
[ext_resource type="Script" uid="uid://bu5sjoh4hwkhn" path="res://game/entities/weapons/plasma/plasma_projectile.gd" id="2_0deih"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_x58hw"]
size = Vector2(6, 6)
@@ -8,15 +9,13 @@ size = Vector2(6, 6)
[sub_resource type="CircleShape2D" id="CircleShape2D_x58hw"]
radius = 2.0
[node name="PlasmaProjectile" type="CharacterBody2D"]
motion_mode = 1
script = ExtResource("1_x58hw")
[node name="PlasmaProjectile" instance=ExtResource("1_x58hw")]
script = ExtResource("2_0deih")
damage = 20
speed = 450
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_x58hw")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_x58hw")
-11
View File
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+7 -9
View File
@@ -1,26 +1,24 @@
[gd_scene load_steps=8 format=3 uid="uid://4ikdkhxoiwox"]
[gd_scene load_steps=9 format=3 uid="uid://do6h77gmnreho"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_0nxvu"]
[ext_resource type="Script" uid="uid://drnofu4ium56e" path="res://game/entities/weapons/railgun/railgun.gd" id="1_5nhwg"]
[ext_resource type="PackedScene" uid="uid://dpd6qm3e3wbjx" path="res://game/entities/weapons/railgun/railgun_projectile.tscn" id="2_cbsia"]
[ext_resource type="PackedScene" uid="uid://bab3bopsw74cb" path="res://game/entities/weapons/railgun/railgun_projectile.tscn" id="2_cbsia"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_qxka8"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_igknv"]
[ext_resource type="Script" uid="uid://d2gfhnlbqxsoq" path="res://game/reloaders/magazine_reloader.gd" id="5_buejq"]
[sub_resource type="Resource" id="Resource_6wi8i"]
[sub_resource type="Resource" id="Resource_5nhwg"]
script = ExtResource("4_igknv")
firerate = 60
metadata/_custom_type_script = "uid://b255rb32vc6co"
[sub_resource type="Resource" id="Resource_2gq2l"]
[sub_resource type="Resource" id="Resource_cbsia"]
script = ExtResource("5_buejq")
magazine_size = 30
reload_time = 7
metadata/_custom_type_script = "uid://d2gfhnlbqxsoq"
[node name="Railgun" type="Node2D"]
[node name="Railgun" instance=ExtResource("1_0nxvu")]
script = ExtResource("1_5nhwg")
Projectile = ExtResource("2_cbsia")
reloaders = Array[ExtResource("3_qxka8")]([SubResource("Resource_6wi8i"), SubResource("Resource_2gq2l")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_qxka8")]([SubResource("Resource_5nhwg"), SubResource("Resource_cbsia")])
@@ -1,25 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://dpd6qm3e3wbjx"]
[gd_scene load_steps=5 format=3 uid="uid://bab3bopsw74cb"]
[ext_resource type="Script" uid="uid://n3h1e3pj02g0" path="res://game/entities/weapons/railgun/railgun_projectile.gd" id="1_hycpq"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_rfd1j"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_rfd1j"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_an7sy"]
size = Vector2(6, 6)
[sub_resource type="CircleShape2D" id="CircleShape2D_hycpq"]
[sub_resource type="CircleShape2D" id="CircleShape2D_rfd1j"]
radius = 2.0
[node name="RailgunProjectile" type="CharacterBody2D"]
collision_layer = 0
collision_mask = 0
motion_mode = 1
[node name="RailgunProjectile" instance=ExtResource("1_rfd1j")]
script = ExtResource("1_hycpq")
damage = 45
speed = 900
piercing = 1
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("PlaceholderTexture2D_rfd1j")
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_an7sy")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_hycpq")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_rfd1j")
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+9 -11
View File
@@ -1,28 +1,26 @@
[gd_scene load_steps=8 format=3 uid="uid://cy7g35uoq3ts"]
[gd_scene load_steps=9 format=3 uid="uid://r7wnk762jbfy"]
[ext_resource type="Script" uid="uid://gxwbsiicuqh5" path="res://game/entities/weapons/shrapnel/shrapnel.gd" id="1_xk300"]
[ext_resource type="PackedScene" uid="uid://7pe0un48uedn" path="res://game/entities/weapons/shrapnel/shrapnel_projectile.tscn" id="2_xvd4y"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_xk300"]
[ext_resource type="Script" uid="uid://gxwbsiicuqh5" path="res://game/entities/weapons/shrapnel/shrapnel.gd" id="2_1bd18"]
[ext_resource type="PackedScene" uid="uid://bsx23u3a2obbj" path="res://game/entities/weapons/shrapnel/shrapnel_projectile.tscn" id="2_xvd4y"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_tyrw7"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_nfmol"]
[ext_resource type="Script" uid="uid://d2gfhnlbqxsoq" path="res://game/reloaders/magazine_reloader.gd" id="5_mw83u"]
[sub_resource type="Resource" id="Resource_8lwl1"]
[sub_resource type="Resource" id="Resource_tyrw7"]
script = ExtResource("4_nfmol")
firerate = 100
metadata/_custom_type_script = "uid://b255rb32vc6co"
[sub_resource type="Resource" id="Resource_xcpx0"]
[sub_resource type="Resource" id="Resource_nfmol"]
script = ExtResource("5_mw83u")
magazine_size = 35
reload_time = 5
metadata/_custom_type_script = "uid://d2gfhnlbqxsoq"
[node name="Shrapnel" type="Node2D"]
script = ExtResource("1_xk300")
[node name="Shrapnel" instance=ExtResource("1_xk300")]
script = ExtResource("2_1bd18")
bullet_per_shot = 20
sector_angle = 30
Projectile = ExtResource("2_xvd4y")
reloaders = Array[ExtResource("3_tyrw7")]([SubResource("Resource_8lwl1"), SubResource("Resource_xcpx0")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_tyrw7")]([SubResource("Resource_tyrw7"), SubResource("Resource_nfmol")])
@@ -1 +1,18 @@
extends AbstractProjectile
@export var max_distance : int
var _traveled_distance: float
func _physics_process(delta: float) -> void:
super._physics_process(delta)
_process_distance(delta)
func _process_distance(delta: float) -> void:
_traveled_distance += _velocity.length() * delta
if max_distance > 0 and _traveled_distance > max_distance:
queue_free()
@@ -1,23 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://7pe0un48uedn"]
[gd_scene load_steps=5 format=3 uid="uid://bsx23u3a2obbj"]
[ext_resource type="Script" uid="uid://ctnje7pjanaws" path="res://game/entities/weapons/shrapnel/shrapnel_projectile.gd" id="1_yu2c6"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_yu2c6"]
[ext_resource type="Script" uid="uid://ctnje7pjanaws" path="res://game/entities/weapons/shrapnel/shrapnel_projectile.gd" id="2_2jiy6"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_yu2c6"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_2jiy6"]
size = Vector2(4, 4)
[sub_resource type="CircleShape2D" id="CircleShape2D_yu2c6"]
[sub_resource type="CircleShape2D" id="CircleShape2D_2jiy6"]
radius = 1.0
[node name="ShrapnelProjectile" type="CharacterBody2D"]
motion_mode = 1
script = ExtResource("1_yu2c6")
[node name="ShrapnelProjectile" instance=ExtResource("1_yu2c6")]
script = ExtResource("2_2jiy6")
max_distance = 350
damage = 2
speed = 500
max_distance = 120
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("PlaceholderTexture2D_yu2c6")
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_2jiy6")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_yu2c6")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_2jiy6")
-11
View File
@@ -1,12 +1 @@
extends AbstractWeapon
@onready var sprite := $Sprite2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
sprite.texture = texture
super._ready()
+9 -11
View File
@@ -1,28 +1,26 @@
[gd_scene load_steps=8 format=3 uid="uid://dpwdl7kcf0sng"]
[gd_scene load_steps=9 format=3 uid="uid://dyebeblayioji"]
[ext_resource type="Script" uid="uid://ctv408wdwvttc" path="res://game/entities/weapons/tesla/tesla.gd" id="1_rpud7"]
[ext_resource type="PackedScene" uid="uid://dmvxynbo5bpyw" path="res://game/entities/weapons/tesla/tesla_projectile.tscn" id="2_1rrdy"]
[ext_resource type="PackedScene" uid="uid://1o2ta17yc5bp" path="res://game/entities/weapons/abstract_weapon.tscn" id="1_rpud7"]
[ext_resource type="PackedScene" uid="uid://bi64687wtxi4d" path="res://game/entities/weapons/tesla/tesla_projectile.tscn" id="2_1rrdy"]
[ext_resource type="Script" uid="uid://ctv408wdwvttc" path="res://game/entities/weapons/tesla/tesla.gd" id="2_08si3"]
[ext_resource type="Script" uid="uid://ccpriilfr3kme" path="res://game/reloaders/abstract_reloader.gd" id="3_08si3"]
[ext_resource type="Script" uid="uid://b255rb32vc6co" path="res://game/reloaders/firerate_reloader.gd" id="4_rqarv"]
[ext_resource type="Script" uid="uid://dxk56xdihfw4m" path="res://game/reloaders/energy_reloader.gd" id="5_j5i31"]
[sub_resource type="Resource" id="Resource_jo1m1"]
[sub_resource type="Resource" id="Resource_1rrdy"]
script = ExtResource("4_rqarv")
firerate = 45
metadata/_custom_type_script = "uid://b255rb32vc6co"
[sub_resource type="Resource" id="Resource_7s0el"]
[sub_resource type="Resource" id="Resource_08si3"]
script = ExtResource("5_j5i31")
heat_per_shot = 150
heat_capacity = 1000
cooling_down_rate = 2500
metadata/_custom_type_script = "uid://dxk56xdihfw4m"
[node name="Tesla" type="Node2D"]
script = ExtResource("1_rpud7")
[node name="Tesla" instance=ExtResource("1_rpud7")]
script = ExtResource("2_08si3")
sector_angle = 180
Projectile = ExtResource("2_1rrdy")
reloaders = Array[ExtResource("3_08si3")]([SubResource("Resource_jo1m1"), SubResource("Resource_7s0el")])
metadata/_custom_type_script = "uid://dpqxs8hlql2o0"
[node name="Sprite2D" type="Sprite2D" parent="."]
reloaders = Array[ExtResource("3_08si3")]([SubResource("Resource_1rrdy"), SubResource("Resource_08si3")])
@@ -1,22 +1,21 @@
[gd_scene load_steps=4 format=3 uid="uid://dmvxynbo5bpyw"]
[gd_scene load_steps=5 format=3 uid="uid://bi64687wtxi4d"]
[ext_resource type="Script" uid="uid://bxcoa2eps0tt1" path="res://game/entities/weapons/tesla/tesla_projectile.gd" id="1_1oexk"]
[ext_resource type="PackedScene" uid="uid://ybkqaynvpcjm" path="res://game/entities/weapons/abstract_projectile.tscn" id="1_1oexk"]
[ext_resource type="Script" uid="uid://bxcoa2eps0tt1" path="res://game/entities/weapons/tesla/tesla_projectile.gd" id="2_q73is"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_1oexk"]
size = Vector2(12, 12)
[sub_resource type="CircleShape2D" id="CircleShape2D_1oexk"]
[sub_resource type="CircleShape2D" id="CircleShape2D_q73is"]
radius = 5.0
[node name="TeslaProjectile" type="CharacterBody2D"]
motion_mode = 1
script = ExtResource("1_1oexk")
[node name="TeslaProjectile" instance=ExtResource("1_1oexk")]
script = ExtResource("2_q73is")
damage = 45
speed = 900
metadata/_custom_type_script = "uid://ctmjb3nkxrepu"
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="Sprite2D" parent="." index="0"]
texture = SubResource("PlaceholderTexture2D_1oexk")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_1oexk")
[node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_q73is")
-27
View File
@@ -32,30 +32,3 @@ position = Vector2(640, 180)
rotation = -1.5707964
shape = SubResource("WorldBoundaryShape2D_ltkyg")
one_way_collision = true
[node name="ProjectileBorder" type="StaticBody2D" parent="."]
collision_layer = 32
collision_mask = 0
[node name="CollisionTop" type="CollisionShape2D" parent="ProjectileBorder"]
position = Vector2(320, -50)
rotation = 3.1415927
shape = SubResource("WorldBoundaryShape2D_ltkyg")
one_way_collision = true
[node name="CollisionBottom" type="CollisionShape2D" parent="ProjectileBorder"]
position = Vector2(320, 410)
shape = SubResource("WorldBoundaryShape2D_ltkyg")
one_way_collision = true
[node name="CollisionLeft" type="CollisionShape2D" parent="ProjectileBorder"]
position = Vector2(-50, 180)
rotation = 1.5707964
shape = SubResource("WorldBoundaryShape2D_ltkyg")
one_way_collision = true
[node name="CollisionRight" type="CollisionShape2D" parent="ProjectileBorder"]
position = Vector2(690, 180)
rotation = -1.5707964
shape = SubResource("WorldBoundaryShape2D_ltkyg")
one_way_collision = true
+3 -3
View File
@@ -2,19 +2,19 @@ extends AbstractReloader
class_name EnergyReloader
@export var heat_per_shot : int:
@export_range(1, 250) var heat_per_shot : int = 1:
set(value):
heat_per_shot = value
_calculate_critical_heat()
@export var heat_capacity : int:
@export_range(1, 2500) var heat_capacity : int = 1:
set(value):
heat_capacity = value
_calculate_critical_heat()
@export var cooling_down_rate : int:
@export_range(1, 5000) var cooling_down_rate : int = 1:
set(value):
cooling_down_rate = value
_calculate_cool()
+1 -1
View File
@@ -2,7 +2,7 @@ extends AbstractReloader
class_name FirerateReloader
@export var firerate : int:
@export_range(1, 1500) var firerate : int = 1:
set(value):
firerate = value
_calculate_delay()
+2 -2
View File
@@ -2,12 +2,12 @@ extends AbstractReloader
class_name GatlingReloader
@export var firerate : int:
@export_range(1, 1500) var firerate : int = 1:
set(value):
firerate = value
_calculate_delay()
@export var spin_out_time : int:
@export_range(1, 25) var spin_out_time : int = 1:
set(value):
spin_out_time = value
_calculate_delay()
+2 -3
View File
@@ -2,13 +2,13 @@ extends AbstractReloader
class_name MagazineReloader
@export var magazine_size : int:
@export_range(1, 500) var magazine_size : int = 1:
set(value):
magazine_size = value
_calculate_bullets_in_magazine()
@export var reload_time : int:
@export_range(1, 60) var reload_time : int = 1:
set(value):
reload_time = value
_calculate_reload_time_tenth()
@@ -47,7 +47,6 @@ func reload() -> void:
if _countdown > 0 or _bullets_in_magazine == magazine_size: return
var random_delay := _random.randf_range(-_reload_time_tenth, _reload_time_tenth)
_countdown = reload_time + random_delay
print("reload")
func get_process_percent() -> int: