Release Candidate v0.1

This commit is contained in:
2023-09-14 19:13:54 -07:00
parent 54b044142d
commit 7bf559a800
44 changed files with 1257 additions and 476 deletions

View File

@@ -9,6 +9,8 @@ public partial class FireAtPlayer : Timer
private PackedScene _fireProjectile;
[Export]
private double _distanceToPlayer = 3;
[Export]
private AudioStreamPlayer _audioPlayer;
public void OnFireAtPlayer()
{
@@ -23,6 +25,8 @@ public partial class FireAtPlayer : Timer
projectile.Rotation = new Vector3(0, _enemy.Rotation.Y, 0);
projectile.Position = _enemy.Position;
AddChild(projectile);
_audioPlayer.Play();
}
}
}

View File

@@ -0,0 +1,19 @@
using Godot;
public partial class BossAttack : Node3D
{
public void OnOrbHit(Node node)
{
if (node is Character character && character.HasMethod(Character.MethodName.OnHit))
{
GD.Print("Player hit: " + character.Name);
character.Call(Character.MethodName.OnHit, node);
Delete();
}
}
public void Delete()
{
QueueFree();
}
}

View File

@@ -0,0 +1,574 @@
[gd_scene load_steps=9 format=3 uid="uid://b75khmojjbq4f"]
[ext_resource type="Script" path="res://Enemies/Attacks/GodCircuitAttacks/BossAttack.cs" id="1_xty5l"]
[ext_resource type="Texture2D" uid="uid://cpvq0rru8k7l5" path="res://Textures/Projectiles/Layer 3.png" id="2_kceeh"]
[ext_resource type="Texture2D" uid="uid://x8f4g1rccvud" path="res://Textures/Projectiles/Layer 4.png" id="3_1s7oj"]
[ext_resource type="AudioStream" uid="uid://cfj82os5p8i4p" path="res://Audio/SFX/shooting.wav" id="4_h0ftg"]
[sub_resource type="Animation" id="Animation_8rgmo"]
resource_name = "PyramidAttack"
length = 8.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MainOrb/CollisionShape3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 1, 0), Vector3(0, 1, 3)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainOrb/CollisionShape3D/Sprite3D:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 6.26573, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Triangle1/CollisionShape3D:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 3, 8),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -2.01695), Vector3(0, 0, -2.01695), Vector3(15, 0, -2.017)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Triangle1:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Triangle2:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Triangle2/CollisionShape3D:position")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(3, 8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0.0265542, 0, -2.01695), Vector3(0.027, 0, -15)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Triangle3:visible")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Triangle3/CollisionShape3D:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(3, 8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, -2.01695), Vector3(-15, 0, -2.017)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Triangle4:visible")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Triangle4/CollisionShape3D:position")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(3, 8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, -2.01695), Vector3(0, 0, 13)]
}
tracks/10/type = "method"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("MainOrb")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(2.9),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"Delete"
}]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Triangle1:monitoring")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0, 3.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Triangle1:monitorable")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0, 3.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Triangle2:monitoring")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0, 3.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Triangle2:monitorable")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0, 3.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("Triangle3:monitoring")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = {
"times": PackedFloat32Array(0, 3.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/16/type = "value"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/path = NodePath("Triangle3:monitorable")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/17/type = "value"
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/path = NodePath("Triangle4:monitoring")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/keys = {
"times": PackedFloat32Array(0, 3.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/18/type = "value"
tracks/18/imported = false
tracks/18/enabled = true
tracks/18/path = NodePath("Triangle4:monitorable")
tracks/18/interp = 1
tracks/18/loop_wrap = true
tracks/18/keys = {
"times": PackedFloat32Array(0, 3.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
[sub_resource type="Animation" id="Animation_js2kt"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MainOrb/CollisionShape3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainOrb/CollisionShape3D/Sprite3D:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 6.26573, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Triangle1/CollisionShape3D:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -2.01695)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Triangle1:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Triangle2:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Triangle2/CollisionShape3D:position")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.0265542, 0, -2.01695)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Triangle3:visible")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Triangle3/CollisionShape3D:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -2.01695)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Triangle4:visible")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Triangle4/CollisionShape3D:position")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -2.01695)]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Triangle1:monitoring")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Triangle1:monitorable")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Triangle2:monitoring")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Triangle2:monitorable")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Triangle3:monitoring")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("Triangle3:monitorable")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/16/type = "value"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/path = NodePath("Triangle4:monitoring")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/17/type = "value"
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/path = NodePath("Triangle4:monitorable")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ht5d6"]
_data = {
"PyramidAttack": SubResource("Animation_8rgmo"),
"RESET": SubResource("Animation_js2kt")
}
[sub_resource type="CylinderShape3D" id="CylinderShape3D_uh2on"]
radius = 0.266805
[node name="HedronAttack" type="Node3D"]
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "PyramidAttack"
libraries = {
"": SubResource("AnimationLibrary_ht5d6")
}
[node name="MainOrb" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.710665)
collision_layer = 0
collision_mask = 2
script = ExtResource("1_xty5l")
[node name="CollisionShape3D" type="CollisionShape3D" parent="MainOrb"]
transform = Transform3D(0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, 0, 1, 0)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="MainOrb/CollisionShape3D"]
transform = Transform3D(0.499924, 0, -0.00872726, 0, 0.5, 0, 0.00872726, 0, 0.499924, 0, 0, 0)
axis = 1
texture = ExtResource("2_kceeh")
[node name="Triangle1" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.234726, 1, 5.74115)
visible = false
collision_layer = 0
collision_mask = 2
monitoring = false
monitorable = false
script = ExtResource("1_xty5l")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Triangle1"]
transform = Transform3D(-0.107302, 0, -0.590327, 0, 0.6, 0, 0.590327, 0, -0.107302, 0, 0, -2.01695)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="Triangle1/CollisionShape3D"]
transform = Transform3D(0.499924, 0, -0.00872631, 0, 0.5, 0, 0.00872631, 0, 0.499924, 0, 0, 0)
axis = 1
texture = ExtResource("3_1s7oj")
[node name="Triangle2" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 5.48792)
visible = false
collision_layer = 0
collision_mask = 2
monitoring = false
monitorable = false
script = ExtResource("1_xty5l")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Triangle2"]
transform = Transform3D(0.592349, 0, -0.0955152, 0, 0.6, 0, 0.0955152, 0, 0.592349, 0.0265542, 0, -2.01695)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="Triangle2/CollisionShape3D"]
transform = Transform3D(0.499924, 0, -0.0087263, 0, 0.5, 0, 0.0087263, 0, 0.499924, 0, 0, 0)
axis = 1
texture = ExtResource("3_1s7oj")
[node name="Triangle3" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.230226, 1, 5.64647)
visible = false
collision_layer = 0
collision_mask = 2
monitoring = false
monitorable = false
script = ExtResource("1_xty5l")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Triangle3"]
transform = Transform3D(0.119939, 0, 0.58789, 0, 0.6, 0, -0.58789, 0, 0.119939, 0, 0, -2.01695)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="Triangle3/CollisionShape3D"]
transform = Transform3D(0.499924, 0, -0.0087263, 0, 0.5, 0, 0.0087263, 0, 0.499924, 0, 0, 0)
axis = 1
texture = ExtResource("3_1s7oj")
[node name="Triangle4" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 5.94482)
visible = false
collision_layer = 0
collision_mask = 2
monitoring = false
monitorable = false
script = ExtResource("1_xty5l")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Triangle4"]
transform = Transform3D(-0.599587, 0, 0.0222583, 0, 0.6, 0, -0.0222583, 0, -0.599587, 0, 0, -2.01695)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="Triangle4/CollisionShape3D"]
transform = Transform3D(0.499924, 0, -0.0087263, 0, 0.5, 0, 0.0087263, 0, 0.499924, 0, 0, 0)
axis = 1
texture = ExtResource("3_1s7oj")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_h0ftg")
volume_db = 10.0
autoplay = true
[connection signal="body_entered" from="MainOrb" to="MainOrb" method="OnOrbHit"]
[connection signal="body_entered" from="Triangle1" to="Triangle1" method="OnOrbHit"]
[connection signal="body_entered" from="Triangle2" to="Triangle2" method="OnOrbHit"]
[connection signal="body_entered" from="Triangle3" to="Triangle3" method="OnOrbHit"]
[connection signal="body_entered" from="Triangle4" to="Triangle4" method="OnOrbHit"]

