diff --git a/Zennysoft.Game.Ma/src/app/App.cs b/Zennysoft.Game.Ma/src/app/App.cs index 6149d4b0..922d9bda 100644 --- a/Zennysoft.Game.Ma/src/app/App.cs +++ b/Zennysoft.Game.Ma/src/app/App.cs @@ -83,7 +83,6 @@ public partial class App : Node, IApp OptionsMenu.OptionsMenuExited += OptionsMenu_OptionsMenuExited; OptionsMenu.DeleteSaveData += DeleteSaveData; - AppRepo = _container.GetInstance(); AppLogic = _container.GetInstance(); diff --git a/Zennysoft.Game.Ma/src/options/OptionsData.cs b/Zennysoft.Game.Ma/src/options/OptionsData.cs index 41d5f2fe..ee98a923 100644 --- a/Zennysoft.Game.Ma/src/options/OptionsData.cs +++ b/Zennysoft.Game.Ma/src/options/OptionsData.cs @@ -18,4 +18,7 @@ public partial class OptionsData : Node [Save("ScreenResolution")] public required int ScreenResolution { get; set; } + + [Save("SkipCutscene")] + public required bool SkipCutscene { get; set; } } \ No newline at end of file diff --git a/Zennysoft.Game.Ma/src/options/OptionsMenu.cs b/Zennysoft.Game.Ma/src/options/OptionsMenu.cs index 8fa4f973..143fe3ff 100644 --- a/Zennysoft.Game.Ma/src/options/OptionsMenu.cs +++ b/Zennysoft.Game.Ma/src/options/OptionsMenu.cs @@ -2,6 +2,7 @@ using Chickensoft.AutoInject; using Chickensoft.Introspection; using Godot; using NathanHoad; +using System; using System.Linq; namespace Zennysoft.Game.Ma; @@ -53,9 +54,12 @@ public partial class OptionsMenu : Control MasterVolumeLevel = MasterVolumeSlider.Value, MusicVolumeLevel = MusicVolumeSlider.Value, SFXVolumeLevel = SFXVolumeSlider.Value, - ScreenResolution = ResolutionOptions.GetSelectedId() + ScreenResolution = ResolutionOptions.GetSelectedId(), + SkipCutscene = SkipOpeningCSCheck.ButtonPressed }; + SkipOpeningCSCheck.Pressed += SkipOpeningCS_Pressed; + DeleteSaveButton.Pressed += DeleteSaveButton_Pressed; YesDeleteButton.Pressed += YesDeleteButton_Pressed; NoDeleteButton.Pressed += NoDeleteButton_Pressed; @@ -76,6 +80,8 @@ public partial class OptionsMenu : Control VisibilityChanged += OptionsMenu_VisibilityChanged; } + private void SkipOpeningCS_Pressed() => OptionsData.SkipCutscene = SkipOpeningCSCheck.ButtonPressed; + private void NoDeleteButton_Pressed() { ReleaseFocus(); @@ -151,6 +157,7 @@ public partial class OptionsMenu : Control MusicVolumeSlider.Value = optionsData.MusicVolumeLevel; SFXVolumeSlider.Value = optionsData.SFXVolumeLevel; ResolutionOptions.Select(optionsData.ScreenResolution); + SkipOpeningCSCheck.ButtonPressed = optionsData.SkipCutscene; DisplayServer.WindowSetMode(_windowModes[optionsData.ScreenResolution]); } diff --git a/Zennysoft.Game.Ma/src/player/Player.cs b/Zennysoft.Game.Ma/src/player/Player.cs index a0eb9862..5f12da5b 100644 --- a/Zennysoft.Game.Ma/src/player/Player.cs +++ b/Zennysoft.Game.Ma/src/player/Player.cs @@ -74,7 +74,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide #region Node Dependencies [Node] private IAnimationPlayer AnimationPlayer { get; set; } = default!; - [Node] private AnimatedSprite2D SwordSlashAnimation { get; set; } = default!; + [Node] private IAnimationPlayer PlayerFXAnimations { get; set; } = default!; [Node] private Area3D Hitbox { get; set; } = default!; @@ -155,7 +155,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide { Hitbox.AreaEntered += Hitbox_AreaEntered; CollisionDetector.AreaEntered += CollisionDetector_AreaEntered; - SwordSlashAnimation.Position = GetViewport().GetVisibleRect().Size / 2; HealthComponent.HealthReachedZero += Die; HealthTimer.WaitTime = _healthTimerWaitTime; SetProcessInput(false); @@ -215,7 +214,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide { HealthTimer.WaitTime = _healthTimerWaitTime; HealthTimer.Timeout -= OnHealthTimerTimeout; - SwordSlashAnimation.Stop(); SetProcessInput(false); SetPhysicsProcess(false); PlayerDied?.Invoke(); diff --git a/Zennysoft.Game.Ma/src/player/Player.tscn b/Zennysoft.Game.Ma/src/player/Player.tscn index ce37a3d5..d65fb548 100644 --- a/Zennysoft.Game.Ma/src/player/Player.tscn +++ b/Zennysoft.Game.Ma/src/player/Player.tscn @@ -1,336 +1,14 @@ -[gd_scene load_steps=48 format=3 uid="uid://cfecvvav8kkp6"] +[gd_scene load_steps=34 format=3 uid="uid://cfecvvav8kkp6"] [ext_resource type="Script" uid="uid://yxmiqy7i0t7r" path="res://src/player/Player.cs" id="1_xcol5"] [ext_resource type="Texture2D" uid="uid://c4ps26w7h3vpq" path="res://src/minimap/textures/player_map_icon.png" id="4_3ojaj"] -[ext_resource type="Texture2D" uid="uid://c6r3dhnkuw22w" path="res://src/vfx/hit_effects/FIRE_STRIKE_1.0.png" id="5_wr6lo"] +[ext_resource type="Texture2D" uid="uid://qhxl3nejqlk1" path="res://src/vfx/World/DUST_1.png" id="4_565yv"] [ext_resource type="Texture2D" uid="uid://b5qjlbcesth53" path="res://src/vfx/Weapon Strikes/NON ELEMENTAL SLASH.png" id="6_p34sl"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_dw45s"] radius = 1.0 height = 3.07596 -[sub_resource type="Animation" id="Animation_hcjph"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Collision/Hitbox/HitboxCollision:disabled") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Animation/SwordSlashAnimation:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [0] -} - -[sub_resource type="Animation" id="Animation_g183x"] -resource_name = "atonement_attack" -step = 0.0833333 - -[sub_resource type="Animation" id="Animation_0jjwv"] -resource_name = "attack" -length = 0.916675 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Collision/Hitbox/HitboxCollision:disabled") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.0833333, 0.333333), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [true, false, true] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Animation/SwordSlashAnimation:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666667, 0.75, 0.833333, 0.916666), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] -} - -[sub_resource type="Animation" id="Animation_es4xk"] -resource_name = "hit_wall" -length = 0.3 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Animation/SwordSlashAnimation:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.0833333, 0.166667), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [10, 1, 11] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_w8l8m"] -_data = { -&"RESET": SubResource("Animation_hcjph"), -&"atonement_attack": SubResource("Animation_g183x"), -&"attack": SubResource("Animation_0jjwv"), -&"hit_wall": SubResource("Animation_es4xk") -} - -[sub_resource type="AtlasTexture" id="AtlasTexture_irupf"] -atlas = ExtResource("6_p34sl") -region = Rect2(300, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_63m7j"] -atlas = ExtResource("6_p34sl") -region = Rect2(600, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_1ypgu"] -atlas = ExtResource("6_p34sl") -region = Rect2(900, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_d7qd7"] -atlas = ExtResource("6_p34sl") -region = Rect2(1200, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_7heog"] -atlas = ExtResource("6_p34sl") -region = Rect2(1500, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_x4mbv"] -atlas = ExtResource("6_p34sl") -region = Rect2(1800, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_f7ysd"] -atlas = ExtResource("6_p34sl") -region = Rect2(2100, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_i2p57"] -atlas = ExtResource("6_p34sl") -region = Rect2(2400, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_tfnlg"] -atlas = ExtResource("6_p34sl") -region = Rect2(2700, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_gvgtb"] -atlas = ExtResource("6_p34sl") -region = Rect2(3000, 0, 300, 300) - -[sub_resource type="AtlasTexture" id="AtlasTexture_fha34"] -atlas = ExtResource("5_wr6lo") -region = Rect2(0, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_6es8e"] -atlas = ExtResource("5_wr6lo") -region = Rect2(450, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ajsk2"] -atlas = ExtResource("5_wr6lo") -region = Rect2(1350, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_m6lxd"] -atlas = ExtResource("5_wr6lo") -region = Rect2(2250, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_66iny"] -atlas = ExtResource("5_wr6lo") -region = Rect2(3150, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ifj8k"] -atlas = ExtResource("5_wr6lo") -region = Rect2(4050, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_0sse1"] -atlas = ExtResource("5_wr6lo") -region = Rect2(4950, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_biijj"] -atlas = ExtResource("5_wr6lo") -region = Rect2(5850, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ox7ae"] -atlas = ExtResource("5_wr6lo") -region = Rect2(6750, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_0jda2"] -atlas = ExtResource("5_wr6lo") -region = Rect2(7650, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_6i1pl"] -atlas = ExtResource("5_wr6lo") -region = Rect2(8550, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ivimc"] -atlas = ExtResource("5_wr6lo") -region = Rect2(9450, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_3pwkw"] -atlas = ExtResource("5_wr6lo") -region = Rect2(10350, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_fr7ff"] -atlas = ExtResource("5_wr6lo") -region = Rect2(11250, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_yopcg"] -atlas = ExtResource("5_wr6lo") -region = Rect2(12150, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_j6465"] -atlas = ExtResource("5_wr6lo") -region = Rect2(13050, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_sqdiu"] -atlas = ExtResource("5_wr6lo") -region = Rect2(13950, 0, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_p3jka"] -atlas = ExtResource("5_wr6lo") -region = Rect2(0, 450, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_1g7qb"] -atlas = ExtResource("5_wr6lo") -region = Rect2(900, 450, 450, 450) - -[sub_resource type="AtlasTexture" id="AtlasTexture_7ab4x"] -atlas = ExtResource("5_wr6lo") -region = Rect2(1800, 450, 450, 450) - -[sub_resource type="SpriteFrames" id="SpriteFrames_ywvvo"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": null -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_irupf") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_63m7j") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_1ypgu") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_d7qd7") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_7heog") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_x4mbv") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_f7ysd") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_i2p57") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_tfnlg") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_gvgtb") -}, { -"duration": 1.0, -"texture": null -}], -"loop": false, -"name": &"attack", -"speed": 12.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_fha34") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_6es8e") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ajsk2") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_m6lxd") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_66iny") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ifj8k") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_0sse1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_biijj") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ox7ae") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_0jda2") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_6i1pl") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ivimc") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3pwkw") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_fr7ff") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_yopcg") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_j6465") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_sqdiu") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_p3jka") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_1g7qb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_7ab4x") -}, { -"duration": 1.0, -"texture": null -}], -"loop": false, -"name": &"attack_fire", -"speed": 12.0 -}, { -"frames": [], -"loop": true, -"name": &"attack_water", -"speed": 12.0 -}] - [sub_resource type="Animation" id="Animation_3ojaj"] resource_name = "IconAnimation" length = 2.5 @@ -359,14 +37,318 @@ _data = { &"RESET": SubResource("Animation_565yv") } -[sub_resource type="BoxShape3D" id="BoxShape3D_wedu3"] +[sub_resource type="BoxShape3D" id="BoxShape3D_g641l"] size = Vector3(1, 1, 1.80176) [sub_resource type="BoxShape3D" id="BoxShape3D_hs4wf"] size = Vector3(2, 3, 1) -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_es4xk"] -height = 1.6909 +[sub_resource type="SphereShape3D" id="SphereShape3D_g641l"] +radius = 0.6 + +[sub_resource type="Animation" id="Animation_v7rlw"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Collision/Hitbox/HitboxCollision:disabled") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_g641l"] +resource_name = "attack" +tracks/0/type = "animation" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ScreenFX/PlayerFXAnimations") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"clips": PackedStringArray("normal_attack"), +"times": PackedFloat32Array(0) +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Collision/Hitbox/HitboxCollision:disabled") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.333333), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} + +[sub_resource type="Animation" id="Animation_bj1ma"] +resource_name = "hit_wall" +length = 0.583342 +step = 0.0833333 +tracks/0/type = "animation" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ScreenFX/PlayerFXAnimations") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"clips": PackedStringArray("hit_wall"), +"times": PackedFloat32Array(0) +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Collision/Hitbox/HitboxCollision:disabled") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_3ojaj"] +_data = { +&"RESET": SubResource("Animation_v7rlw"), +&"attack": SubResource("Animation_g641l"), +&"hit_wall": SubResource("Animation_bj1ma") +} + +[sub_resource type="Animation" id="Animation_jtmj1"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"normal_slash"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [11] +} + +[sub_resource type="Animation" id="Animation_ebyyx"] +resource_name = "hit_wall" +length = 0.583342 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0001), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [&"hit_wall", &"hit_wall"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.583333), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0, 7] +} + +[sub_resource type="Animation" id="Animation_v5qoq"] +resource_name = "normal_attack" +length = 0.916675 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [&"normal_slash"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("SubViewportContainer/SubViewport/WeaponAttack:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.916667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0, 11] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ebyyx"] +_data = { +&"RESET": SubResource("Animation_jtmj1"), +&"hit_wall": SubResource("Animation_ebyyx"), +&"normal_attack": SubResource("Animation_v5qoq") +} + +[sub_resource type="AtlasTexture" id="AtlasTexture_g641l"] +atlas = ExtResource("6_p34sl") +region = Rect2(0, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3ojaj"] +atlas = ExtResource("6_p34sl") +region = Rect2(300, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ebyyx"] +atlas = ExtResource("6_p34sl") +region = Rect2(1800, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bj1ma"] +atlas = ExtResource("6_p34sl") +region = Rect2(2100, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_es4xk"] +atlas = ExtResource("6_p34sl") +region = Rect2(2400, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g183x"] +atlas = ExtResource("6_p34sl") +region = Rect2(2700, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ojh85"] +atlas = ExtResource("6_p34sl") +region = Rect2(3000, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wvcio"] +atlas = ExtResource("6_p34sl") +region = Rect2(3300, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_565yv"] +atlas = ExtResource("6_p34sl") +region = Rect2(600, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v7rlw"] +atlas = ExtResource("6_p34sl") +region = Rect2(900, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v5qoq"] +atlas = ExtResource("6_p34sl") +region = Rect2(1200, 0, 300, 300) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jtmj1"] +atlas = ExtResource("6_p34sl") +region = Rect2(1500, 0, 300, 300) + +[sub_resource type="SpriteFrames" id="SpriteFrames_lnh6v"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_g641l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3ojaj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ebyyx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bj1ma") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_es4xk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g183x") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ojh85") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wvcio") +}], +"loop": false, +"name": &"hit_wall", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_g641l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3ojaj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_565yv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_v7rlw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_v5qoq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jtmj1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ebyyx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bj1ma") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_es4xk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g183x") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ojh85") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wvcio") +}], +"loop": false, +"name": &"normal_slash", +"speed": 12.0 +}] + +[sub_resource type="SpriteFrames" id="SpriteFrames_g641l"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": null +}, { +"duration": 1.0, +"texture": ExtResource("4_565yv") +}, { +"duration": 1.0, +"texture": null +}], +"loop": false, +"name": &"sample", +"speed": 5.0 +}] [node name="Player" type="CharacterBody3D"] collision_layer = 802 @@ -382,25 +364,6 @@ unique_name_in_owner = true process_mode = 1 wait_time = 3.0 -[node name="Animation" type="Node3D" parent="."] - -[node name="AnimationPlayer" type="AnimationPlayer" parent="Animation"] -unique_name_in_owner = true -root_node = NodePath("../..") -libraries = { -&"": SubResource("AnimationLibrary_w8l8m") -} - -[node name="SwordSlashAnimation" type="AnimatedSprite2D" parent="Animation"] -unique_name_in_owner = true -texture_filter = 1 -position = Vector2(983, 555) -scale = Vector2(3, 3) -sprite_frames = SubResource("SpriteFrames_ywvvo") -animation = &"attack" -flip_h = true -flip_v = true - [node name="Camera" type="Node3D" parent="."] [node name="Camera3D" type="Camera3D" parent="Camera"] @@ -458,7 +421,7 @@ collision_mask = 2048 [node name="HitboxCollision" type="CollisionShape3D" parent="Collision/Hitbox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.177762) -shape = SubResource("BoxShape3D_wedu3") +shape = SubResource("BoxShape3D_g641l") disabled = true [node name="CollisionDetector" type="Area3D" parent="Collision"] @@ -470,6 +433,7 @@ collision_mask = 388 [node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/CollisionDetector"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0479561, 0.509249, 0.0101219) shape = SubResource("BoxShape3D_hs4wf") +disabled = true [node name="WallCheck" type="RigidBody3D" parent="Collision"] unique_name_in_owner = true @@ -485,5 +449,62 @@ contact_monitor = true max_contacts_reported = 100 [node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/WallCheck"] -transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, -1.51238, 1.03938, -0.0105059) -shape = SubResource("CapsuleShape3D_es4xk") +transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, -1.51238, 1.03938, -1.08421) +shape = SubResource("SphereShape3D_g641l") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +&"": SubResource("AnimationLibrary_3ojaj") +} + +[node name="ScreenFX" type="Node3D" parent="."] + +[node name="PlayerFXAnimations" type="AnimationPlayer" parent="ScreenFX"] +unique_name_in_owner = true +libraries = { +&"": SubResource("AnimationLibrary_ebyyx") +} + +[node name="SubViewportContainer" type="SubViewportContainer" parent="ScreenFX"] +custom_minimum_size = Vector2(1440, 1080) +anchors_preset = -1 +anchor_right = 0.748 +anchor_bottom = 1.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +stretch = true + +[node name="SubViewport" type="SubViewport" parent="ScreenFX/SubViewportContainer"] +transparent_bg = true +handle_input_locally = false +size = Vector2i(1440, 1080) +render_target_update_mode = 4 + +[node name="WeaponAttack" type="AnimatedSprite2D" parent="ScreenFX/SubViewportContainer/SubViewport"] +position = Vector2(720, 540) +scale = Vector2(3, 3) +sprite_frames = SubResource("SpriteFrames_lnh6v") +animation = &"normal_slash" +frame = 11 +flip_h = true +flip_v = true + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="ScreenFX/SubViewportContainer/SubViewport"] +position = Vector2(720, 540) +scale = Vector2(36.5, 36.5) +sprite_frames = SubResource("SpriteFrames_g641l") +animation = &"sample" +frame = 2 +frame_progress = 1.0 + +[node name="Control" type="ColorRect" parent="ScreenFX"] +custom_minimum_size = Vector2(480, 0) +anchors_preset = 11 +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -480.0 +grow_horizontal = 0 +grow_vertical = 2 +color = Color(0.158472, 0.158472, 0.158472, 1)