|
@@ -1,12 +1,310 @@
|
|
|
-[gd_scene load_steps=6 format=2]
|
|
|
+[gd_scene load_steps=10 format=2]
|
|
|
|
|
|
[ext_resource path="res://icon.png" type="Texture" id=1]
|
|
|
[ext_resource path="res://Health.tscn" type="PackedScene" id=2]
|
|
|
[ext_resource path="res://enemy.gd" type="Script" id=3]
|
|
|
[ext_resource path="res://hitbox.tscn" type="PackedScene" id=4]
|
|
|
+[ext_resource path="res://meatspawn.gd" type="Script" id=5]
|
|
|
|
|
|
[sub_resource type="RectangleShape2D" id=1]
|
|
|
|
|
|
+[sub_resource type="Animation" id=2]
|
|
|
+length = 0.001
|
|
|
+tracks/0/type = "value"
|
|
|
+tracks/0/path = NodePath(".:speed")
|
|
|
+tracks/0/interp = 1
|
|
|
+tracks/0/loop_wrap = true
|
|
|
+tracks/0/imported = false
|
|
|
+tracks/0/enabled = true
|
|
|
+tracks/0/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ 150 ]
|
|
|
+}
|
|
|
+tracks/1/type = "value"
|
|
|
+tracks/1/path = NodePath(".:exppt")
|
|
|
+tracks/1/interp = 1
|
|
|
+tracks/1/loop_wrap = true
|
|
|
+tracks/1/imported = false
|
|
|
+tracks/1/enabled = true
|
|
|
+tracks/1/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ 15 ]
|
|
|
+}
|
|
|
+tracks/2/type = "value"
|
|
|
+tracks/2/path = NodePath(".:detectionzone")
|
|
|
+tracks/2/interp = 1
|
|
|
+tracks/2/loop_wrap = true
|
|
|
+tracks/2/imported = false
|
|
|
+tracks/2/enabled = true
|
|
|
+tracks/2/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ 256 ]
|
|
|
+}
|
|
|
+tracks/3/type = "value"
|
|
|
+tracks/3/path = NodePath(".:reactiontime")
|
|
|
+tracks/3/interp = 1
|
|
|
+tracks/3/loop_wrap = true
|
|
|
+tracks/3/imported = false
|
|
|
+tracks/3/enabled = true
|
|
|
+tracks/3/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ 1 ]
|
|
|
+}
|
|
|
+tracks/4/type = "value"
|
|
|
+tracks/4/path = NodePath(".:attackrange")
|
|
|
+tracks/4/interp = 1
|
|
|
+tracks/4/loop_wrap = true
|
|
|
+tracks/4/imported = false
|
|
|
+tracks/4/enabled = true
|
|
|
+tracks/4/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ 64 ]
|
|
|
+}
|
|
|
+tracks/5/type = "value"
|
|
|
+tracks/5/path = NodePath("hitbox:dmg")
|
|
|
+tracks/5/interp = 1
|
|
|
+tracks/5/loop_wrap = true
|
|
|
+tracks/5/imported = false
|
|
|
+tracks/5/enabled = true
|
|
|
+tracks/5/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ 5 ]
|
|
|
+}
|
|
|
+tracks/6/type = "value"
|
|
|
+tracks/6/path = NodePath("Health:health_max")
|
|
|
+tracks/6/interp = 1
|
|
|
+tracks/6/loop_wrap = true
|
|
|
+tracks/6/imported = false
|
|
|
+tracks/6/enabled = true
|
|
|
+tracks/6/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ 20 ]
|
|
|
+}
|
|
|
+tracks/7/type = "value"
|
|
|
+tracks/7/path = NodePath("Sprite:modulate")
|
|
|
+tracks/7/interp = 1
|
|
|
+tracks/7/loop_wrap = true
|
|
|
+tracks/7/imported = false
|
|
|
+tracks/7/enabled = true
|
|
|
+tracks/7/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ Color( 1, 0, 0, 1 ) ]
|
|
|
+}
|
|
|
+
|
|
|
+[sub_resource type="Animation" id=3]
|
|
|
+resource_name = "enemy"
|
|
|
+tracks/0/type = "value"
|
|
|
+tracks/0/path = NodePath(".:speed")
|
|
|
+tracks/0/interp = 1
|
|
|
+tracks/0/loop_wrap = true
|
|
|
+tracks/0/imported = false
|
|
|
+tracks/0/enabled = true
|
|
|
+tracks/0/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 150 ]
|
|
|
+}
|
|
|
+tracks/1/type = "value"
|
|
|
+tracks/1/path = NodePath(".:exppt")
|
|
|
+tracks/1/interp = 1
|
|
|
+tracks/1/loop_wrap = true
|
|
|
+tracks/1/imported = false
|
|
|
+tracks/1/enabled = true
|
|
|
+tracks/1/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 15 ]
|
|
|
+}
|
|
|
+tracks/2/type = "value"
|
|
|
+tracks/2/path = NodePath(".:detectionzone")
|
|
|
+tracks/2/interp = 1
|
|
|
+tracks/2/loop_wrap = true
|
|
|
+tracks/2/imported = false
|
|
|
+tracks/2/enabled = true
|
|
|
+tracks/2/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 256 ]
|
|
|
+}
|
|
|
+tracks/3/type = "value"
|
|
|
+tracks/3/path = NodePath(".:reactiontime")
|
|
|
+tracks/3/interp = 1
|
|
|
+tracks/3/loop_wrap = true
|
|
|
+tracks/3/imported = false
|
|
|
+tracks/3/enabled = true
|
|
|
+tracks/3/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 1 ]
|
|
|
+}
|
|
|
+tracks/4/type = "value"
|
|
|
+tracks/4/path = NodePath(".:attackrange")
|
|
|
+tracks/4/interp = 1
|
|
|
+tracks/4/loop_wrap = true
|
|
|
+tracks/4/imported = false
|
|
|
+tracks/4/enabled = true
|
|
|
+tracks/4/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 64 ]
|
|
|
+}
|
|
|
+tracks/5/type = "value"
|
|
|
+tracks/5/path = NodePath("hitbox:dmg")
|
|
|
+tracks/5/interp = 1
|
|
|
+tracks/5/loop_wrap = true
|
|
|
+tracks/5/imported = false
|
|
|
+tracks/5/enabled = true
|
|
|
+tracks/5/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 5 ]
|
|
|
+}
|
|
|
+tracks/6/type = "value"
|
|
|
+tracks/6/path = NodePath("Health:health_max")
|
|
|
+tracks/6/interp = 1
|
|
|
+tracks/6/loop_wrap = true
|
|
|
+tracks/6/imported = false
|
|
|
+tracks/6/enabled = true
|
|
|
+tracks/6/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 20 ]
|
|
|
+}
|
|
|
+tracks/7/type = "value"
|
|
|
+tracks/7/path = NodePath("Sprite:modulate")
|
|
|
+tracks/7/interp = 1
|
|
|
+tracks/7/loop_wrap = true
|
|
|
+tracks/7/imported = false
|
|
|
+tracks/7/enabled = true
|
|
|
+tracks/7/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ Color( 1, 0, 0, 1 ) ]
|
|
|
+}
|
|
|
+
|
|
|
+[sub_resource type="Animation" id=4]
|
|
|
+resource_name = "peaceful"
|
|
|
+tracks/0/type = "value"
|
|
|
+tracks/0/path = NodePath(".:speed")
|
|
|
+tracks/0/interp = 1
|
|
|
+tracks/0/loop_wrap = true
|
|
|
+tracks/0/imported = false
|
|
|
+tracks/0/enabled = true
|
|
|
+tracks/0/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ -150 ]
|
|
|
+}
|
|
|
+tracks/1/type = "value"
|
|
|
+tracks/1/path = NodePath(".:exppt")
|
|
|
+tracks/1/interp = 1
|
|
|
+tracks/1/loop_wrap = true
|
|
|
+tracks/1/imported = false
|
|
|
+tracks/1/enabled = true
|
|
|
+tracks/1/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 15 ]
|
|
|
+}
|
|
|
+tracks/2/type = "value"
|
|
|
+tracks/2/path = NodePath(".:detectionzone")
|
|
|
+tracks/2/interp = 1
|
|
|
+tracks/2/loop_wrap = true
|
|
|
+tracks/2/imported = false
|
|
|
+tracks/2/enabled = true
|
|
|
+tracks/2/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 256 ]
|
|
|
+}
|
|
|
+tracks/3/type = "value"
|
|
|
+tracks/3/path = NodePath(".:reactiontime")
|
|
|
+tracks/3/interp = 1
|
|
|
+tracks/3/loop_wrap = true
|
|
|
+tracks/3/imported = false
|
|
|
+tracks/3/enabled = true
|
|
|
+tracks/3/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 1 ]
|
|
|
+}
|
|
|
+tracks/4/type = "value"
|
|
|
+tracks/4/path = NodePath(".:attackrange")
|
|
|
+tracks/4/interp = 1
|
|
|
+tracks/4/loop_wrap = true
|
|
|
+tracks/4/imported = false
|
|
|
+tracks/4/enabled = true
|
|
|
+tracks/4/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 64 ]
|
|
|
+}
|
|
|
+tracks/5/type = "value"
|
|
|
+tracks/5/path = NodePath("hitbox:dmg")
|
|
|
+tracks/5/interp = 1
|
|
|
+tracks/5/loop_wrap = true
|
|
|
+tracks/5/imported = false
|
|
|
+tracks/5/enabled = true
|
|
|
+tracks/5/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 0 ]
|
|
|
+}
|
|
|
+tracks/6/type = "value"
|
|
|
+tracks/6/path = NodePath("Health:health_max")
|
|
|
+tracks/6/interp = 1
|
|
|
+tracks/6/loop_wrap = true
|
|
|
+tracks/6/imported = false
|
|
|
+tracks/6/enabled = true
|
|
|
+tracks/6/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 1,
|
|
|
+"values": [ 20 ]
|
|
|
+}
|
|
|
+tracks/7/type = "value"
|
|
|
+tracks/7/path = NodePath("Sprite:modulate")
|
|
|
+tracks/7/interp = 1
|
|
|
+tracks/7/loop_wrap = true
|
|
|
+tracks/7/imported = false
|
|
|
+tracks/7/enabled = true
|
|
|
+tracks/7/keys = {
|
|
|
+"times": PoolRealArray( 0 ),
|
|
|
+"transitions": PoolRealArray( 1 ),
|
|
|
+"update": 0,
|
|
|
+"values": [ Color( 0.101961, 1, 0, 1 ) ]
|
|
|
+}
|
|
|
+
|
|
|
[node name="enemy" type="KinematicBody2D" groups=["enemy"]]
|
|
|
scale = Vector2( 0.75, 0.75 )
|
|
|
script = ExtResource( 3 )
|
|
@@ -26,4 +324,12 @@ health_max = 20
|
|
|
dmg = 5
|
|
|
affect = "player"
|
|
|
|
|
|
-[connection signal="die" from="Health" to="." method="queue_free"]
|
|
|
+[node name="types" type="AnimationPlayer" parent="."]
|
|
|
+anims/RESET = SubResource( 2 )
|
|
|
+anims/enemy = SubResource( 3 )
|
|
|
+anims/peaceful = SubResource( 4 )
|
|
|
+
|
|
|
+[node name="die" type="Node2D" parent="."]
|
|
|
+script = ExtResource( 5 )
|
|
|
+
|
|
|
+[connection signal="die" from="Health" to="die" method="_on_Health_die"]
|