diff --git a/Resources/Sprites/player_float.tres b/Resources/Sprites/player_float.tres new file mode 100644 index 00000000..75a6ee07 --- /dev/null +++ b/Resources/Sprites/player_float.tres @@ -0,0 +1,168 @@ +[gd_resource type="SpriteFrames" load_steps=20 format=3 uid="uid://c6exoa8pxbc6w"] + +[ext_resource type="Texture2D" uid="uid://bvjyivjk530r5" path="res://Sprites/Actors/Cirno_Surprised.png" id="1_h5qtm"] +[ext_resource type="Texture2D" uid="uid://calorbo7lwx72" path="res://Sprites/Actors/Cirno_Drowning.png" id="2_3oya7"] +[ext_resource type="Texture2D" uid="uid://sgp57e3tsg35" path="res://Sprites/Actors/Cirno_Float.png" id="4_3oya7"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_qt0xq"] +atlas = ExtResource("1_h5qtm") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j8jir"] +atlas = ExtResource("1_h5qtm") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6sqmb"] +atlas = ExtResource("2_3oya7") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bl8yu"] +atlas = ExtResource("2_3oya7") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a680j"] +atlas = ExtResource("2_3oya7") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cab7f"] +atlas = ExtResource("2_3oya7") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_la2t0"] +atlas = ExtResource("2_3oya7") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eqxxe"] +atlas = ExtResource("2_3oya7") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7j3x3"] +atlas = ExtResource("2_3oya7") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j4qq6"] +atlas = ExtResource("2_3oya7") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_34li8"] +atlas = ExtResource("2_3oya7") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h5qtm"] +atlas = ExtResource("4_3oya7") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wmdd2"] +atlas = ExtResource("4_3oya7") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yc63g"] +atlas = ExtResource("4_3oya7") +region = Rect2(0, 32, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dkdbe"] +atlas = ExtResource("4_3oya7") +region = Rect2(0, 48, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ca0vm"] +atlas = ExtResource("4_3oya7") +region = Rect2(0, 16, 16, 16) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_qt0xq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j8jir") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qt0xq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j8jir") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qt0xq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j8jir") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6sqmb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bl8yu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_a680j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cab7f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_la2t0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_eqxxe") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7j3x3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7j3x3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j4qq6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_34li8") +}, { +"duration": 1.0, +"texture": null +}], +"loop": false, +"name": &"Drowning", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_h5qtm") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_wmdd2") +}], +"loop": true, +"name": &"walk_down", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_yc63g") +}], +"loop": true, +"name": &"walk_left", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_dkdbe") +}], +"loop": true, +"name": &"walk_right", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ca0vm") +}], +"loop": true, +"name": &"walk_up", +"speed": 8.0 +}] diff --git a/Resources/Sprites/player_float_legs.tres b/Resources/Sprites/player_float_legs.tres new file mode 100644 index 00000000..fabfebcc --- /dev/null +++ b/Resources/Sprites/player_float_legs.tres @@ -0,0 +1,74 @@ +[gd_resource type="SpriteFrames" load_steps=7 format=3 uid="uid://byb4cbb23cawf"] + +[ext_resource type="Texture2D" uid="uid://b0yaotgm0622f" path="res://Sprites/Actors/Cirno_Float_Legs.png" id="1_kh0jv"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_acxb7"] +atlas = ExtResource("1_kh0jv") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rmmtq"] +atlas = ExtResource("1_kh0jv") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xf58l"] +atlas = ExtResource("1_kh0jv") +region = Rect2(0, 32, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1jl6q"] +atlas = ExtResource("1_kh0jv") +region = Rect2(0, 48, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vtgdn"] +atlas = ExtResource("1_kh0jv") +region = Rect2(0, 16, 16, 16) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": null +}], +"loop": false, +"name": &"Drowning", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_acxb7") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_rmmtq") +}], +"loop": true, +"name": &"walk_down", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_xf58l") +}], +"loop": true, +"name": &"walk_left", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_1jl6q") +}], +"loop": true, +"name": &"walk_right", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_vtgdn") +}], +"loop": true, +"name": &"walk_up", +"speed": 8.0 +}] diff --git a/Scenes/Actors/fsm_player.tscn b/Scenes/Actors/fsm_player.tscn index aa845f1e..927c15e6 100644 --- a/Scenes/Actors/fsm_player.tscn +++ b/Scenes/Actors/fsm_player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=88 format=3 uid="uid://c4pr2707hbeph"] +[gd_scene load_steps=89 format=3 uid="uid://c4pr2707hbeph"] [ext_resource type="Script" uid="uid://d2ubk5gucny6s" path="res://Scripts/Components/FSM/PlayerFSMProxy.cs" id="1_g3wua"] [ext_resource type="Script" uid="uid://bw2hakslndaxm" path="res://Scripts/Components/FSM/PlayerStateMachine.cs" id="1_mpmil"] @@ -7,7 +7,6 @@ [ext_resource type="Script" uid="uid://bo6xcjnw3yn6s" path="res://Scripts/Components/FSM/Player/Dead.cs" id="4_0pqs8"] [ext_resource type="Material" uid="uid://dnvwgyt2tbqmr" path="res://Resources/Materials/Player_Blink_Teleport_Material.tres" id="4_5qlss"] [ext_resource type="Script" uid="uid://dn2rrgw3e027b" path="res://Scripts/Components/FSM/Player/Cutscene.cs" id="4_22ff8"] -[ext_resource type="SpriteFrames" uid="uid://bc7mghjx75qip" path="res://Resources/Sprites/player.tres" id="4_s0ir4"] [ext_resource type="Script" uid="uid://b4nixnxhj5qhw" path="res://Scripts/Components/Actors/PlayerWeaponProvider.cs" id="5_gp3hw"] [ext_resource type="Script" uid="uid://b0khv2fcrgm6t" path="res://Scripts/Components/FSM/Player/Teleporting.cs" id="5_yifvs"] [ext_resource type="Script" uid="uid://br2ev58gwuvu4" path="res://Scripts/Components/FSM/Player/UnTeleporting.cs" id="6_7n10g"] @@ -21,8 +20,10 @@ [ext_resource type="Script" uid="uid://3jxrxcqp3ndr" path="res://Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs" id="10_gp3hw"] [ext_resource type="Texture2D" uid="uid://cvngivvogv17l" path="res://Sprites/Actors/Cirno-Shadow.png" id="11_m1iep"] [ext_resource type="Texture2D" uid="uid://bwjrdlnysft15" path="res://Sprites/Actors/Focus_Circle.png" id="12_8dcio"] +[ext_resource type="SpriteFrames" uid="uid://c6exoa8pxbc6w" path="res://Resources/Sprites/player_float.tres" id="13_ckpe7"] [ext_resource type="Texture2D" uid="uid://bf37ce6jskdel" path="res://Sprites/SmallHitbox.png" id="13_pmkfo"] [ext_resource type="Script" uid="uid://dkmsw828qwikk" path="res://Scripts/Components/Actors/PlayerDamageReceiver.cs" id="14_igu66"] +[ext_resource type="SpriteFrames" uid="uid://byb4cbb23cawf" path="res://Resources/Sprites/player_float_legs.tres" id="14_p5rkw"] [ext_resource type="Script" uid="uid://cqwvssstkrdmw" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="15_5qlss"] [ext_resource type="Texture2D" uid="uid://cf2855sd3hqty" path="res://Sprites/Actors/Aiming_Reticule_Small.png" id="19_fnw0c"] [ext_resource type="Texture2D" uid="uid://bc4tp44e00g0d" path="res://Sprites/Actors/Focus_Square.png" id="20_3ho10"] @@ -389,19 +390,25 @@ script = ExtResource("10_es1gk") _animationProvider = NodePath("../../AnimationProvider") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false shape = SubResource("CircleShape2D_b3hxm") [node name="Shadow" type="Sprite2D" parent="."] -modulate = Color(1, 1, 1, 0.227451) -position = Vector2(0, 2) +modulate = Color(1, 1, 1, 0.372549) +position = Vector2(0, 4) texture = ExtResource("11_m1iep") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] material = ExtResource("4_5qlss") -sprite_frames = ExtResource("4_s0ir4") -animation = &"walk_up" +sprite_frames = ExtResource("13_ckpe7") +animation = &"idle" +autoplay = "idle" + +[node name="Legs" type="AnimatedSprite2D" parent="."] +material = ExtResource("4_5qlss") +sprite_frames = ExtResource("14_p5rkw") +animation = &"idle" autoplay = "idle" -frame_progress = 0.405397 [node name="WeaponProvider" type="Node2D" parent="."] script = ExtResource("5_gp3hw") @@ -421,6 +428,12 @@ lifetime = 0.4 one_shot = true process_material = SubResource("ParticleProcessMaterial_0pqs8") +[node name="LegsAnimationProvider" type="Node2D" parent="." node_paths=PackedStringArray("_animatedSprite", "_shieldParticles")] +script = ExtResource("7_pmkfo") +_animatedSprite = NodePath("../Legs") +_shieldParticles = NodePath("") +BlinkMaterial = ExtResource("4_5qlss") + [node name="InputProvider" type="Node2D" parent="."] script = ExtResource("8_i6wc8") @@ -490,6 +503,7 @@ _inputProvider = NodePath("../InputProvider") _errorSound = NodePath("Error") [node name="CollisionShape2D" type="CollisionShape2D" parent="InteractionProvider"] +visible = false shape = SubResource("CircleShape2D_7n10g") [node name="Error" type="AudioStreamPlayer2D" parent="InteractionProvider"] @@ -540,6 +554,7 @@ collision_mask = 512 script = ExtResource("32_4f2wn") [node name="CollisionShape2D" type="CollisionShape2D" parent="ConveyorBeltMover"] +visible = false position = Vector2(0, 6.48) shape = SubResource("CircleShape2D_fnw0c") @@ -570,6 +585,7 @@ script = ExtResource("42_awrib") Shield = NodePath("../DamageReceiver/ShieldProvider") [node name="CollisionShape2D" type="CollisionShape2D" parent="GrazingModule"] +visible = false shape = SubResource("CircleShape2D_awrib") [node name="FreezeModule" type="Node2D" parent="." node_paths=PackedStringArray("Shield", "InputProvider")] diff --git a/Scripts/Components/Actors/PlayerAnimationProvider.cs b/Scripts/Components/Actors/PlayerAnimationProvider.cs index df062b13..bbee1cfd 100644 --- a/Scripts/Components/Actors/PlayerAnimationProvider.cs +++ b/Scripts/Components/Actors/PlayerAnimationProvider.cs @@ -185,6 +185,7 @@ public partial class PlayerAnimationProvider : Node2D public void PlayShieldAnimation() { + if (_shieldParticles is null) return; _shieldParticles.Emitting = true; } diff --git a/Sprites/Actors/Cirno-Shadow.aseprite b/Sprites/Actors/Cirno-Shadow.aseprite index 5235044c..9be8cbb9 100644 --- a/Sprites/Actors/Cirno-Shadow.aseprite +++ b/Sprites/Actors/Cirno-Shadow.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14dc945c0c5905fa715aa06a178527e154c41f17fbe3647bd214feee696ba80a -size 359 +oid sha256:b107042ba447961754858b68d45d95b23db694b3fad4c9f9aa9ec4aedfdf38c9 +size 350 diff --git a/Sprites/Actors/Cirno-Shadow.png b/Sprites/Actors/Cirno-Shadow.png index 10784499..080c0fc7 100644 --- a/Sprites/Actors/Cirno-Shadow.png +++ b/Sprites/Actors/Cirno-Shadow.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:496f1867dbb22660f57c2c4627b4be7da613bfeeed44ca7c8749b62b9c5ef2c0 -size 109 +oid sha256:55ddb6dadb7e546cbda3c2b15dd850817d51fcaf6891a26a161a4626d2a95424 +size 112 diff --git a/Sprites/Actors/Cirno_Float.aseprite b/Sprites/Actors/Cirno_Float.aseprite index 955a4f84..40db1679 100644 --- a/Sprites/Actors/Cirno_Float.aseprite +++ b/Sprites/Actors/Cirno_Float.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:28c1bb96baffb6ae6453cbc74d1036db84fae6d5397442d9ecf2896a431593f4 -size 6152 +oid sha256:c8cbe5f9468ad402da6c15100147f30fde2ab63ea0e8306977a9bf25f167d51e +size 1702 diff --git a/Sprites/Actors/Cirno_Float.png b/Sprites/Actors/Cirno_Float.png new file mode 100644 index 00000000..a454c8d4 --- /dev/null +++ b/Sprites/Actors/Cirno_Float.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de06d3292e20bbaf373f0b96373cda669fe8f101e351493b5f2d7ca0c0d78d8d +size 730 diff --git a/Sprites/Actors/Cirno_Float.png.import b/Sprites/Actors/Cirno_Float.png.import new file mode 100644 index 00000000..421f38ae --- /dev/null +++ b/Sprites/Actors/Cirno_Float.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://sgp57e3tsg35" +path="res://.godot/imported/Cirno_Float.png-be965ac538ab864e6f9bfe282bf41921.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Actors/Cirno_Float.png" +dest_files=["res://.godot/imported/Cirno_Float.png-be965ac538ab864e6f9bfe282bf41921.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprites/Actors/Cirno_Float_Legs.aseprite b/Sprites/Actors/Cirno_Float_Legs.aseprite new file mode 100644 index 00000000..3190b8cb --- /dev/null +++ b/Sprites/Actors/Cirno_Float_Legs.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcc7aec0cf6a39798db1efae79a46853e0a07b99361a63e40329e20ca0c71ad7 +size 1446 diff --git a/Sprites/Actors/Cirno_Float_Legs.png b/Sprites/Actors/Cirno_Float_Legs.png new file mode 100644 index 00000000..b0b3a907 --- /dev/null +++ b/Sprites/Actors/Cirno_Float_Legs.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a30d30122c0b748faec5dea61e3dde8f217553bb4ffac48f89616307971da6bc +size 140 diff --git a/Sprites/Actors/Cirno_Float_Legs.png.import b/Sprites/Actors/Cirno_Float_Legs.png.import new file mode 100644 index 00000000..651dafb6 --- /dev/null +++ b/Sprites/Actors/Cirno_Float_Legs.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0yaotgm0622f" +path="res://.godot/imported/Cirno_Float_Legs.png-b2aa134d7de280e5da666f55cf656c34.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Actors/Cirno_Float_Legs.png" +dest_files=["res://.godot/imported/Cirno_Float_Legs.png-b2aa134d7de280e5da666f55cf656c34.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1