View File

@@ -1,22 +1,27 @@
[gd_scene load_steps=4 format=3 uid="uid://uwia12i7yykb"]
[gd_scene load_steps=6 format=3 uid="uid://uwia12i7yykb"]
[ext_resource type="Script" path="res://Player/Base/Projectile.cs" id="1_4uor3"]
[ext_resource type="Texture2D" uid="uid://bunon01jmxhbx" path="res://Textures/Projectiles/Layer 2.png" id="1_a70u8"]
[ext_resource type="AudioStream" uid="uid://cgun34h06gvpv" path="res://Audio/SFX/misc1.wav" id="3_vxciy"]
[sub_resource type="Curve3D" id="Curve3D_n05rs"]
_data = {
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, -2, 1, 2, 0, 0, 0, 0, 0, 0, -2, 1, 4, 0, 0, 0, 0, 0, 0, 2, 1, 4, 0, 0, 0, 0, 0, 0, 2, 1, 6),
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0)
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, -2, 1, 2, 0, 0, 0, 0, 0, 0, -2, 1, 3, 0, 0, 0, 0, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 0, 2, 1, 4, 0, 0, 0, 0, 0, 0, -4, 1, 4, 0, 0, 0, 0, 0, 0, -4, 1, 5, 0, 0, 0, 0, 0, 0, 1, 1, 5, 0, 0, 0, 0, 0, 0, 1, 1, 10),
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
}
point_count = 6
point_count = 10
[sub_resource type="BoxShape3D" id="BoxShape3D_g5fdd"]
size = Vector3(0.553759, 1.22067, 1.58866)
[node name="Path3D" type="Path3D"]
curve = SubResource("Curve3D_n05rs")
script = ExtResource("1_4uor3")
_projectileSpeed = 5.0
[node name="PathFollow3D" type="PathFollow3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1, 0)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 1, 1, 10)
progress = 27.0
[node name="RigidBody3D" type="RigidBody3D" parent="PathFollow3D"]
collision_layer = 0
@@ -29,9 +34,16 @@ can_sleep = false
freeze_mode = 1
[node name="CollisionShape3D" type="CollisionShape3D" parent="PathFollow3D/RigidBody3D"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
shape = SubResource("BoxShape3D_g5fdd")
[node name="Sprite3D" type="Sprite3D" parent="PathFollow3D/RigidBody3D/CollisionShape3D"]
transform = Transform3D(-2.18557e-08, 0, 0.5, 0, 0.5, 0, -0.5, 0, -2.18557e-08, 0, 0, 0)
axis = 1
texture = ExtResource("1_a70u8")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_vxciy")
autoplay = true
[connection signal="body_entered" from="PathFollow3D/RigidBody3D" to="." method="OnPlayerHit"]

View File

@@ -1,46 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://cerac64r5jewa"]
[ext_resource type="Script" path="res://Player/Base/Projectile.cs" id="1_cveok"]
[ext_resource type="Texture2D" uid="uid://cpvq0rru8k7l5" path="res://Textures/Projectiles/Layer 3.png" id="1_p5wrg"]
[sub_resource type="Curve3D" id="Curve3D_h1xf0"]
_data = {
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 0, 0, 0, 0, -2, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0),
"tilts": PackedFloat32Array(0, 0, 0, 0, 0)
}
point_count = 5
[sub_resource type="CylinderShape3D" id="CylinderShape3D_o3ugd"]
radius = 0.25
[node name="Orb Attack" type="Path3D"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -3, 0, 1.5)
curve = SubResource("Curve3D_h1xf0")
script = ExtResource("1_cveok")
_projectileSpeed = 1.5
[node name="PathFollow3D" type="PathFollow3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
rotation_mode = 0
[node name="RigidBody3D" type="RigidBody3D" parent="PathFollow3D"]
transform = Transform3D(1, 0, 7.10543e-15, 0, 1, 0, -7.10543e-15, 0, 1, 0, 0, 0)
collision_layer = 0
collision_mask = 2
continuous_cd = true
max_contacts_reported = 5
contact_monitor = true
can_sleep = false
freeze = true
freeze_mode = 1
[node name="CollisionShape3D" type="CollisionShape3D" parent="PathFollow3D/RigidBody3D"]
transform = Transform3D(1, 0, 7.10543e-15, 0, 1, 0, -7.10543e-15, 0, 1, 0, 0, 0)
shape = SubResource("CylinderShape3D_o3ugd")
[node name="Sprite3D" type="Sprite3D" parent="PathFollow3D/RigidBody3D/CollisionShape3D"]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0)
axis = 1
texture = ExtResource("1_p5wrg")
[connection signal="body_entered" from="PathFollow3D/RigidBody3D" to="." method="OnPlayerHit"]

View File

@@ -5,7 +5,9 @@ public partial class PyramidAttack : Node3D
[Export]
private AnimationPlayer _animationPlayer;
public override void _Ready()
private bool isDeleted = false;
public override void _EnterTree()
{
_animationPlayer.AnimationFinished += Delete;
}
@@ -20,10 +22,13 @@ public partial class PyramidAttack : Node3D
}
QueueFree();
isDeleted = true;
}
public void Delete(StringName name)
{
QueueFree();
if (!isDeleted)
QueueFree();
isDeleted = true;
}
}

