Reworked weapons and projectiles
This commit is contained in:
+2
-2
@@ -1,5 +1,5 @@
|
||||
class_name TeslaProjectile
|
||||
extends DirectHitProjectile
|
||||
class_name AbstractTeslaProjectile
|
||||
extends AbstractDirectHitProjectile
|
||||
|
||||
|
||||
@export_range(0.01, 0.5) var jink_min_delay: float = 0.01
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
[gd_scene load_steps=11 format=3 uid="uid://bi64687wtxi4d"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cdv5n4t47hr8i" path="res://game/entities/weapons/direct_hit__projectile.tscn" id="1_1oexk"]
|
||||
[ext_resource type="Script" uid="uid://bxcoa2eps0tt1" path="res://game/entities/weapons/tesla/tesla_projectile.gd" id="2_q73is"]
|
||||
[ext_resource type="Script" uid="uid://c27v705giygv4" path="res://game/health_system/damage/energy_damage.gd" id="3_l65ib"]
|
||||
[ext_resource type="PackedScene" uid="uid://cdv5n4t47hr8i" path="res://game/entities/weapons/abstract_direct_hit_projectile.tscn" id="1_1oexk"]
|
||||
[ext_resource type="Script" uid="uid://bxcoa2eps0tt1" path="res://game/entities/weapons/tesla/abstract_tesla_projectile.gd" id="2_q73is"]
|
||||
[ext_resource type="Script" uid="uid://c27v705giygv4" path="res://game/data/damage/energy_damage.gd" id="3_l65ib"]
|
||||
[ext_resource type="Texture2D" uid="uid://cqdctagygc0c0" path="res://particle_textures/energy_large.tres" id="4_1121u"]
|
||||
[ext_resource type="Texture2D" uid="uid://d2k7bcwqr5v2q" path="res://particle_textures/energy_huge.tres" id="4_wtuxv"]
|
||||
[ext_resource type="Texture2D" uid="uid://dk3t14mrgjmma" path="res://particle_textures/energy_medium.tres" id="5_wtuxv"]
|
||||
@@ -30,7 +30,7 @@ initial_velocity_max = 1.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
turbulence_enabled = true
|
||||
|
||||
[node name="TeslaProjectile" instance=ExtResource("1_1oexk")]
|
||||
[node name="AbstractTeslaProjectile" instance=ExtResource("1_1oexk")]
|
||||
collision_layer = 0
|
||||
collision_mask = 0
|
||||
script = ExtResource("2_q73is")
|
||||
+3
-5
@@ -1,14 +1,12 @@
|
||||
class_name AbstractTeslaWeapon
|
||||
extends AbstractWeapon
|
||||
|
||||
|
||||
@onready var sprite : AnimatedSprite2D = $AnimatedSprite2D
|
||||
@onready var cooldown_timer : Timer = $CooldownTimer
|
||||
|
||||
|
||||
func set_belonging(belonging: Belonging) -> void:
|
||||
super.set_belonging(belonging)
|
||||
|
||||
sprite.play(PREFIXES[_belonging] + IDLE_POSTFIX)
|
||||
func _ready() -> void:
|
||||
sprite.play(IDLE_ANIMATION)
|
||||
|
||||
|
||||
func shoot(ship_velocity: Vector2) -> bool:
|
||||
+3
-5
@@ -1,8 +1,7 @@
|
||||
[gd_scene load_steps=24 format=3 uid="uid://dyebeblayioji"]
|
||||
[gd_scene load_steps=23 format=3 uid="uid://dyebeblayioji"]
|
||||
|
||||
[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_weapon.gd" id="2_08si3"]
|
||||
[ext_resource type="Script" uid="uid://ctv408wdwvttc" path="res://game/entities/weapons/tesla/abstract_tesla_weapon.gd" id="2_08si3"]
|
||||
[ext_resource type="Texture2D" uid="uid://c6aixtu6lbfud" path="res://particle_textures/energy_small.tres" id="5_dhfvk"]
|
||||
[ext_resource type="Texture2D" uid="uid://6hh66k8s4a1e" path="res://images/weapons.png" id="7_ub67s"]
|
||||
|
||||
@@ -142,10 +141,9 @@ initial_velocity_min = 15.0
|
||||
initial_velocity_max = 25.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
|
||||
[node name="TeslaWeapon" instance=ExtResource("1_rpud7")]
|
||||
[node name="AbstractTeslaWeapon" instance=ExtResource("1_rpud7")]
|
||||
script = ExtResource("2_08si3")
|
||||
sector_angle = 10
|
||||
Projectile = ExtResource("2_1rrdy")
|
||||
type = 4
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." index="0"]
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name EnemyTeslaProjectile
|
||||
extends AbstractTeslaProjectile
|
||||
@@ -0,0 +1 @@
|
||||
uid://c23oegr5fvmwl
|
||||
@@ -0,0 +1,18 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://cpqpc1h3egvid"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bi64687wtxi4d" path="res://game/entities/weapons/tesla/abstract_tesla_projectile.tscn" id="1_om3b2"]
|
||||
[ext_resource type="Script" uid="uid://c27v705giygv4" path="res://game/data/damage/energy_damage.gd" id="2_d0a42"]
|
||||
[ext_resource type="Script" uid="uid://c23oegr5fvmwl" path="res://game/entities/weapons/tesla/enemy_tesla_projectile.gd" id="2_fxxjv"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fxxjv"]
|
||||
resource_local_to_scene = true
|
||||
script = ExtResource("2_d0a42")
|
||||
value = 30
|
||||
metadata/_custom_type_script = "uid://c27v705giygv4"
|
||||
|
||||
[node name="EnemyTeslaProjectile" instance=ExtResource("1_om3b2")]
|
||||
collision_layer = 16
|
||||
collision_mask = 2
|
||||
script = ExtResource("2_fxxjv")
|
||||
damage = SubResource("Resource_fxxjv")
|
||||
direction = Vector2(-1, 0)
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name EnemyTeslaWeapon
|
||||
extends AbstractTeslaWeapon
|
||||
@@ -0,0 +1 @@
|
||||
uid://ermhuy56qrok
|
||||
@@ -0,0 +1,78 @@
|
||||
[gd_scene load_steps=14 format=3 uid="uid://dqgybquvuw0v6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dyebeblayioji" path="res://game/entities/weapons/tesla/abstract_tesla_weapon.tscn" id="1_k6lmk"]
|
||||
[ext_resource type="Script" uid="uid://ermhuy56qrok" path="res://game/entities/weapons/tesla/enemy_tesla_weapon.gd" id="2_cxr41"]
|
||||
[ext_resource type="PackedScene" uid="uid://cpqpc1h3egvid" path="res://game/entities/weapons/tesla/enemy_tesla_projectile.tscn" id="3_i0gkc"]
|
||||
[ext_resource type="Texture2D" uid="uid://6hh66k8s4a1e" path="res://images/weapons.png" id="4_b2pb7"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ucdpq"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(0, 16, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ifsj2"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(32, 16, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_x1fov"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(64, 16, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_u727i"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(96, 16, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_l8rch"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(128, 16, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_w3n8b"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(160, 16, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4xemq"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(192, 16, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ekb5u"]
|
||||
atlas = ExtResource("4_b2pb7")
|
||||
region = Rect2(224, 16, 32, 16)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_sv7dk"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ucdpq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ifsj2")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_x1fov")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_u727i")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_l8rch")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_w3n8b")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4xemq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ekb5u")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"idle",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="EnemyTeslaWeapon" instance=ExtResource("1_k6lmk")]
|
||||
script = ExtResource("2_cxr41")
|
||||
projectile_scene = ExtResource("3_i0gkc")
|
||||
|
||||
[node name="AnimatedSprite2D" parent="." index="0"]
|
||||
sprite_frames = SubResource("SpriteFrames_sv7dk")
|
||||
animation = &"idle"
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name PlayerTeslaProjectile
|
||||
extends AbstractTeslaProjectile
|
||||
@@ -0,0 +1 @@
|
||||
uid://d2afef30y5oa7
|
||||
@@ -0,0 +1,18 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bvrsk14t6m061"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bi64687wtxi4d" path="res://game/entities/weapons/tesla/abstract_tesla_projectile.tscn" id="1_t7qf7"]
|
||||
[ext_resource type="Script" uid="uid://c27v705giygv4" path="res://game/data/damage/energy_damage.gd" id="2_mk8o6"]
|
||||
[ext_resource type="Script" uid="uid://d2afef30y5oa7" path="res://game/entities/weapons/tesla/player_tesla_projectile.gd" id="2_yocnc"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_yocnc"]
|
||||
resource_local_to_scene = true
|
||||
script = ExtResource("2_mk8o6")
|
||||
value = 30
|
||||
metadata/_custom_type_script = "uid://c27v705giygv4"
|
||||
|
||||
[node name="PlayerTeslaProjectile" instance=ExtResource("1_t7qf7")]
|
||||
collision_layer = 8
|
||||
collision_mask = 4
|
||||
script = ExtResource("2_yocnc")
|
||||
damage = SubResource("Resource_yocnc")
|
||||
direction = Vector2(1, 0)
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name PlayerTeslaWeapon
|
||||
extends AbstractTeslaWeapon
|
||||
@@ -0,0 +1 @@
|
||||
uid://d2qtsjtu56c21
|
||||
@@ -0,0 +1,78 @@
|
||||
[gd_scene load_steps=14 format=3 uid="uid://u6hpohk5i3eu"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dyebeblayioji" path="res://game/entities/weapons/tesla/abstract_tesla_weapon.tscn" id="1_0i0tl"]
|
||||
[ext_resource type="Script" uid="uid://d2qtsjtu56c21" path="res://game/entities/weapons/tesla/player_tesla_weapon.gd" id="2_ve1yj"]
|
||||
[ext_resource type="PackedScene" uid="uid://bvrsk14t6m061" path="res://game/entities/weapons/tesla/player_tesla_projectile.tscn" id="3_io2od"]
|
||||
[ext_resource type="Texture2D" uid="uid://6hh66k8s4a1e" path="res://images/weapons.png" id="4_mjxwr"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7ksu7"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(0, 0, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_14sqy"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(32, 0, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_57vww"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(64, 0, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ook02"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(96, 0, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_w4veo"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(128, 0, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xa0we"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(160, 0, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_50pvw"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(192, 0, 32, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_vagjq"]
|
||||
atlas = ExtResource("4_mjxwr")
|
||||
region = Rect2(224, 0, 32, 16)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_sjgub"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7ksu7")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_14sqy")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_57vww")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ook02")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_w4veo")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xa0we")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_50pvw")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vagjq")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"idle",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="PlayerTeslaWeapon" instance=ExtResource("1_0i0tl")]
|
||||
script = ExtResource("2_ve1yj")
|
||||
projectile_scene = ExtResource("3_io2od")
|
||||
|
||||
[node name="AnimatedSprite2D" parent="." index="0"]
|
||||
sprite_frames = SubResource("SpriteFrames_sjgub")
|
||||
animation = &"idle"
|
||||
@@ -1,17 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="WeaponData" load_steps=3 format=3 uid="uid://c7tim0uie3m35"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://870r1efinhqd" path="res://game/world/data/weapon_data.gd" id="1_a16gw"]
|
||||
[ext_resource type="PackedScene" uid="uid://dyebeblayioji" path="res://game/entities/weapons/tesla/tesla_weapon.tscn" id="1_uxb6m"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_a16gw")
|
||||
id = "tesla"
|
||||
name = "Tesla"
|
||||
group = "energy"
|
||||
description = "Moderate damage (energetic)
|
||||
Low firerate
|
||||
High velocity
|
||||
Hits nearest target
|
||||
Can pierce enemies"
|
||||
scene = ExtResource("1_uxb6m")
|
||||
metadata/_custom_type_script = "uid://870r1efinhqd"
|
||||
Reference in New Issue
Block a user