From b4b7577479c1c61a0a95cca1af00fd6191400e1e Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Sat, 20 May 2023 21:25:09 -0400 Subject: [PATCH] first half of the squig --- graphics/enemy/squig.png | Bin 0 -> 816 bytes graphics/enemy/squig.png.import | 35 ++++++++++ maps/test_room.tscn | 8 ++- objects/enemy/squig.gd | 13 ++++ objects/enemy/squig.tscn | 115 ++++++++++++++++++++++++++++++++ 5 files changed, 169 insertions(+), 2 deletions(-) create mode 100644 graphics/enemy/squig.png create mode 100644 graphics/enemy/squig.png.import create mode 100644 objects/enemy/squig.gd create mode 100644 objects/enemy/squig.tscn diff --git a/graphics/enemy/squig.png b/graphics/enemy/squig.png new file mode 100644 index 0000000000000000000000000000000000000000..00ada40c4aa1e2403a23ad65d756918d69df7976 GIT binary patch literal 816 zcmV-01JC@4P)EX>4Tx04R}tkv&MmKpe$iQ%j{*91JMpkfA!+MMWHI6^c+H)C#RSn2&xzlZGV4 z#ZhoAIQX$xb#QUk)xlK|1V2DrU7QqMq{ROvg%&X$9QWhhy~o`)J(glehnJ#<$#<=7%$1-^{o0%u(iG@-Z%U!ILO^tY(IHqbk<#RcY zRmNM4wQ5~y-;=#CTF_UPnND*QDJ)_MA_T~&qk<}I#A($@v5=wtq>q2Z^^4?^$yI?u zjs?`9L2~_IfAG6ot2j03B}J1!=*4k9#(?lH&}ul&_p#%&PJrMuaHV(rwI(q8NqVEB z#g2f1ZQ$a%qse=~;UN7n}c000JJOGiWi=m4YuoW?I5vH$=832;bRa{vG? zBLDy{BLR4&KXw2B00(qQO+^Ri1r-1lAJPv(rT_o{8FWQhbVF}#ZDnqB07G(RVRU6= zAa`kWXdp*PO;A^X4i^9b0SQS&K~zY`y_HQ4f-n$;U%7rUic6C^ezj3y5iHlu1Uh7m&~*#Skd~0EnuN&5deP z46zsB)t2|qo9fuJk5L2xMz}n0{T)IG*5`PDr`-d{UWDqvJfOObCfooBwV_v-wZ_n^ zc&64RX95qs!ufK-^YOy7t|Ac<&06DdJla098f+HV z`cU=?X56aAtThuEh^Xpha2h4nnKX+wV=)uc)HbwCAQ~m>r?zp&V@EelZNu~~H|O%O uVrOT$02|D=fi33vG$0000 void: + velocity.y *= pow(damping, delta) + global_position += velocity * delta + +func _propel() -> void: + velocity.y = -speed diff --git a/objects/enemy/squig.tscn b/objects/enemy/squig.tscn new file mode 100644 index 0000000..f05fd29 --- /dev/null +++ b/objects/enemy/squig.tscn @@ -0,0 +1,115 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://objects/enemy/squig.gd" type="Script" id=1] +[ext_resource path="res://graphics/enemy/squig.png" type="Texture" id=2] +[ext_resource path="res://graphics/particles/dust.png" type="Texture" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 3.5, 3.5 ) + +[sub_resource type="Animation" id=2] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +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": [ 0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("InkParticles:emitting") +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": [ false ] +} + +[sub_resource type="Animation" id=4] +resource_name = "swimming" +length = 1.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ 0, 1 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("InkParticles:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ false, true ] +} +tracks/2/type = "method" +tracks/2/path = NodePath(".") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "_propel" +} ] +} + +[node name="Squig" type="Node2D" groups=["enemy"]] +script = ExtResource( 1 ) +damping = 0.5 + +[node name="InkParticles" type="CPUParticles2D" parent="."] +position = Vector2( 3.5, 7 ) +emitting = false +amount = 32 +lifetime = 2.0 +local_coords = false +texture = ExtResource( 3 ) +spread = 180.0 +gravity = Vector2( 0, 0 ) +initial_velocity = 8.0 +initial_velocity_random = 0.5 +damping = 4.0 +color = Color( 0, 0, 0, 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 4, 4 ) +texture = ExtResource( 2 ) +hframes = 2 + +[node name="Hitbox" type="Area2D" parent="." groups=["enemy_hitbox"]] +position = Vector2( 4, 4 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] +position = Vector2( -0.5, -0.5 ) +shape = SubResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "swimming" +anims/RESET = SubResource( 2 ) +anims/swimming = SubResource( 4 ) + +[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]