Fixed weapons scenes inheritance
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"]
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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,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,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:
|
||||
|
||||
Reference in New Issue
Block a user