Fix up projectiles
This commit is contained in:
@@ -1,14 +1,14 @@
|
|||||||
[gd_scene load_steps=118 format=3 uid="uid://cnhoya51br05n"]
|
[gd_scene load_steps=118 format=3 uid="uid://cnhoya51br05n"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_81fka"]
|
[ext_resource type="Script" uid="uid://bbvi33wy7w7d5" path="res://src/system/EnemyProjectile.cs" id="1_lfvya"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_6m87k"]
|
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_6m87k"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dvjqokin1o1ic" path="res://src/vfx/Enemy/green_orbs.png" id="3_uopp7"]
|
[ext_resource type="Texture2D" uid="uid://dvjqokin1o1ic" path="res://src/vfx/Enemy/green_orbs.png" id="3_uopp7"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="4_n84oq"]
|
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="4_n84oq"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_mno7m"]
|
[sub_resource type="Resource" id="Resource_ka3x7"]
|
||||||
script = ExtResource("2_6m87k")
|
script = ExtResource("2_6m87k")
|
||||||
Damage = 7
|
Damage = 10
|
||||||
ElementType = 4
|
ElementType = 1
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_fwra5"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_fwra5"]
|
||||||
@@ -782,7 +782,7 @@ tracks/0/keys = {
|
|||||||
"times": PackedFloat32Array(0, 1),
|
"times": PackedFloat32Array(0, 1),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 1, 0), Vector3(0, 1, 10)]
|
"values": [Vector3(0, 0, 0), Vector3(0, 0, 10)]
|
||||||
}
|
}
|
||||||
tracks/1/type = "audio"
|
tracks/1/type = "audio"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
@@ -806,10 +806,10 @@ tracks/2/path = NodePath(".:visible")
|
|||||||
tracks/2/interp = 1
|
tracks/2/interp = 1
|
||||||
tracks/2/loop_wrap = true
|
tracks/2/loop_wrap = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
"times": PackedFloat32Array(0, 1),
|
"times": PackedFloat32Array(0, 0.0666667, 1),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [false, false]
|
"values": [false, true, false]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_8qeb2"]
|
[sub_resource type="Animation" id="Animation_8qeb2"]
|
||||||
@@ -824,7 +824,7 @@ tracks/0/keys = {
|
|||||||
"times": PackedFloat32Array(0),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 1, 0)]
|
"values": [Vector3(0, 0, 0)]
|
||||||
}
|
}
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
@@ -846,11 +846,10 @@ _data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="Projectile1" type="Node3D"]
|
[node name="Projectile1" type="Node3D"]
|
||||||
script = ExtResource("1_81fka")
|
script = ExtResource("1_lfvya")
|
||||||
AttackData = SubResource("Resource_mno7m")
|
AttackData = SubResource("Resource_ka3x7")
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|
||||||
|
|
||||||
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="Bullet"]
|
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="Bullet"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_jvw36"]
|
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_jvw36"]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
||||||
radius = 1.08524
|
radius = 1.6
|
||||||
height = 2.21643
|
height = 3.2
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
|
||||||
height = 5.0
|
height = 5.0
|
||||||
@@ -33,12 +33,12 @@ script = ExtResource("1_e2477")
|
|||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.83179, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.2559, 0)
|
||||||
shape = SubResource("CapsuleShape3D_cwfph")
|
shape = SubResource("CapsuleShape3D_cwfph")
|
||||||
|
|
||||||
[node name="LineOfSight" type="Area3D" parent="."]
|
[node name="LineOfSight" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.83179, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.2559, 0)
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 2
|
collision_mask = 2
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ target_position = Vector3(0, 0, -5)
|
|||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
|
|
||||||
[node name="Collision" type="Area3D" parent="."]
|
[node name="Collision" type="Area3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.83179, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||||
collision_layer = 2048
|
collision_layer = 2048
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0147337, 0)
|
|||||||
|
|
||||||
[node name="PlayerDetector" type="Area3D" parent="."]
|
[node name="PlayerDetector" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.83179, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 34
|
collision_mask = 34
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ collision_mask = 34
|
|||||||
shape = SubResource("CylinderShape3D_tbkej")
|
shape = SubResource("CylinderShape3D_tbkej")
|
||||||
|
|
||||||
[node name="Components" type="Node3D" parent="."]
|
[node name="Components" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.83179, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||||
|
|
||||||
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_dxxe5")]
|
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_dxxe5")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@@ -93,7 +93,7 @@ avoidance_enabled = true
|
|||||||
radius = 2.0
|
radius = 2.0
|
||||||
|
|
||||||
[node name="HitSounds" type="Node3D" parent="."]
|
[node name="HitSounds" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.83179, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||||
|
|
||||||
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ public partial class EdenPillar : Enemy3D, IHasPrimaryAttack, IHasSecondaryAttac
|
|||||||
|
|
||||||
[Export] public double TertiaryAttackElementalDamageBonus { get; set; } = 1.15f;
|
[Export] public double TertiaryAttackElementalDamageBonus { get; set; } = 1.15f;
|
||||||
|
|
||||||
[Node] private Projectile Projectile1 { get; set; }
|
[Node] private EnemyProjectile Projectile1 { get; set; }
|
||||||
|
|
||||||
[Node] private Projectile Projectile2 { get; set; }
|
[Node] private EnemyProjectile Projectile2 { get; set; }
|
||||||
|
|
||||||
[Node] private Projectile Projectile3 { get; set; }
|
[Node] private EnemyProjectile Projectile3 { get; set; }
|
||||||
|
|
||||||
[Node] private Node3D _rotation { get; set; } = default!;
|
[Node] private Node3D _rotation { get; set; } = default!;
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
[gd_scene load_steps=31 format=3 uid="uid://68xlg6uoenik"]
|
[gd_scene load_steps=29 format=3 uid="uid://68xlg6uoenik"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_120b0"]
|
[ext_resource type="Script" uid="uid://bbvi33wy7w7d5" path="res://src/system/EnemyProjectile.cs" id="1_lhing"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_120b0"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bc2kcbo8hvpjo" path="res://src/vfx/Enemy/EDEN_FIREBALL.png" id="2_yk5wk"]
|
[ext_resource type="Texture2D" uid="uid://bc2kcbo8hvpjo" path="res://src/vfx/Enemy/EDEN_FIREBALL.png" id="2_yk5wk"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="3_c2pmi"]
|
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="3_c2pmi"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_yk5wk"]
|
|
||||||
script = ExtResource("2_120b0")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 4
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_tahr6"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_tahr6"]
|
||||||
atlas = ExtResource("2_yk5wk")
|
atlas = ExtResource("2_yk5wk")
|
||||||
region = Rect2(1024, 0, 512, 502)
|
region = Rect2(1024, 0, 512, 502)
|
||||||
@@ -263,8 +256,7 @@ _data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="Projectile1" type="Node3D"]
|
[node name="Projectile1" type="Node3D"]
|
||||||
script = ExtResource("1_120b0")
|
script = ExtResource("1_lhing")
|
||||||
AttackData = SubResource("Resource_yk5wk")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
[gd_scene load_steps=82 format=3 uid="uid://d1co3mi3bf8yj"]
|
[gd_scene load_steps=80 format=3 uid="uid://d1co3mi3bf8yj"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_4lakg"]
|
[ext_resource type="Script" uid="uid://bbvi33wy7w7d5" path="res://src/system/EnemyProjectile.cs" id="1_p235i"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_4lakg"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://f21bov0pvu84" path="res://src/vfx/Enemy/watersheet.png" id="2_umubt"]
|
[ext_resource type="Texture2D" uid="uid://f21bov0pvu84" path="res://src/vfx/Enemy/watersheet.png" id="2_umubt"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="3_2jyax"]
|
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="3_2jyax"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_umubt"]
|
|
||||||
script = ExtResource("2_4lakg")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 3
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_nc31c"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_nc31c"]
|
||||||
atlas = ExtResource("2_umubt")
|
atlas = ExtResource("2_umubt")
|
||||||
region = Rect2(414, 0, 414, 407)
|
region = Rect2(414, 0, 414, 407)
|
||||||
@@ -621,8 +614,7 @@ _data = {
|
|||||||
|
|
||||||
[node name="Projectile2" type="Node3D"]
|
[node name="Projectile2" type="Node3D"]
|
||||||
transform = Transform3D(-0.529919, 0, 0.848048, 0, 1, 0, -0.848048, 0, -0.529919, 0, 0, 0)
|
transform = Transform3D(-0.529919, 0, 0.848048, 0, 1, 0, -0.848048, 0, -0.529919, 0, 0, 0)
|
||||||
script = ExtResource("1_4lakg")
|
script = ExtResource("1_p235i")
|
||||||
AttackData = SubResource("Resource_umubt")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
[gd_scene load_steps=130 format=3 uid="uid://coif30gd0sh8q"]
|
[gd_scene load_steps=128 format=3 uid="uid://coif30gd0sh8q"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_c6b2i"]
|
[ext_resource type="Script" uid="uid://bbvi33wy7w7d5" path="res://src/system/EnemyProjectile.cs" id="1_i8gam"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_c6b2i"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://w5055g8ecnea" path="res://src/vfx/Enemy/EDEN_AERO.png" id="2_nsnf1"]
|
[ext_resource type="Texture2D" uid="uid://w5055g8ecnea" path="res://src/vfx/Enemy/EDEN_AERO.png" id="2_nsnf1"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="3_1sxke"]
|
[ext_resource type="AudioStream" uid="uid://c0jveij17p14k" path="res://src/audio/sfx/ENEMY_EDEN_PILLAR_PROJECTILETRAVEL.ogg" id="3_1sxke"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_nsnf1"]
|
|
||||||
script = ExtResource("2_c6b2i")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 1
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_okqig"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_okqig"]
|
||||||
atlas = ExtResource("2_nsnf1")
|
atlas = ExtResource("2_nsnf1")
|
||||||
region = Rect2(256, 0, 256, 256)
|
region = Rect2(256, 0, 256, 256)
|
||||||
@@ -957,8 +950,7 @@ _data = {
|
|||||||
|
|
||||||
[node name="Projectile3" type="Node3D"]
|
[node name="Projectile3" type="Node3D"]
|
||||||
transform = Transform3D(-0.529919, 0, -0.848048, 0, 1, 0, 0.848048, 0, -0.529919, 0, 0, 0)
|
transform = Transform3D(-0.529919, 0, -0.848048, 0, 1, 0, 0.848048, 0, -0.529919, 0, 0, 0)
|
||||||
script = ExtResource("1_c6b2i")
|
script = ExtResource("1_i8gam")
|
||||||
AttackData = SubResource("Resource_nsnf1")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ radius = 1.0
|
|||||||
radius = 2.04204
|
radius = 2.04204
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_c82i6"]
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_c82i6"]
|
||||||
radius = 2.5
|
radius = 3.2168
|
||||||
|
|
||||||
[node name="Palan" type="CharacterBody3D" groups=["enemy"]]
|
[node name="Palan" type="CharacterBody3D" groups=["enemy"]]
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
@@ -34,12 +34,12 @@ script = ExtResource("1_2upgt")
|
|||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.51919, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.93241, 0)
|
||||||
shape = SubResource("CapsuleShape3D_cwfph")
|
shape = SubResource("CapsuleShape3D_cwfph")
|
||||||
|
|
||||||
[node name="LineOfSight" type="Area3D" parent="."]
|
[node name="LineOfSight" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.51919, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.93241, 0)
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 2
|
collision_mask = 2
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ target_position = Vector3(0, 0, -5)
|
|||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
|
|
||||||
[node name="Collision" type="Area3D" parent="."]
|
[node name="Collision" type="Area3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.51919, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.93241, 0)
|
||||||
collision_layer = 2048
|
collision_layer = 2048
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.00132132, 0)
|
|||||||
|
|
||||||
[node name="PlayerDetector" type="Area3D" parent="."]
|
[node name="PlayerDetector" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.51919, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.93241, 0)
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 34
|
collision_mask = 34
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ collision_mask = 34
|
|||||||
shape = SubResource("CylinderShape3D_c82i6")
|
shape = SubResource("CylinderShape3D_c82i6")
|
||||||
|
|
||||||
[node name="Components" type="Node3D" parent="."]
|
[node name="Components" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.51919, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.93241, 0)
|
||||||
|
|
||||||
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_3ogbp")]
|
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_3ogbp")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@@ -94,7 +94,7 @@ avoidance_enabled = true
|
|||||||
radius = 1.0
|
radius = 1.0
|
||||||
|
|
||||||
[node name="HitSounds" type="Node3D" parent="."]
|
[node name="HitSounds" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.51919, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.93241, 0)
|
||||||
|
|
||||||
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=324 format=3 uid="uid://cuar5bbhxie4r"]
|
[gd_scene load_steps=327 format=3 uid="uid://cuar5bbhxie4r"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_yke7o"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_yke7o"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cob5mo4lrbkrp" path="res://src/enemy/enemy_types/11. Palan/animations/B/frame_000_delay-0.01s.png" id="2_lf0wi"]
|
[ext_resource type="Texture2D" uid="uid://cob5mo4lrbkrp" path="res://src/enemy/enemy_types/11. Palan/animations/B/frame_000_delay-0.01s.png" id="2_lf0wi"]
|
||||||
@@ -211,6 +211,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://bn83xiolaxr6j" path="res://src/vfx/Enemy/PALANQUIN ATTACK 1.png" id="208_1bumx"]
|
[ext_resource type="Texture2D" uid="uid://bn83xiolaxr6j" path="res://src/vfx/Enemy/PALANQUIN ATTACK 1.png" id="208_1bumx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dmyi1egj1veaw" path="res://src/enemy/enemy_types/11. Palan/PalanProjectile1.tscn" id="210_lid5r"]
|
[ext_resource type="PackedScene" uid="uid://dmyi1egj1veaw" path="res://src/enemy/enemy_types/11. Palan/PalanProjectile1.tscn" id="210_lid5r"]
|
||||||
[ext_resource type="PackedScene" uid="uid://diwcxxt650jtp" path="res://src/enemy/enemy_types/11. Palan/PalanProjectile2.tscn" id="211_au0i1"]
|
[ext_resource type="PackedScene" uid="uid://diwcxxt650jtp" path="res://src/enemy/enemy_types/11. Palan/PalanProjectile2.tscn" id="211_au0i1"]
|
||||||
|
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="211_jbc40"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="212_lid5r"]
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="212_lid5r"]
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
|
||||||
@@ -1860,25 +1861,33 @@ tracks/3/keys = {
|
|||||||
"times": PackedFloat32Array(0.333333)
|
"times": PackedFloat32Array(0.333333)
|
||||||
}
|
}
|
||||||
tracks/3/use_blend = true
|
tracks/3/use_blend = true
|
||||||
tracks/4/type = "animation"
|
tracks/4/type = "method"
|
||||||
tracks/4/imported = false
|
tracks/4/imported = false
|
||||||
tracks/4/enabled = true
|
tracks/4/enabled = true
|
||||||
tracks/4/path = NodePath("Projectile1/Bullet/AnimationPlayer")
|
tracks/4/path = NodePath("Projectile1")
|
||||||
tracks/4/interp = 1
|
tracks/4/interp = 1
|
||||||
tracks/4/loop_wrap = true
|
tracks/4/loop_wrap = true
|
||||||
tracks/4/keys = {
|
tracks/4/keys = {
|
||||||
"clips": PackedStringArray("Fire"),
|
"times": PackedFloat32Array(0.333333),
|
||||||
"times": PackedFloat32Array(0.333333)
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"Fire"
|
||||||
|
}]
|
||||||
}
|
}
|
||||||
tracks/5/type = "animation"
|
tracks/5/type = "method"
|
||||||
tracks/5/imported = false
|
tracks/5/imported = false
|
||||||
tracks/5/enabled = true
|
tracks/5/enabled = true
|
||||||
tracks/5/path = NodePath("Projectile2/Bullet/AnimationPlayer")
|
tracks/5/path = NodePath("Projectile2")
|
||||||
tracks/5/interp = 1
|
tracks/5/interp = 1
|
||||||
tracks/5/loop_wrap = true
|
tracks/5/loop_wrap = true
|
||||||
tracks/5/keys = {
|
tracks/5/keys = {
|
||||||
"clips": PackedStringArray("Fire"),
|
"times": PackedFloat32Array(0.833333),
|
||||||
"times": PackedFloat32Array(0.833333)
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"Fire"
|
||||||
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_r6aec"]
|
[sub_resource type="Animation" id="Animation_r6aec"]
|
||||||
@@ -2365,6 +2374,18 @@ states/Walking/position = Vector2(705, 100)
|
|||||||
transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_0yqqu"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_r6aec"), "Secondary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_lid5r"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_au0i1"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_jbc40"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_0qt6f"), "Idle", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_2bn25"), "Walking", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_h2ml5"), "Walking", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_uma8i")]
|
transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_0yqqu"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_r6aec"), "Secondary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_lid5r"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_au0i1"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_jbc40"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_0qt6f"), "Idle", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_2bn25"), "Walking", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_h2ml5"), "Walking", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_uma8i")]
|
||||||
graph_offset = Vector2(-36, 110)
|
graph_offset = Vector2(-36, 110)
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_0qt6f"]
|
||||||
|
script = ExtResource("211_jbc40")
|
||||||
|
Damage = 10
|
||||||
|
ElementType = 0
|
||||||
|
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_2bn25"]
|
||||||
|
script = ExtResource("211_jbc40")
|
||||||
|
Damage = 10
|
||||||
|
ElementType = 0
|
||||||
|
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
||||||
|
|
||||||
[node name="EnemyModelView" type="Node3D"]
|
[node name="EnemyModelView" type="Node3D"]
|
||||||
script = ExtResource("1_yke7o")
|
script = ExtResource("1_yke7o")
|
||||||
|
|
||||||
@@ -2404,7 +2425,8 @@ libraries = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="Sunblast" type="AnimatedSprite3D" parent="Sprite3D/AnimationPlayer2"]
|
[node name="Sunblast" type="AnimatedSprite3D" parent="Sprite3D/AnimationPlayer2"]
|
||||||
transform = Transform3D(0.335, 0, 0, 0, 0.335, 0, 0, 0, 0.335, -0.546079, 0.441674, 0)
|
transform = Transform3D(0.335, 0, 0, 0, 0.335, 0, 0, 0, 0.335, -0.546079, 0.441674, 0.207245)
|
||||||
|
offset = Vector2(150, 400)
|
||||||
sprite_frames = SubResource("SpriteFrames_skutu")
|
sprite_frames = SubResource("SpriteFrames_skutu")
|
||||||
frame = 15
|
frame = 15
|
||||||
|
|
||||||
@@ -2445,8 +2467,11 @@ bus = &"SFX"
|
|||||||
|
|
||||||
[node name="Projectile1" parent="." instance=ExtResource("210_lid5r")]
|
[node name="Projectile1" parent="." instance=ExtResource("210_lid5r")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55261, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55261, 0)
|
||||||
|
AttackData = SubResource("Resource_0qt6f")
|
||||||
|
|
||||||
[node name="Projectile2" parent="." instance=ExtResource("211_au0i1")]
|
[node name="Projectile2" parent="." instance=ExtResource("211_au0i1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.553, 0)
|
||||||
|
AttackData = SubResource("Resource_2bn25")
|
||||||
|
|
||||||
[node name="WalkSFX" type="AudioStreamPlayer3D" parent="."]
|
[node name="WalkSFX" type="AudioStreamPlayer3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
[gd_scene load_steps=69 format=3 uid="uid://dmyi1egj1veaw"]
|
[gd_scene load_steps=67 format=3 uid="uid://dmyi1egj1veaw"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_mm1vd"]
|
[ext_resource type="Script" uid="uid://bbvi33wy7w7d5" path="res://src/system/EnemyProjectile.cs" id="1_mm1vd"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_hcom0"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dy8vmgvihf313" path="res://src/vfx/Enemy/sunlance.png" id="2_te66n"]
|
[ext_resource type="Texture2D" uid="uid://dy8vmgvihf313" path="res://src/vfx/Enemy/sunlance.png" id="2_te66n"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_r600j"]
|
|
||||||
script = ExtResource("2_hcom0")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 0
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_lid5r"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_lid5r"]
|
||||||
atlas = ExtResource("2_te66n")
|
atlas = ExtResource("2_te66n")
|
||||||
region = Rect2(512, 0, 512, 512)
|
region = Rect2(512, 0, 512, 512)
|
||||||
@@ -474,6 +467,17 @@ tracks/2/keys = {
|
|||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [false, true]
|
"values": [false, true]
|
||||||
}
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("../..")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(),
|
||||||
|
"transitions": PackedFloat32Array(),
|
||||||
|
"values": []
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_8qeb2"]
|
[sub_resource type="Animation" id="Animation_8qeb2"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
@@ -510,7 +514,6 @@ _data = {
|
|||||||
|
|
||||||
[node name="Projectile1" type="Node3D"]
|
[node name="Projectile1" type="Node3D"]
|
||||||
script = ExtResource("1_mm1vd")
|
script = ExtResource("1_mm1vd")
|
||||||
AttackData = SubResource("Resource_r600j")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -542,6 +545,7 @@ unique_name_in_owner = true
|
|||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 64
|
collision_mask = 64
|
||||||
monitoring = false
|
monitoring = false
|
||||||
|
monitorable = false
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bullet/ProjectileHitbox"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bullet/ProjectileHitbox"]
|
||||||
shape = SubResource("SphereShape3D_kct8n")
|
shape = SubResource("SphereShape3D_kct8n")
|
||||||
|
|||||||
@@ -1,14 +1,7 @@
|
|||||||
[gd_scene load_steps=69 format=3 uid="uid://diwcxxt650jtp"]
|
[gd_scene load_steps=67 format=3 uid="uid://diwcxxt650jtp"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_k72x7"]
|
[ext_resource type="Script" uid="uid://bbvi33wy7w7d5" path="res://src/system/EnemyProjectile.cs" id="1_k72x7"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dy8vmgvihf313" path="res://src/vfx/Enemy/sunlance.png" id="2_aistn"]
|
[ext_resource type="Texture2D" uid="uid://dy8vmgvihf313" path="res://src/vfx/Enemy/sunlance.png" id="2_aistn"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_xmeva"]
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_p6eoq"]
|
|
||||||
script = ExtResource("2_xmeva")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 0
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_lid5r"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_lid5r"]
|
||||||
atlas = ExtResource("2_aistn")
|
atlas = ExtResource("2_aistn")
|
||||||
@@ -435,25 +428,13 @@ animations = [{
|
|||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_xrn7e"]
|
[sub_resource type="Animation" id="Animation_xrn7e"]
|
||||||
resource_name = "fire"
|
resource_name = "fire"
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "audio"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/path = NodePath("..:position")
|
tracks/0/path = NodePath("../AudioStreamPlayer3D")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.1, 1),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(0, 0, 0), Vector3(0, 0, 1.4), Vector3(0, 0, 35)]
|
|
||||||
}
|
|
||||||
tracks/1/type = "audio"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath("../AudioStreamPlayer3D")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"clips": [{
|
"clips": [{
|
||||||
"end_offset": 0.0,
|
"end_offset": 0.0,
|
||||||
"start_offset": 0.0,
|
"start_offset": 0.0,
|
||||||
@@ -461,34 +442,7 @@ tracks/1/keys = {
|
|||||||
}],
|
}],
|
||||||
"times": PackedFloat32Array(0.0333333)
|
"times": PackedFloat32Array(0.0333333)
|
||||||
}
|
}
|
||||||
tracks/1/use_blend = true
|
tracks/0/use_blend = true
|
||||||
tracks/2/type = "value"
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/path = NodePath(".:visible")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"times": PackedFloat32Array(0, 0.0333333, 1),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1),
|
|
||||||
"update": 1,
|
|
||||||
"values": [false, true, false]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_8qeb2"]
|
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("..:position")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(0, 0, 0)]
|
|
||||||
}
|
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
@@ -496,6 +450,33 @@ tracks/1/path = NodePath(".:visible")
|
|||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.0333333, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath(".:position")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.0333333, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0), Vector3(0, 0, 35)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_8qeb2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:visible")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 1,
|
"update": 1,
|
||||||
@@ -510,9 +491,9 @@ _data = {
|
|||||||
|
|
||||||
[node name="Projectile2" type="Node3D"]
|
[node name="Projectile2" type="Node3D"]
|
||||||
script = ExtResource("1_k72x7")
|
script = ExtResource("1_k72x7")
|
||||||
AttackData = SubResource("Resource_p6eoq")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 35)
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="AnimatedSprite3D2" type="AnimatedSprite3D" parent="Bullet"]
|
[node name="AnimatedSprite3D2" type="AnimatedSprite3D" parent="Bullet"]
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_gxnga"]
|
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_gxnga"]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
||||||
radius = 0.997878
|
radius = 1.6
|
||||||
height = 2.02807
|
height = 3.21239
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
|
||||||
height = 5.0
|
height = 5.0
|
||||||
@@ -33,12 +33,12 @@ script = ExtResource("1_8b86o")
|
|||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.82091, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.09575, 0)
|
||||||
shape = SubResource("CapsuleShape3D_cwfph")
|
shape = SubResource("CapsuleShape3D_cwfph")
|
||||||
|
|
||||||
[node name="LineOfSight" type="Area3D" parent="."]
|
[node name="LineOfSight" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.82091, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.09575, 0)
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 2
|
collision_mask = 2
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ target_position = Vector3(0, 0, -5)
|
|||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
|
|
||||||
[node name="Collision" type="Area3D" parent="."]
|
[node name="Collision" type="Area3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.82091, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09575, 0)
|
||||||
collision_layer = 2048
|
collision_layer = 2048
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0124374, 0)
|
|||||||
|
|
||||||
[node name="PlayerDetector" type="Area3D" parent="."]
|
[node name="PlayerDetector" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.82091, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09575, 0)
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 34
|
collision_mask = 34
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ collision_mask = 34
|
|||||||
shape = SubResource("CylinderShape3D_gxowl")
|
shape = SubResource("CylinderShape3D_gxowl")
|
||||||
|
|
||||||
[node name="Components" type="Node3D" parent="."]
|
[node name="Components" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.82091, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09575, 0)
|
||||||
|
|
||||||
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_5pbfd")]
|
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_5pbfd")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@@ -93,7 +93,7 @@ avoidance_enabled = true
|
|||||||
radius = 1.0
|
radius = 1.0
|
||||||
|
|
||||||
[node name="HitSounds" type="Node3D" parent="."]
|
[node name="HitSounds" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.82091, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09575, 0)
|
||||||
|
|
||||||
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ public class ItemDatabase
|
|||||||
|
|
||||||
var weights = itemsToSelectFrom.Select(x => x.SpawnRate).ToArray();
|
var weights = itemsToSelectFrom.Select(x => x.SpawnRate).ToArray();
|
||||||
var selectedItem = itemsToSelectFrom.ToArray()[rng.RandWeighted(weights)];
|
var selectedItem = itemsToSelectFrom.ToArray()[rng.RandWeighted(weights)];
|
||||||
|
|
||||||
return selectedItem;
|
return selectedItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
[gd_scene load_steps=64 format=3 uid="uid://ddcw0xw7pxk8r"]
|
[gd_scene load_steps=62 format=3 uid="uid://ddcw0xw7pxk8r"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_xt24t"]
|
[ext_resource type="Script" uid="uid://cytefxt38q6r7" path="res://src/system/PlayerProjectile.cs" id="1_titwo"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_yf47k"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ddmjhevb5ksl" path="res://src/vfx/Items Etc/geomantic_reactor_AIR.png" id="3_c0ubq"]
|
[ext_resource type="Texture2D" uid="uid://ddmjhevb5ksl" path="res://src/vfx/Items Etc/geomantic_reactor_AIR.png" id="3_c0ubq"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_kcnxw"]
|
|
||||||
script = ExtResource("2_yf47k")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 1
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_wsimg"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_wsimg"]
|
||||||
atlas = ExtResource("3_c0ubq")
|
atlas = ExtResource("3_c0ubq")
|
||||||
region = Rect2(0, 0, 512, 512)
|
region = Rect2(0, 0, 512, 512)
|
||||||
@@ -519,8 +512,7 @@ _data = {
|
|||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_xt24t"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_xt24t"]
|
||||||
|
|
||||||
[node name="AirReactor" type="Node3D"]
|
[node name="AirReactor" type="Node3D"]
|
||||||
script = ExtResource("1_xt24t")
|
script = ExtResource("1_titwo")
|
||||||
AttackData = SubResource("Resource_kcnxw")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
[gd_scene load_steps=68 format=3 uid="uid://bredkcfalakdp"]
|
[gd_scene load_steps=66 format=3 uid="uid://bredkcfalakdp"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_pk6yq"]
|
[ext_resource type="Script" uid="uid://cytefxt38q6r7" path="res://src/system/PlayerProjectile.cs" id="1_fhwm2"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_d874y"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://pirfu8nw05gk" path="res://src/vfx/Items Etc/geomantic reactor - fire.png" id="3_6hnq4"]
|
[ext_resource type="Texture2D" uid="uid://pirfu8nw05gk" path="res://src/vfx/Items Etc/geomantic reactor - fire.png" id="3_6hnq4"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_14f5p"]
|
|
||||||
script = ExtResource("2_d874y")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 4
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_na8n6"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_na8n6"]
|
||||||
atlas = ExtResource("3_6hnq4")
|
atlas = ExtResource("3_6hnq4")
|
||||||
region = Rect2(0, 0, 512, 512)
|
region = Rect2(0, 0, 512, 512)
|
||||||
@@ -550,8 +543,7 @@ _data = {
|
|||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_pk6yq"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_pk6yq"]
|
||||||
|
|
||||||
[node name="FireReactor" type="Node3D"]
|
[node name="FireReactor" type="Node3D"]
|
||||||
script = ExtResource("1_pk6yq")
|
script = ExtResource("1_fhwm2")
|
||||||
AttackData = SubResource("Resource_14f5p")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
||||||
|
|||||||
@@ -1,13 +1,6 @@
|
|||||||
[gd_scene load_steps=8 format=3 uid="uid://c4kc2vybdy5t"]
|
[gd_scene load_steps=6 format=3 uid="uid://c4kc2vybdy5t"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_7ykt2"]
|
[ext_resource type="Script" uid="uid://cytefxt38q6r7" path="res://src/system/PlayerProjectile.cs" id="1_bp1ct"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_3v8me"]
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_14f5p"]
|
|
||||||
script = ExtResource("2_3v8me")
|
|
||||||
Damage = 99
|
|
||||||
ElementType = 0
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_xrn7e"]
|
[sub_resource type="Animation" id="Animation_xrn7e"]
|
||||||
resource_name = "fire"
|
resource_name = "fire"
|
||||||
@@ -49,8 +42,7 @@ _data = {
|
|||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_kct8n"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_kct8n"]
|
||||||
|
|
||||||
[node name="Persuader" type="Node3D"]
|
[node name="Persuader" type="Node3D"]
|
||||||
script = ExtResource("1_7ykt2")
|
script = ExtResource("1_bp1ct")
|
||||||
AttackData = SubResource("Resource_14f5p")
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
[gd_scene load_steps=79 format=3 uid="uid://dluot8v3m0drs"]
|
[gd_scene load_steps=77 format=3 uid="uid://dluot8v3m0drs"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="1_n88a7"]
|
[ext_resource type="Script" uid="uid://cytefxt38q6r7" path="res://src/system/PlayerProjectile.cs" id="1_yb0m4"]
|
||||||
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_er0le"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dykncj5nomejo" path="res://src/vfx/Items Etc/GEOMANTIC_REACTOR_WATER.png" id="3_csu6k"]
|
[ext_resource type="Texture2D" uid="uid://dykncj5nomejo" path="res://src/vfx/Items Etc/GEOMANTIC_REACTOR_WATER.png" id="3_csu6k"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_k6pkx"]
|
|
||||||
script = ExtResource("2_er0le")
|
|
||||||
Damage = 10
|
|
||||||
ElementType = 3
|
|
||||||
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1yaxx"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_1yaxx"]
|
||||||
atlas = ExtResource("3_csu6k")
|
atlas = ExtResource("3_csu6k")
|
||||||
region = Rect2(0, 0, 512, 512)
|
region = Rect2(0, 0, 512, 512)
|
||||||
@@ -624,8 +617,7 @@ _data = {
|
|||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_n88a7"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_n88a7"]
|
||||||
|
|
||||||
[node name="WaterReactor" type="Node3D"]
|
[node name="WaterReactor" type="Node3D"]
|
||||||
script = ExtResource("1_n88a7")
|
script = ExtResource("1_yb0m4")
|
||||||
AttackData = SubResource("Resource_k6pkx")
|
|
||||||
|
|
||||||
[node name="Bullet" type="Node3D" parent="."]
|
[node name="Bullet" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
||||||
|
|||||||
@@ -16,6 +16,11 @@ public partial class Weapon : Node3D, IWeapon
|
|||||||
|
|
||||||
public SoundEffect SoundEffect => Stats.SoundEffect;
|
public SoundEffect SoundEffect => Stats.SoundEffect;
|
||||||
|
|
||||||
|
public Weapon()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
|
|||||||
@@ -24,19 +24,19 @@ public static class LayoutToScenePathConverter
|
|||||||
switch (floorType)
|
switch (floorType)
|
||||||
{
|
{
|
||||||
case SpecialFloorType.Overworld:
|
case SpecialFloorType.Overworld:
|
||||||
return path + files.Single(x => x.Contains("Overworld.tscn"));
|
return path + files.Single(x => x.EndsWith("Overworld.tscn"));
|
||||||
case SpecialFloorType.Altar:
|
case SpecialFloorType.Altar:
|
||||||
return path + files.Single(x => x.Contains("Altar.tscn"));
|
return path + files.Single(x => x.EndsWith("Altar.tscn"));
|
||||||
case SpecialFloorType.BossFloorA:
|
case SpecialFloorType.BossFloorA:
|
||||||
return path + files.Single(x => x.Contains("Boss Floor A.tscn"));
|
return path + files.Single(x => x.EndsWith("Boss Floor A.tscn"));
|
||||||
case SpecialFloorType.BossFloorB:
|
case SpecialFloorType.BossFloorB:
|
||||||
return path + files.Single(x => x.Contains("Boss Floor B.tscn"));
|
return path + files.Single(x => x.EndsWith("Boss Floor B.tscn"));
|
||||||
case SpecialFloorType.GoddessOfGuidanceFloor:
|
case SpecialFloorType.GoddessOfGuidanceFloor:
|
||||||
return path + files.Single(x => x.Contains("Goddess of Guidance's Room.tscn"));
|
return path + files.Single(x => x.EndsWith("Goddess of Guidance's Room.tscn"));
|
||||||
case SpecialFloorType.TrueGoddessOfGuidanceFloor:
|
case SpecialFloorType.TrueGoddessOfGuidanceFloor:
|
||||||
return path + files.Single(x => x.Contains("Goddess of Guidance's Room - True Form.tscn"));
|
return path + files.Single(x => x.EndsWith("Goddess of Guidance's Room - True Form.tscn"));
|
||||||
case SpecialFloorType.FinalFloor:
|
case SpecialFloorType.FinalFloor:
|
||||||
return path + files.Single(x => x.Contains("Final Floor.tscn"));
|
return path + files.Single(x => x.EndsWith("Final Floor.tscn"));
|
||||||
default:
|
default:
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -94,10 +94,10 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
|||||||
|
|
||||||
[Node] private ShakeCamera _camera3D { get; set; } = default!;
|
[Node] private ShakeCamera _camera3D { get; set; } = default!;
|
||||||
|
|
||||||
[Node] private Projectile FireReactor { get; set; } = default!;
|
[Node] private PlayerProjectile FireReactor { get; set; } = default!;
|
||||||
[Node] private Projectile AirReactor { get; set; } = default!;
|
[Node] private PlayerProjectile AirReactor { get; set; } = default!;
|
||||||
[Node] private Projectile WaterReactor { get; set; } = default!;
|
[Node] private PlayerProjectile WaterReactor { get; set; } = default!;
|
||||||
[Node] private Projectile PersuaderBullet { get; set; } = default!;
|
[Node] private PlayerProjectile PersuaderBullet { get; set; } = default!;
|
||||||
[Node] private Sprite2D PersuaderCrosshair { get; set; } = default!;
|
[Node] private Sprite2D PersuaderCrosshair { get; set; } = default!;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
77
Zennysoft.Game.Ma/src/system/EnemyProjectile.cs
Normal file
77
Zennysoft.Game.Ma/src/system/EnemyProjectile.cs
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
using Chickensoft.AutoInject;
|
||||||
|
using Chickensoft.Introspection;
|
||||||
|
using Godot;
|
||||||
|
using Zennysoft.Game.Ma;
|
||||||
|
using Zennysoft.Ma.Adapter;
|
||||||
|
using Zennysoft.Ma.Adapter.Entity;
|
||||||
|
|
||||||
|
[Meta(typeof(IAutoNode))]
|
||||||
|
public partial class EnemyProjectile : Node3D
|
||||||
|
{
|
||||||
|
public override void _Notification(int what) => this.Notify(what);
|
||||||
|
|
||||||
|
[Dependency] protected IMap _map => this.DependOn<IMap>();
|
||||||
|
|
||||||
|
[Dependency] protected IPlayer _player => this.DependOn<IPlayer>();
|
||||||
|
|
||||||
|
[Node] public Area3D ProjectileHitbox { get; set; }
|
||||||
|
|
||||||
|
[Node] public AnimationPlayer AnimationPlayer { get; set; }
|
||||||
|
|
||||||
|
[Export] public AttackDataResource AttackData { get; set; }
|
||||||
|
|
||||||
|
public void OnReady()
|
||||||
|
{
|
||||||
|
ProjectileHitbox.AreaEntered += Hitbox_AreaEntered;
|
||||||
|
ProjectileHitbox.BodyEntered += ProjectileHitbox_BodyEntered1;
|
||||||
|
ProjectileHitbox.BodyShapeEntered += ProjectileHitbox_BodyEntered;
|
||||||
|
AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished;
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AnimationPlayer_AnimationFinished(StringName animName)
|
||||||
|
{
|
||||||
|
if (animName != "Fire")
|
||||||
|
return;
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
||||||
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProjectileHitbox_BodyEntered1(Node3D body)
|
||||||
|
{
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
||||||
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProjectileHitbox_BodyEntered(Rid bodyRid, Node3D body, long bodyShapeIndex, long localShapeIndex)
|
||||||
|
{
|
||||||
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Fire()
|
||||||
|
{
|
||||||
|
if (AnimationPlayer.IsPlaying())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
GlobalBasis = GetOwner<IEnemyModelView>().GetOwner<IEnemy>().GlobalBasis;
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, true);
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, true);
|
||||||
|
AnimationPlayer.Play("Fire");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Hitbox_AreaEntered(Area3D area)
|
||||||
|
{
|
||||||
|
if (area.GetOwner() is IPlayer player)
|
||||||
|
player.TakeDamage(new AttackData(AttackData.Damage, AttackData.ElementType));
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
||||||
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
||||||
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Zennysoft.Game.Ma/src/system/EnemyProjectile.cs.uid
Normal file
1
Zennysoft.Game.Ma/src/system/EnemyProjectile.cs.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bbvi33wy7w7d5
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
using Chickensoft.AutoInject;
|
using Chickensoft.AutoInject;
|
||||||
using Chickensoft.Introspection;
|
using Chickensoft.Introspection;
|
||||||
using Godot;
|
using Godot;
|
||||||
using System;
|
|
||||||
using Zennysoft.Game.Ma;
|
using Zennysoft.Game.Ma;
|
||||||
using Zennysoft.Ma.Adapter;
|
using Zennysoft.Ma.Adapter;
|
||||||
using Zennysoft.Ma.Adapter.Entity;
|
using Zennysoft.Ma.Adapter.Entity;
|
||||||
|
|
||||||
[Meta(typeof(IAutoNode))]
|
[Meta(typeof(IAutoNode))]
|
||||||
public partial class Projectile : Node3D
|
public partial class PlayerProjectile : Node3D
|
||||||
{
|
{
|
||||||
public override void _Notification(int what) => this.Notify(what);
|
public override void _Notification(int what) => this.Notify(what);
|
||||||
|
|
||||||
@@ -27,13 +26,17 @@ public partial class Projectile : Node3D
|
|||||||
ProjectileHitbox.BodyEntered += ProjectileHitbox_BodyEntered1;
|
ProjectileHitbox.BodyEntered += ProjectileHitbox_BodyEntered1;
|
||||||
ProjectileHitbox.BodyShapeEntered += ProjectileHitbox_BodyEntered;
|
ProjectileHitbox.BodyShapeEntered += ProjectileHitbox_BodyEntered;
|
||||||
AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished;
|
AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished;
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AnimationPlayer_AnimationFinished(StringName animName)
|
private void AnimationPlayer_AnimationFinished(StringName animName)
|
||||||
{
|
{
|
||||||
|
if (animName != "Fire")
|
||||||
|
return;
|
||||||
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
||||||
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
||||||
AnimationPlayer.Stop();
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProjectileHitbox_BodyEntered1(Node3D body)
|
private void ProjectileHitbox_BodyEntered1(Node3D body)
|
||||||
@@ -41,11 +44,13 @@ public partial class Projectile : Node3D
|
|||||||
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
||||||
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
||||||
AnimationPlayer.Stop();
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProjectileHitbox_BodyEntered(Rid bodyRid, Node3D body, long bodyShapeIndex, long localShapeIndex)
|
private void ProjectileHitbox_BodyEntered(Rid bodyRid, Node3D body, long bodyShapeIndex, long localShapeIndex)
|
||||||
{
|
{
|
||||||
AnimationPlayer.Stop();
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Fire()
|
public bool Fire()
|
||||||
@@ -74,5 +79,6 @@ public partial class Projectile : Node3D
|
|||||||
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitorable, false);
|
||||||
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
ProjectileHitbox.SetDeferred(Area3D.PropertyName.Monitoring, false);
|
||||||
AnimationPlayer.Stop();
|
AnimationPlayer.Stop();
|
||||||
|
AnimationPlayer.Play("RESET");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user