View File

@@ -0,0 +1,276 @@
[gd_scene load_steps=8 format=3 uid="uid://cql4evq5281n4"]
[ext_resource type="Script" path="res://Enemies/Attacks/GodCircuitAttacks/PyramidAttack.cs" id="1_yfldc"]
[ext_resource type="Texture2D" uid="uid://531b68bg4tn6" path="res://Textures/Projectiles/Layer 1.png" id="2_lufet"]
[ext_resource type="AudioStream" uid="uid://cgun34h06gvpv" path="res://Audio/SFX/misc1.wav" id="3_6crjs"]
[sub_resource type="Animation" id="Animation_8rgmo"]
resource_name = "PyramidAttack"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Center/CollisionShape3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 1, 0), Vector3(0, 1, 3)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Center/CollisionShape3D:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0.3, 0.3, 0.3), Vector3(1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Left/CollisionShape3D:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 1, 0), Vector3(0, 1, 3)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Left/CollisionShape3D:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0.3, 0.3, 0.3), Vector3(1, 1, 1)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Right/CollisionShape3D:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 1, 0), Vector3(0, 1, 3)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Right/CollisionShape3D:scale")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0.3, 0, 0), Vector3(1, 1, 1)]
}
tracks/6/type = "audio"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("AudioStreamPlayer")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"clips": [],
"times": PackedFloat32Array()
}
tracks/6/use_blend = true
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("AudioStreamPlayer:playing")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 1.9),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="Animation" id="Animation_js2kt"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Center/CollisionShape3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Center/CollisionShape3D:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Left/CollisionShape3D:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Left/CollisionShape3D:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1, 1, 1)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Right/CollisionShape3D:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 1, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Right/CollisionShape3D:scale")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1, 1, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("AudioStreamPlayer:playing")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ht5d6"]
_data = {
"PyramidAttack": SubResource("Animation_8rgmo"),
"RESET": SubResource("Animation_js2kt")
}
[sub_resource type="CylinderShape3D" id="CylinderShape3D_uh2on"]
radius = 0.266805
[node name="PyramidAttack" type="Node3D" node_paths=PackedStringArray("_animationPlayer")]
script = ExtResource("1_yfldc")
_animationPlayer = NodePath("AnimationPlayer")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "PyramidAttack"
libraries = {
"": SubResource("AnimationLibrary_ht5d6")
}
[node name="Center" type="RigidBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.710665)
collision_layer = 0
collision_mask = 2
gravity_scale = 0.0
continuous_cd = true
max_contacts_reported = 5
contact_monitor = true
can_sleep = false
freeze_mode = 1
[node name="CollisionShape3D" type="CollisionShape3D" parent="Center"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="Center/CollisionShape3D"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
axis = 1
texture = ExtResource("2_lufet")
[node name="Left" type="RigidBody3D" parent="."]
transform = Transform3D(0.939692, 0, 0.34202, 0, 1, 0, -0.34202, 0, 0.939692, 0, 0, 0.710665)
collision_layer = 0
collision_mask = 2
gravity_scale = 0.0
continuous_cd = true
max_contacts_reported = 5
contact_monitor = true
can_sleep = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="Left"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="Left/CollisionShape3D"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
axis = 1
texture = ExtResource("2_lufet")
[node name="Right" type="RigidBody3D" parent="."]
transform = Transform3D(0.939692, 0, -0.34202, 0, 1, 0, 0.34202, 0, 0.939692, 0, 0, 0.710665)
collision_layer = 0
collision_mask = 2
gravity_scale = 0.0
continuous_cd = true
max_contacts_reported = 5
contact_monitor = true
can_sleep = false
freeze_mode = 1
[node name="CollisionShape3D" type="CollisionShape3D" parent="Right"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CylinderShape3D_uh2on")
[node name="Sprite3D" type="Sprite3D" parent="Right/CollisionShape3D"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
axis = 1
texture = ExtResource("2_lufet")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_6crjs")
[connection signal="body_entered" from="Center" to="." method="OnPlayerHit"]
[connection signal="body_entered" from="Left" to="." method="OnPlayerHit"]
[connection signal="body_entered" from="Right" to="." method="OnPlayerHit"]