From 1938ac12b6a12b828d3915732d8ce04774c6a12c Mon Sep 17 00:00:00 2001 From: nc543 Date: Thu, 23 May 2024 22:58:20 -0400 Subject: [PATCH] Animations and HUD - Implemented more animations - Added spell HUD - Fixed interrupted spell cooldowns - Fixed getting stunned when all damage is blocked - Added export presets --- Resources/Spellbooks/oldBook.tres | 7 +- Resources/Spells/iceSpear.tres | 2 +- Resources/Spells/poisonShield.tres | 2 +- Resources/Spells/poisonSting.tres | 2 +- Resources/Spells/sandstorm.tres | 2 +- Resources/Spells/wallOfFire.tres | 2 +- Scenes/Animations/acidSprayAnim.tscn | 508 ++++++++++++-------- Scenes/Animations/iceSpearAnim.tscn | 208 +++++++- Scenes/Animations/poisonShieldAnim.tscn | 334 ++++++++++++- Scenes/Animations/poisonStingAnim.tscn | 206 +++++++- Scenes/Characters/wizard.tscn | 4 +- Scenes/UI/7_firespin_spritesheet.png | Bin 0 -> 67792 bytes Scenes/UI/7_firespin_spritesheet.png.import | 34 ++ Scenes/UI/hud.tscn | 58 +++ Scenes/UI/mainMenu.tscn | 12 - Scenes/UI/spellSlot.tscn | 57 +++ Scenes/arena.tscn | 7 +- Scripts/SpellSlot.gd | 25 + Scripts/TitleScreen.gd | 2 +- Scripts/combatant.gd | 2 +- Scripts/hudController.gd | 16 + Scripts/playerController.gd | 9 +- Scripts/wizard.gd | 25 - Themes/default.tres | 24 +- export_presets.cfg | 37 ++ project.godot | 16 +- 26 files changed, 1328 insertions(+), 273 deletions(-) create mode 100644 Scenes/UI/7_firespin_spritesheet.png create mode 100644 Scenes/UI/7_firespin_spritesheet.png.import create mode 100644 Scenes/UI/hud.tscn create mode 100644 Scenes/UI/spellSlot.tscn create mode 100644 Scripts/SpellSlot.gd create mode 100644 Scripts/hudController.gd delete mode 100644 Scripts/wizard.gd create mode 100644 export_presets.cfg diff --git a/Resources/Spellbooks/oldBook.tres b/Resources/Spellbooks/oldBook.tres index fbf2246..ed50f43 100644 --- a/Resources/Spellbooks/oldBook.tres +++ b/Resources/Spellbooks/oldBook.tres @@ -1,17 +1,18 @@ -[gd_resource type="Resource" script_class="Spellbook" load_steps=7 format=3 uid="uid://bxtiv2esuer8v"] +[gd_resource type="Resource" script_class="Spellbook" load_steps=8 format=3 uid="uid://bxtiv2esuer8v"] [ext_resource type="Script" path="res://Resources/spellbook.gd" id="1_t8h8m"] [ext_resource type="Resource" uid="uid://7rne03vmayep" path="res://Resources/Spells/stoneWall.tres" id="2_5c5iu"] -[ext_resource type="Resource" uid="uid://dl6nv6lp460n3" path="res://Resources/Spells/rockThrow.tres" id="3_ocgmh"] +[ext_resource type="Resource" uid="uid://dl51vjra873m1" path="res://Resources/Spells/poisonShield.tres" id="3_vmmfd"] [ext_resource type="Resource" uid="uid://bmpu6k55bckdv" path="res://Resources/Spells/fireball.tres" id="4_kv0hs"] [ext_resource type="Resource" uid="uid://c6mwbnutxm3vb" path="res://Resources/Spells/icyWind.tres" id="5_eymrm"] [ext_resource type="Resource" uid="uid://dhrq8tkycy1f" path="res://Resources/Spells/acidSpray.tres" id="6_qtyjr"] +[ext_resource type="Resource" uid="uid://b3glmfhohyl68" path="res://Resources/Spells/iceSpear.tres" id="7_mjiod"] [resource] script = ExtResource("1_t8h8m") name = "Old Book" description = "An old spellbook you found on the side of the road" -spells = Array[Resource("res://Resources/spell.gd")]([ExtResource("2_5c5iu"), ExtResource("3_ocgmh"), ExtResource("4_kv0hs"), ExtResource("5_eymrm"), ExtResource("6_qtyjr"), null]) +spells = Array[Resource("res://Resources/spell.gd")]([ExtResource("2_5c5iu"), ExtResource("3_vmmfd"), ExtResource("4_kv0hs"), ExtResource("5_eymrm"), ExtResource("6_qtyjr"), ExtResource("7_mjiod")]) damageMod = 1.0 defenseMod = 1.0 element = 0 diff --git a/Resources/Spells/iceSpear.tres b/Resources/Spells/iceSpear.tres index ecee7c8..3349887 100644 --- a/Resources/Spells/iceSpear.tres +++ b/Resources/Spells/iceSpear.tres @@ -9,7 +9,7 @@ icon = ExtResource("1_2g25m") name = "Ice Spear" description = "Throw a spear of ice at your opponent" rarity = 0 -animation = "" +animation = "res://Scenes/Animations/iceSpearAnim.tscn" damage = 3.0 backfireStrength = 1.0 castCombo = Array[String](["down", "down", "right"]) diff --git a/Resources/Spells/poisonShield.tres b/Resources/Spells/poisonShield.tres index bc6c5fc..4bb9806 100644 --- a/Resources/Spells/poisonShield.tres +++ b/Resources/Spells/poisonShield.tres @@ -9,7 +9,7 @@ icon = ExtResource("1_sbibn") name = "Poison Shield" description = "Throw up a shield of condensed poison" rarity = 1 -animation = "" +animation = "res://Scenes/Animations/poisonShieldAnim.tscn" damage = 0.0 backfireStrength = 2.0 castCombo = Array[String](["left", "right", "up", "up", "down"]) diff --git a/Resources/Spells/poisonSting.tres b/Resources/Spells/poisonSting.tres index aaff13b..5319aff 100644 --- a/Resources/Spells/poisonSting.tres +++ b/Resources/Spells/poisonSting.tres @@ -9,7 +9,7 @@ icon = ExtResource("1_h33l2") name = "Poison Sting" description = "Poison Sting" rarity = 0 -animation = "" +animation = "res://Scenes/Animations/poisonStingAnim.tscn" damage = 3.0 backfireStrength = 1.0 castCombo = Array[String](["left", "right", "down"]) diff --git a/Resources/Spells/sandstorm.tres b/Resources/Spells/sandstorm.tres index 796327d..97ad216 100644 --- a/Resources/Spells/sandstorm.tres +++ b/Resources/Spells/sandstorm.tres @@ -9,7 +9,7 @@ icon = ExtResource("1_hs770") name = "Sandstorm" description = "Surround your opponent in a cyclone of sand" rarity = 1 -animation = "" +animation = "res://Scenes/Animations/sandstormAnim.tscn" damage = 5.0 backfireStrength = 2.0 castCombo = Array[String](["right", "up", "right", "up", "right"]) diff --git a/Resources/Spells/wallOfFire.tres b/Resources/Spells/wallOfFire.tres index f91c686..2e2b2aa 100644 --- a/Resources/Spells/wallOfFire.tres +++ b/Resources/Spells/wallOfFire.tres @@ -9,7 +9,7 @@ icon = ExtResource("1_o8wfp") name = "Wall of Fire" description = "Conjure a flaming wall to scorch your enemies" rarity = 1 -animation = "" +animation = "res://Scenes/Animations/wallOfFireAnim.tscn" damage = 5.0 backfireStrength = 3.0 castCombo = Array[String](["up", "up", "left", "right", "down"]) diff --git a/Scenes/Animations/acidSprayAnim.tscn b/Scenes/Animations/acidSprayAnim.tscn index 149e268..5db77e0 100644 --- a/Scenes/Animations/acidSprayAnim.tscn +++ b/Scenes/Animations/acidSprayAnim.tscn @@ -1,169 +1,23 @@ -[gd_scene load_steps=107 format=3 uid="uid://b3pnua4nrjtkw"] +[gd_scene load_steps=109 format=3 uid="uid://b3pnua4nrjtkw"] [ext_resource type="Script" path="res://Scripts/animationBase.gd" id="1_3iwpy"] [ext_resource type="Texture2D" uid="uid://b17v1e34ell73" path="res://Sprites/Particles/Particles Cleaned/20_magicbubbles_spritesheet.png" id="2_to6au"] [ext_resource type="Texture2D" uid="uid://dt0ceryr2264j" path="res://Sprites/Particles/Particles Cleaned/17_felspell_spritesheet.png" id="3_s6qto"] -[sub_resource type="Animation" id="Animation_afodu"] -resource_name = "attackSegment0" -length = 0.2 -step = 0.01 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("GPUParticles2D:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(298, 588)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("GPUParticles2D:lifetime") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [3.0] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("GPUParticles2D:process_material:scale_min") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("GPUParticles2D:process_material:scale_max") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("GPUParticles2D:process_material:linear_accel_min") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("GPUParticles2D:process_material:linear_accel_max") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("GPUParticles2D:process_material:tangential_accel_min") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] -} -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("GPUParticles2D:process_material:tangential_accel_max") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [2.0] -} -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("AnimatedSprite2D:position") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(289, 468)] -} -tracks/9/type = "value" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("AnimatedSprite2D:scale") -tracks/9/interp = 1 -tracks/9/loop_wrap = true -tracks/9/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1e-05, 1e-05)] -} -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("AnimatedSprite2D:speed_scale") -tracks/10/interp = 1 -tracks/10/loop_wrap = true -tracks/10/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] -} -tracks/11/type = "value" -tracks/11/imported = false -tracks/11/enabled = true -tracks/11/path = NodePath("GPUParticles2D:emitting") -tracks/11/interp = 1 -tracks/11/loop_wrap = true -tracks/11/keys = { -"times": PackedFloat32Array(0.01), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/12/type = "value" -tracks/12/imported = false -tracks/12/enabled = true -tracks/12/path = NodePath("GPUParticles2D:amount_ratio") -tracks/12/interp = 1 -tracks/12/loop_wrap = true -tracks/12/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.7] -} +[sub_resource type="Curve" id="Curve_p12s0"] +min_value = -200.0 +max_value = 200.0 +_data = [Vector2(0, 200), 0.0, 0.0, 0, 0, Vector2(0.246446, -200), 0.0, 0.0, 0, 0, Vector2(0.49763, 200), 0.0, 0.0, 0, 0, Vector2(0.748815, -200), 0.0, 0.0, 0, 0, Vector2(1, 200), 0.0, 0.0, 0, 0] +point_count = 5 + +[sub_resource type="Curve" id="Curve_6jm50"] +min_value = -200.0 +max_value = 200.0 +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.530806, -200), -1096.1, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_s88ht"] +curve = SubResource("Curve_6jm50") [sub_resource type="Animation" id="Animation_aewhu"] length = 0.001 @@ -347,38 +201,267 @@ tracks/14/keys = { "update": 0, "values": [550.0] } +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("GPUParticles2D:process_material:direction") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, -1, 0)] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("GPUParticles2D:process_material:tangential_accel_curve:curve") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("Curve_p12s0")] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("GPUParticles2D:process_material:linear_accel_curve") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("CurveTexture_s88ht")] +} -[sub_resource type="Animation" id="Animation_42eon"] -resource_name = "attackSegment1" +[sub_resource type="Animation" id="Animation_afodu"] +resource_name = "attackSegment0" length = 0.2 +step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("AnimatedSprite2D:scale") +tracks/0/path = NodePath("GPUParticles2D:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.2), -"transitions": PackedFloat32Array(1, 1), +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(1e-05, 1e-05), Vector2(0.5, 0.5)] +"values": [Vector2(298, 588)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("GPUParticles2D:amount_ratio") +tracks/1/path = NodePath("GPUParticles2D:lifetime") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0, 0.2), -"transitions": PackedFloat32Array(1, 1), +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), "update": 0, -"values": [0.7, 1.0] +"values": [3.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("GPUParticles2D:process_material:scale_min") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("GPUParticles2D:process_material:scale_max") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("GPUParticles2D:process_material:linear_accel_min") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("GPUParticles2D:process_material:linear_accel_max") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("GPUParticles2D:process_material:tangential_accel_min") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("GPUParticles2D:process_material:tangential_accel_max") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [2.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("AnimatedSprite2D:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(310, 414)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("AnimatedSprite2D:scale") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1e-05, 1e-05)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("AnimatedSprite2D:speed_scale") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("GPUParticles2D:emitting") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0.01), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("GPUParticles2D:amount_ratio") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.2] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("GPUParticles2D:process_material:initial_velocity_max") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [100.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("GPUParticles2D:process_material:initial_velocity_min") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [100.0] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("GPUParticles2D:process_material:direction") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, -1, 0)] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("GPUParticles2D:process_material:tangential_accel_curve:curve") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("Curve_p12s0")] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("GPUParticles2D:process_material:linear_accel_curve") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("CurveTexture_s88ht")] } [sub_resource type="Animation" id="Animation_gwdc1"] -resource_name = "attackSegment2" -length = 0.2 +resource_name = "attackSegment1" +length = 0.4 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -386,26 +469,10 @@ tracks/0/path = NodePath("AnimatedSprite2D:scale") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.2), +"times": PackedFloat32Array(0, 0.4), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(0.5, 0.5), Vector2(1, 1)] -} - -[sub_resource type="Animation" id="Animation_butuo"] -resource_name = "attackSegment3" -length = 0.3 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("AnimatedSprite2D:speed_scale") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.3), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [1.0, 2.0] +"values": [Vector2(0, 0), Vector2(1, 1)] } tracks/1/type = "value" tracks/1/imported = false @@ -414,15 +481,15 @@ tracks/1/path = NodePath("GPUParticles2D:amount_ratio") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0, 0.3), +"times": PackedFloat32Array(0, 0.4), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [1.0, 0.0] +"values": [0.2, 0.4] } [sub_resource type="Animation" id="Animation_g732k"] -resource_name = "attackSegment4" -length = 0.4 +resource_name = "attackSegment2" +length = 2.0 step = 0.01 tracks/0/type = "value" tracks/0/imported = false @@ -472,15 +539,49 @@ tracks/3/keys = { "update": 0, "values": [550.0] } +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("GPUParticles2D:amount_ratio") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.08, 0.11), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.4, 0.0, 1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("GPUParticles2D:emitting") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0.11), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("GPUParticles2D:process_material:direction") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0.11), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1, 0, 0)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_im4uk"] _data = { "RESET": SubResource("Animation_aewhu"), "attackSegment0": SubResource("Animation_afodu"), -"attackSegment1": SubResource("Animation_42eon"), -"attackSegment2": SubResource("Animation_gwdc1"), -"attackSegment3": SubResource("Animation_butuo"), -"attackSegment4": SubResource("Animation_g732k") +"attackSegment1": SubResource("Animation_gwdc1"), +"attackSegment2": SubResource("Animation_g732k") } [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_lyst0"] @@ -496,16 +597,22 @@ point_count = 3 [sub_resource type="CurveTexture" id="CurveTexture_0e4bo"] curve = SubResource("Curve_j0ic6") +[sub_resource type="CurveTexture" id="CurveTexture_fc6dw"] +curve = SubResource("Curve_p12s0") + [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_l5bwo"] particle_flag_disable_z = true +direction = Vector3(0, -1, 0) spread = 10.0 initial_velocity_min = 350.0 initial_velocity_max = 550.0 gravity = Vector3(0, 0, 0) linear_accel_min = 1.0 linear_accel_max = 1.0 +linear_accel_curve = SubResource("CurveTexture_s88ht") tangential_accel_min = 1.0 tangential_accel_max = 2.0 +tangential_accel_curve = SubResource("CurveTexture_fc6dw") scale_curve = SubResource("CurveTexture_0e4bo") anim_speed_min = 1.0 anim_speed_max = 1.0 @@ -1178,6 +1285,7 @@ lifetime = 3.0 position = Vector2(289, 468) scale = Vector2(1e-05, 1e-05) sprite_frames = SubResource("SpriteFrames_if6ek") -frame_progress = 0.224631 +autoplay = "default" +frame_progress = 0.518152 [connection signal="animation_finished" from="AnimationPlayer" to="." method="animFinished"] diff --git a/Scenes/Animations/iceSpearAnim.tscn b/Scenes/Animations/iceSpearAnim.tscn index 76d337d..bfa6ef4 100644 --- a/Scenes/Animations/iceSpearAnim.tscn +++ b/Scenes/Animations/iceSpearAnim.tscn @@ -1,11 +1,215 @@ -[gd_scene load_steps=2 format=3 uid="uid://prxl4gt8txoh"] +[gd_scene load_steps=11 format=3 uid="uid://prxl4gt8txoh"] [ext_resource type="Script" path="res://Scripts/animationBase.gd" id="1_esjtx"] +[ext_resource type="Texture2D" uid="uid://c8vt2xlbkbjkk" path="res://Sprites/Misc/WEAPON PACK by captainskeleto/weapon14.png" id="2_fot3l"] + +[sub_resource type="Animation" id="Animation_34nq2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(385, 744)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="Animation" id="Animation_y05qj"] +resource_name = "attackInverse0" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(755, 744), Vector2(755, 205)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="Animation" id="Animation_3atpa"] +resource_name = "attackInverse1" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -1.91986] +} + +[sub_resource type="Animation" id="Animation_i1g2l"] +resource_name = "attackInverse2" +length = 0.15 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(755, 205), Vector2(250, 328)] +} + +[sub_resource type="Animation" id="Animation_ucmqo"] +resource_name = "attackSegment0" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(385, 744), Vector2(385, 205)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="Animation" id="Animation_v0opu"] +resource_name = "attackSegment1" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 1.91986] +} + +[sub_resource type="Animation" id="Animation_mpq0c"] +resource_name = "attackSegment2" +length = 0.15 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(321, 205), Vector2(826, 328)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_hohxt"] +_data = { +"RESET": SubResource("Animation_34nq2"), +"attackInverse0": SubResource("Animation_y05qj"), +"attackInverse1": SubResource("Animation_3atpa"), +"attackInverse2": SubResource("Animation_i1g2l"), +"attackSegment0": SubResource("Animation_ucmqo"), +"attackSegment1": SubResource("Animation_v0opu"), +"attackSegment2": SubResource("Animation_mpq0c") +} [node name="iceSpearAnim" type="Node2D"] script = ExtResource("1_esjtx") -finalIndex = 5 +finalIndex = 3 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_hohxt") +} + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(385, 744) +texture = ExtResource("2_fot3l") [connection signal="animation_finished" from="AnimationPlayer" to="." method="animFinished"] diff --git a/Scenes/Animations/poisonShieldAnim.tscn b/Scenes/Animations/poisonShieldAnim.tscn index d96ce82..69308b7 100644 --- a/Scenes/Animations/poisonShieldAnim.tscn +++ b/Scenes/Animations/poisonShieldAnim.tscn @@ -1,11 +1,343 @@ -[gd_scene load_steps=2 format=3 uid="uid://d3a6uhllhslqp"] +[gd_scene load_steps=15 format=3 uid="uid://d3a6uhllhslqp"] [ext_resource type="Script" path="res://Scripts/animationBase.gd" id="1_5cxts"] +[ext_resource type="Texture2D" uid="uid://cwswqodd35e55" path="res://Sprites/Misc/SHIELD PACK by captainskeleto/shield6.png" id="2_i0kyn"] + +[sub_resource type="Animation" id="Animation_nj5vv"] +resource_name = "attackSegment0" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(351, 694), Vector2(351, 506)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-0.651008] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Sprite2D:skew") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.619592] +} + +[sub_resource type="Animation" id="Animation_4twk8"] +resource_name = "attackSegment1" +length = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(351, 506), Vector2(351, 436)] +} + +[sub_resource type="Animation" id="Animation_v7j2t"] +resource_name = "attackSegment2" +length = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(351, 436), Vector2(351, 361)] +} + +[sub_resource type="Animation" id="Animation_s0xe5"] +resource_name = "attackSegment3" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(2, 2)] +} + +[sub_resource type="Animation" id="Animation_rmws1"] +resource_name = "attackSegment4" +length = 2.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(351, 361), Vector2(351, 406)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(2, 2), Vector2(3, 3)] +} + +[sub_resource type="Animation" id="Animation_2q2xk"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(351, 694)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-0.651008] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Sprite2D:skew") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.619592] +} + +[sub_resource type="Animation" id="Animation_cwgg6"] +resource_name = "attackInverse0" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(732, 694), Vector2(732, 506)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.651008] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Sprite2D:skew") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-0.619592] +} + +[sub_resource type="Animation" id="Animation_fqpu2"] +resource_name = "attackInverse1" +length = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(732, 506), Vector2(732, 436)] +} + +[sub_resource type="Animation" id="Animation_r8qlt"] +resource_name = "attackInverse2" +length = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(732, 436), Vector2(732, 361)] +} + +[sub_resource type="Animation" id="Animation_gk41f"] +resource_name = "attackInverse3" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(2, 2)] +} + +[sub_resource type="Animation" id="Animation_vwwrn"] +resource_name = "attackInverse4" +length = 2.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(732, 361), Vector2(732, 406)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(2, 2), Vector2(3, 3)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_mhto1"] +_data = { +"RESET": SubResource("Animation_2q2xk"), +"attackInverse0": SubResource("Animation_cwgg6"), +"attackInverse1": SubResource("Animation_fqpu2"), +"attackInverse2": SubResource("Animation_r8qlt"), +"attackInverse3": SubResource("Animation_gk41f"), +"attackInverse4": SubResource("Animation_vwwrn"), +"attackSegment0": SubResource("Animation_nj5vv"), +"attackSegment1": SubResource("Animation_4twk8"), +"attackSegment2": SubResource("Animation_v7j2t"), +"attackSegment3": SubResource("Animation_s0xe5"), +"attackSegment4": SubResource("Animation_rmws1") +} [node name="poisonShieldAnim" type="Node2D"] script = ExtResource("1_5cxts") finalIndex = 5 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_mhto1") +} + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(351, 694) +rotation = -0.651008 +skew = 0.619592 +texture = ExtResource("2_i0kyn") [connection signal="animation_finished" from="AnimationPlayer" to="." method="animFinished"] diff --git a/Scenes/Animations/poisonStingAnim.tscn b/Scenes/Animations/poisonStingAnim.tscn index 4c3e0d5..0d8ff26 100644 --- a/Scenes/Animations/poisonStingAnim.tscn +++ b/Scenes/Animations/poisonStingAnim.tscn @@ -1,11 +1,215 @@ -[gd_scene load_steps=2 format=3 uid="uid://dvh6sob7kynrb"] +[gd_scene load_steps=11 format=3 uid="uid://dvh6sob7kynrb"] [ext_resource type="Script" path="res://Scripts/animationBase.gd" id="1_7mgkm"] +[ext_resource type="Texture2D" uid="uid://d4mjumjludoki" path="res://Sprites/Misc/WEAPON PACK by captainskeleto/weapon26.png" id="2_3gnmw"] + +[sub_resource type="Animation" id="Animation_34nq2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(385, 744)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="Animation" id="Animation_ucmqo"] +resource_name = "attackSegment0" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(385, 744), Vector2(385, 205)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="Animation" id="Animation_v0opu"] +resource_name = "attackSegment1" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 1.91986] +} + +[sub_resource type="Animation" id="Animation_mpq0c"] +resource_name = "attackSegment2" +length = 0.15 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(755, 205), Vector2(250, 328)] +} + +[sub_resource type="Animation" id="Animation_y05qj"] +resource_name = "attackInverse0" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(755, 744), Vector2(755, 205)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite2D:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="Animation" id="Animation_3atpa"] +resource_name = "attackInverse1" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -1.91986] +} + +[sub_resource type="Animation" id="Animation_i1g2l"] +resource_name = "attackInverse2" +length = 0.15 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(321, 205), Vector2(826, 328)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_kpa0v"] +_data = { +"RESET": SubResource("Animation_34nq2"), +"attackInverse0": SubResource("Animation_y05qj"), +"attackInverse1": SubResource("Animation_3atpa"), +"attackInverse2": SubResource("Animation_i1g2l"), +"attackSegment0": SubResource("Animation_ucmqo"), +"attackSegment1": SubResource("Animation_v0opu"), +"attackSegment2": SubResource("Animation_mpq0c") +} [node name="poisonStingAnim" type="Node2D"] script = ExtResource("1_7mgkm") finalIndex = 3 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_kpa0v") +} + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(385, 744) +texture = ExtResource("2_3gnmw") [connection signal="animation_finished" from="AnimationPlayer" to="." method="animFinished"] diff --git a/Scenes/Characters/wizard.tscn b/Scenes/Characters/wizard.tscn index db45a24..217853d 100644 --- a/Scenes/Characters/wizard.tscn +++ b/Scenes/Characters/wizard.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=57 format=3 uid="uid://c8wwq1hoj4sd5"] [ext_resource type="Texture2D" uid="uid://beji0knfiddf2" path="res://Sprites/Characters/Wizard Pack/Attack1.png" id="1_2xk2o"] -[ext_resource type="Script" path="res://Scripts/wizard.gd" id="1_tgd3u"] +[ext_resource type="Script" path="res://Scripts/combatant.gd" id="1_rww6u"] [ext_resource type="Texture2D" uid="uid://bdwuc8gl3a8wu" path="res://Sprites/Characters/Wizard Pack/Attack2.png" id="2_2f0nh"] [ext_resource type="Texture2D" uid="uid://6kb5caswncr5" path="res://Sprites/Characters/Wizard Pack/Death.png" id="3_7wnck"] [ext_resource type="Texture2D" uid="uid://dmdw0qscqe02k" path="res://Sprites/Characters/Wizard Pack/Fall.png" id="4_kkrq5"] @@ -371,7 +371,7 @@ animations = [{ [node name="Wizard" type="Node2D"] scale = Vector2(4, 4) -script = ExtResource("1_tgd3u") +script = ExtResource("1_rww6u") health = 10.0 [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] diff --git a/Scenes/UI/7_firespin_spritesheet.png b/Scenes/UI/7_firespin_spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..f9518186a6587c49bbe56a86c03e5b5cdd367d36 GIT binary patch literal 67792 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ƊGEpDE0myn$w{0RD4QF0{h!WIzqsZ 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 literal 0 HcmV?d00001 diff --git a/Scenes/UI/7_firespin_spritesheet.png.import b/Scenes/UI/7_firespin_spritesheet.png.import new file mode 100644 index 0000000..f572318 --- /dev/null +++ b/Scenes/UI/7_firespin_spritesheet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6y7p03uede7l" +path="res://.godot/imported/7_firespin_spritesheet.png-1d8cb160bade34e00990af0c4514c755.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Scenes/UI/7_firespin_spritesheet.png" +dest_files=["res://.godot/imported/7_firespin_spritesheet.png-1d8cb160bade34e00990af0c4514c755.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/Scenes/UI/hud.tscn b/Scenes/UI/hud.tscn new file mode 100644 index 0000000..896f408 --- /dev/null +++ b/Scenes/UI/hud.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=4 format=3 uid="uid://bxmhjms3oosfa"] + +[ext_resource type="Script" path="res://Scripts/hudController.gd" id="1_kqbvv"] +[ext_resource type="Theme" uid="uid://bh8kyg4qt8rt7" path="res://Themes/default.tres" id="1_qb087"] +[ext_resource type="PackedScene" uid="uid://dqp1qeg36dn2f" path="res://Scenes/UI/spellSlot.tscn" id="1_tn0bd"] + +[node name="HUD" type="Control" node_paths=PackedStringArray("slots")] +top_level = true +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_kqbvv") +slots = [NodePath("GridContainer/SpellSlot5"), NodePath("GridContainer/SpellSlot6"), NodePath("GridContainer/SpellSlot7"), NodePath("GridContainer/SpellSlot8"), NodePath("GridContainer/SpellSlot"), NodePath("GridContainer/SpellSlot2"), NodePath("GridContainer/SpellSlot3"), NodePath("GridContainer/SpellSlot4")] + +[node name="GridContainer" type="GridContainer" parent="."] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 10.0 +offset_top = -78.0 +offset_right = 162.0 +offset_bottom = -10.0 +grow_vertical = 0 +scale = Vector2(2, 2) +pivot_offset = Vector2(0, 67.5) +theme = ExtResource("1_qb087") +theme_override_constants/h_separation = 8 +theme_override_constants/v_separation = 3 +columns = 4 +metadata/_edit_use_anchors_ = true + +[node name="SpellSlot" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 + +[node name="SpellSlot2" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 + +[node name="SpellSlot3" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 + +[node name="SpellSlot4" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 + +[node name="SpellSlot5" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 + +[node name="SpellSlot6" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 + +[node name="SpellSlot7" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 + +[node name="SpellSlot8" parent="GridContainer" instance=ExtResource("1_tn0bd")] +layout_mode = 2 diff --git a/Scenes/UI/mainMenu.tscn b/Scenes/UI/mainMenu.tscn index 09c75cf..628eddd 100644 --- a/Scenes/UI/mainMenu.tscn +++ b/Scenes/UI/mainMenu.tscn @@ -20,18 +20,6 @@ [ext_resource type="Texture2D" uid="uid://cgdahvbhwdc4e" path="res://Sprites/UI/Edinnu_UI_asset_pack/Sliders/Slider (3).png" id="22_uas7q"] [sub_resource type="GDScript" id="GDScript_felhp"] -script/source = "extends Control - -@export var test: int - -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta) -> void: - pass -" [sub_resource type="Curve" id="Curve_4skk8"] _data = [Vector2(0, 0), 0.0, 3.2967, 0, 0, Vector2(0.226667, 1), -0.400951, -0.400951, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] diff --git a/Scenes/UI/spellSlot.tscn b/Scenes/UI/spellSlot.tscn new file mode 100644 index 0000000..eeeb330 --- /dev/null +++ b/Scenes/UI/spellSlot.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=7 format=3 uid="uid://dqp1qeg36dn2f"] + +[ext_resource type="Script" path="res://Scripts/SpellSlot.gd" id="1_g6esp"] +[ext_resource type="Texture2D" uid="uid://c4dqd3xfskjq3" path="res://Sprites/Particles/Particles Cleaned/7_firespin_spritesheet.png" id="3_dvsdt"] + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_27hga"] +particles_animation = true +particles_anim_h_frames = 8 +particles_anim_v_frames = 8 +particles_anim_loop = false + +[sub_resource type="Curve" id="Curve_8pflr"] +_data = [Vector2(0, 0), 0.0, 4.63736, 0, 0, Vector2(0.246446, 1), 0.0, 0.0, 0, 0, Vector2(0.748815, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -10.2685, 0.0, 0, 0] +point_count = 4 + +[sub_resource type="CurveTexture" id="CurveTexture_75py5"] +curve = SubResource("Curve_8pflr") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_pvsh8"] +particle_flag_disable_z = true +gravity = Vector3(0, 0, 0) +scale_min = 2.0 +scale_max = 2.0 +scale_curve = SubResource("CurveTexture_75py5") +anim_speed_min = 0.5 +anim_speed_max = 0.5 + +[node name="SpellSlot" type="TextureRect"] +offset_right = 32.0 +offset_bottom = 32.0 +stretch_mode = 4 +script = ExtResource("1_g6esp") + +[node name="Overlay" type="ColorRect" parent="."] +clip_contents = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 32.0 +offset_top = 32.0 +offset_right = 32.0 +offset_bottom = 32.0 +grow_horizontal = 2 +grow_vertical = 2 +rotation = 3.14159 +scale = Vector2(1, 1e-05) +color = Color(0.14902, 0.14902, 0.14902, 0.870588) + +[node name="GPUParticles2D" type="GPUParticles2D" parent="."] +material = SubResource("CanvasItemMaterial_27hga") +position = Vector2(16, 13) +emitting = false +amount = 1 +process_material = SubResource("ParticleProcessMaterial_pvsh8") +texture = ExtResource("3_dvsdt") +one_shot = true diff --git a/Scenes/arena.tscn b/Scenes/arena.tscn index cfdcb4b..734b816 100644 --- a/Scenes/arena.tscn +++ b/Scenes/arena.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://fgo2hd37towj"] +[gd_scene load_steps=10 format=3 uid="uid://fgo2hd37towj"] [ext_resource type="PackedScene" uid="uid://nckxh4vysmvv" path="res://Scenes/player_controller.tscn" id="2_ud5et"] [ext_resource type="PackedScene" uid="uid://c8wwq1hoj4sd5" path="res://Scenes/Characters/wizard.tscn" id="3_arqpv"] @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://j7mi58bblog5" path="res://Scenes/Characters/evilWizard.tscn" id="5_0xq54"] [ext_resource type="PackedScene" uid="uid://dbhep5cgrqipa" path="res://Scenes/UI/castIndicator.tscn" id="6_hj5b3"] [ext_resource type="Texture2D" uid="uid://b3dcdubvwsxqb" path="res://Sprites/Backgrounds/Battleground2/Bright/Battleground2.png" id="7_ux7s3"] +[ext_resource type="PackedScene" uid="uid://bxmhjms3oosfa" path="res://Scenes/UI/hud.tscn" id="8_4c64r"] [ext_resource type="PackedScene" uid="uid://cijs8fxylhamd" path="res://Scenes/UI/healthBar.tscn" id="8_b87c8"] [ext_resource type="PackedScene" uid="uid://bowbww8k1myq5" path="res://Scenes/Animations/stoneWallAnim.tscn" id="8_bxa2l"] @@ -31,6 +32,8 @@ offset_bottom = 210.0 position = Vector2(865, 333.5) scale = Vector2(4, 4) +[node name="HUD" parent="." instance=ExtResource("8_4c64r")] + [node name="CanvasLayer" type="CanvasLayer" parent="."] layer = -1 @@ -63,4 +66,6 @@ offset_bottom = 204.5 [node name="stoneWallAnim" parent="." instance=ExtResource("8_bxa2l")] position = Vector2(81, -130) +[connection signal="healthChanged" from="Wizard" to="Wizard/HealthBar" method="healthChanged"] + [editable path="stoneWallAnim"] diff --git a/Scripts/SpellSlot.gd b/Scripts/SpellSlot.gd new file mode 100644 index 0000000..ca4a430 --- /dev/null +++ b/Scripts/SpellSlot.gd @@ -0,0 +1,25 @@ +class_name SpellSlot extends TextureRect + +@onready var overlay: ColorRect = $Overlay +@onready var particles: GPUParticles2D = $GPUParticles2D + +@export var spell: Spell +var timer: float = 0 +var canCast: bool = true + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if (spell == null): return + timer = clampf(timer - delta, 0, spell.cooldown) + if (!canCast && timer == 0): + canCast = true + particles.emitting = true + overlay.scale.y = timer / spell.cooldown + +func setSpell(spel: Spell): + spell = spel + texture = spel.icon + +func spellCast(down: float): + timer = down + canCast = false diff --git a/Scripts/TitleScreen.gd b/Scripts/TitleScreen.gd index 9ad3600..62b1fb5 100644 --- a/Scripts/TitleScreen.gd +++ b/Scripts/TitleScreen.gd @@ -19,8 +19,8 @@ extends Control func _on_play_pressed(): var a: Node2D = load(arena).instantiate() $/root/Root.add_child(a) - $/root/Root/MainMenu.queue_free() musicPlayer.setLoc(Data.Location.ARENA) + $/root/Root/MainMenu.queue_free() func _on_credits_pressed(): print("Credits") diff --git a/Scripts/combatant.gd b/Scripts/combatant.gd index dc95324..7d35e5f 100644 --- a/Scripts/combatant.gd +++ b/Scripts/combatant.gd @@ -160,7 +160,7 @@ func attemptCast(): func alterHealth(change: float, stun: bool, element: Data.Element) -> void: for spel in defending: change *= spel.blockStrength[element] - print("Blocking with spell " + spel.name) + if (change == 0): return health += change if stun: casting = false diff --git a/Scripts/hudController.gd b/Scripts/hudController.gd new file mode 100644 index 0000000..e7ea991 --- /dev/null +++ b/Scripts/hudController.gd @@ -0,0 +1,16 @@ +class_name HudController extends Control + +@onready var data: Data = $/root/Root/Data +@export var slots: Array[SpellSlot] + +# Called when the node enters the scene tree for the first time. +func _ready(): + for i in range(data.spellbook.spells.size()): + if (data.spellbook.spells == null): break + slots[i].setSpell(data.spellbook.spells[i]) + +func spellCast(spell: Spell, cooldown: float): + for slot: SpellSlot in slots: + if slot.spell == spell: + slot.spellCast(cooldown) + return diff --git a/Scripts/playerController.gd b/Scripts/playerController.gd index baf3aaa..350921e 100644 --- a/Scripts/playerController.gd +++ b/Scripts/playerController.gd @@ -1,7 +1,8 @@ extends Node -@onready var data: Data = get_node("/root/Root/Data") -@onready var castIndicator: CastIndicator = get_node("/root/Root/Arena/CastIndicator") +@onready var data: Data = $/root/Root/Data +@onready var castIndicator: CastIndicator = $/root/Root/Arena/CastIndicator +@onready var hud: HudController = $/root/Root/Arena/HUD @export var avatar: Combatant @@ -55,6 +56,7 @@ func _process(delta): data.spellbook.cooldowns[spellIndex] = spell.cooldown avatar.defending.append(spell) castIndicator.hide() + hud.spellCast(spell, spell.cooldown) elif (timer >= spell.timeout || Input.is_action_just_pressed("up") || Input.is_action_just_pressed("down") || Input.is_action_just_pressed("left") || Input.is_action_just_pressed("right")): avatar.alterHealth(-spell.backfireStrength, true, spell.element) stunned() @@ -66,8 +68,9 @@ func _process(delta): func stunned(): if (!casting): return casting = false - avatar.castProgress = 0 anim.castFailed() data.spellbook.cooldowns[spellIndex] = spell.cooldown * (float(avatar.castProgress) / float(spell.castCombo.size())) + hud.spellCast(spell, data.spellbook.cooldowns[spellIndex]) + avatar.castProgress = 0 castIndicator.hide() spell = null diff --git a/Scripts/wizard.gd b/Scripts/wizard.gd deleted file mode 100644 index c373e63..0000000 --- a/Scripts/wizard.gd +++ /dev/null @@ -1,25 +0,0 @@ -extends "res://Scripts/combatant.gd" - -func _easyAI(delta): - if casting: - pass - else: - pass - -func _normalAI(delta): - if casting: - pass - else: - pass - -func _hardAI(delta): - if casting: - pass - else: - pass - -func _gamerAI(delta): - if casting: - pass - else: - pass diff --git a/Themes/default.tres b/Themes/default.tres index 06b6261..db54c6b 100644 --- a/Themes/default.tres +++ b/Themes/default.tres @@ -9,7 +9,7 @@ [ext_resource type="Texture2D" uid="uid://dunedrjwjxgea" path="res://Sprites/UI/Edinnu_UI_asset_pack/Target/Target (10).png" id="6_4cx20"] [ext_resource type="FontFile" uid="uid://bhggfnolqg5hu" path="res://Fonts/breathe_fire/Breathe Fire.otf" id="9_yxmfa"] -[sub_resource type="Image" id="Image_pe7av"] +[sub_resource type="Image" id="Image_7tfk3"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 35, 255, 255, 255, 153, 255, 255, 255, 190, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 190, 255, 255, 255, 152, 255, 255, 255, 33, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 153, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 151, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 190, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 237, 237, 237, 195, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 190, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 177, 177, 177, 209, 37, 37, 37, 252, 178, 178, 178, 209, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 176, 176, 176, 209, 32, 32, 32, 254, 26, 26, 26, 255, 84, 84, 84, 235, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 176, 176, 176, 209, 32, 32, 32, 254, 26, 26, 26, 255, 78, 78, 78, 237, 248, 248, 248, 193, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 255, 255, 255, 191, 253, 253, 253, 192, 222, 222, 222, 198, 255, 255, 255, 191, 255, 255, 255, 191, 175, 175, 175, 210, 32, 32, 32, 254, 26, 26, 26, 255, 79, 79, 79, 237, 248, 248, 248, 193, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 253, 253, 253, 192, 90, 90, 90, 234, 45, 45, 45, 249, 212, 212, 212, 200, 174, 174, 174, 210, 32, 32, 32, 254, 26, 26, 26, 255, 79, 79, 79, 237, 248, 248, 248, 193, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 232, 232, 232, 196, 54, 54, 54, 246, 26, 26, 26, 255, 43, 43, 43, 250, 32, 32, 32, 254, 26, 26, 26, 255, 81, 81, 81, 237, 248, 248, 248, 193, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 255, 255, 255, 191, 226, 226, 226, 197, 54, 54, 54, 246, 26, 26, 26, 255, 26, 26, 26, 255, 81, 81, 81, 237, 248, 248, 248, 193, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 226, 226, 226, 197, 54, 54, 54, 246, 81, 81, 81, 236, 248, 248, 248, 193, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 190, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 230, 230, 230, 197, 248, 248, 248, 193, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 189, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 152, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 150, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 33, 255, 255, 255, 151, 255, 255, 255, 190, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 191, 255, 255, 255, 189, 255, 255, 255, 150, 255, 255, 255, 32, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -19,9 +19,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_pqkb6"] -image = SubResource("Image_pe7av") +image = SubResource("Image_7tfk3") -[sub_resource type="Image" id="Image_s2c7i"] +[sub_resource type="Image" id="Image_8lhe0"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 13, 255, 255, 255, 96, 255, 255, 255, 136, 255, 255, 255, 173, 255, 255, 255, 173, 255, 255, 255, 136, 255, 255, 255, 95, 255, 255, 255, 11, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 56, 255, 255, 255, 171, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 168, 255, 255, 255, 51, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 56, 255, 255, 255, 191, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 190, 255, 255, 255, 50, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 12, 255, 255, 255, 171, 198, 198, 198, 255, 198, 198, 198, 255, 176, 176, 176, 255, 81, 81, 81, 255, 43, 43, 43, 255, 43, 43, 43, 255, 83, 83, 83, 255, 177, 177, 177, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 168, 255, 255, 255, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 97, 198, 198, 198, 255, 198, 198, 198, 255, 176, 176, 176, 255, 37, 37, 37, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 39, 39, 39, 255, 179, 179, 179, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 96, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 137, 198, 198, 198, 255, 198, 198, 198, 255, 81, 81, 81, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 86, 86, 86, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 154, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 174, 198, 198, 198, 255, 198, 198, 198, 255, 43, 43, 43, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 43, 43, 43, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 180, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 173, 198, 198, 198, 255, 198, 198, 198, 255, 43, 43, 43, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 44, 44, 44, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 180, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 136, 198, 198, 198, 255, 198, 198, 198, 255, 83, 83, 83, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 88, 88, 88, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 152, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 95, 198, 198, 198, 255, 198, 198, 198, 255, 178, 178, 178, 255, 39, 39, 39, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 26, 26, 26, 255, 42, 42, 42, 255, 181, 181, 181, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 94, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 11, 255, 255, 255, 169, 198, 198, 198, 255, 198, 198, 198, 255, 179, 179, 179, 255, 86, 86, 86, 255, 43, 43, 43, 255, 44, 44, 44, 255, 88, 88, 88, 255, 181, 181, 181, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 165, 255, 255, 255, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 52, 255, 255, 255, 190, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 189, 255, 255, 255, 46, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 50, 255, 255, 255, 168, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 198, 198, 198, 255, 255, 255, 255, 165, 255, 255, 255, 46, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 10, 255, 255, 255, 96, 255, 255, 255, 154, 255, 255, 255, 180, 255, 255, 255, 180, 255, 255, 255, 152, 255, 255, 255, 94, 255, 255, 255, 9, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -31,9 +31,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_sogt1"] -image = SubResource("Image_s2c7i") +image = SubResource("Image_8lhe0") -[sub_resource type="Image" id="Image_ox8g0"] +[sub_resource type="Image" id="Image_4si8v"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 42, 42, 42, 12, 26, 26, 26, 67, 26, 26, 26, 105, 27, 27, 27, 122, 27, 27, 27, 122, 26, 26, 26, 105, 27, 27, 27, 66, 46, 46, 46, 11, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 29, 29, 29, 44, 27, 27, 27, 122, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 122, 30, 30, 30, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 29, 29, 29, 44, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 30, 30, 30, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 42, 42, 42, 12, 27, 27, 27, 122, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 121, 46, 46, 46, 11, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 67, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 65, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 105, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 104, 255, 255, 255, 0, 255, 255, 255, 0, 27, 27, 27, 122, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 122, 255, 255, 255, 0, 255, 255, 255, 0, 27, 27, 27, 122, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 121, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 105, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 103, 255, 255, 255, 0, 255, 255, 255, 0, 27, 27, 27, 66, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 65, 255, 255, 255, 0, 255, 255, 255, 0, 46, 46, 46, 11, 27, 27, 27, 122, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 121, 51, 51, 51, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 30, 30, 30, 42, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 31, 31, 31, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 30, 30, 30, 42, 27, 27, 27, 121, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 121, 31, 31, 31, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 46, 46, 46, 11, 27, 27, 27, 65, 27, 27, 27, 104, 27, 27, 27, 122, 27, 27, 27, 121, 27, 27, 27, 103, 27, 27, 27, 65, 51, 51, 51, 10, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -43,9 +43,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_bym57"] -image = SubResource("Image_ox8g0") +image = SubResource("Image_4si8v") -[sub_resource type="Image" id="Image_bqrqi"] +[sub_resource type="Image" id="Image_tpykb"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 33, 33, 33, 23, 27, 27, 27, 103, 26, 26, 26, 127, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 127, 27, 27, 27, 102, 34, 34, 34, 22, 255, 255, 255, 0, 255, 255, 255, 0, 27, 27, 27, 103, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 27, 27, 27, 101, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 127, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 127, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 255, 255, 255, 0, 255, 255, 255, 0, 26, 26, 26, 127, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 127, 255, 255, 255, 0, 255, 255, 255, 0, 27, 27, 27, 102, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 28, 28, 28, 100, 255, 255, 255, 0, 255, 255, 255, 0, 34, 34, 34, 22, 27, 27, 27, 101, 26, 26, 26, 127, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 128, 26, 26, 26, 127, 28, 28, 28, 100, 36, 36, 36, 21, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -55,7 +55,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_n26h3"] -image = SubResource("Image_bqrqi") +image = SubResource("Image_tpykb") [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_t8gt0"] content_margin_left = 4.0 @@ -84,7 +84,7 @@ expand_margin_top = 2.0 expand_margin_right = 2.0 expand_margin_bottom = 2.0 -[sub_resource type="Image" id="Image_gof06"] +[sub_resource type="Image" id="Image_f268y"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 179, 179, 179, 30, 178, 178, 178, 103, 178, 178, 178, 46, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 31, 178, 178, 178, 115, 178, 178, 178, 115, 176, 176, 176, 48, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 176, 176, 176, 48, 178, 178, 178, 115, 178, 178, 178, 115, 176, 176, 176, 48, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 176, 176, 176, 48, 178, 178, 178, 115, 178, 178, 178, 115, 173, 173, 173, 31, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 48, 178, 178, 178, 115, 178, 178, 178, 115, 181, 181, 181, 31, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 48, 178, 178, 178, 115, 178, 178, 178, 115, 179, 179, 179, 47, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 31, 178, 178, 178, 115, 178, 178, 178, 115, 179, 179, 179, 47, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 179, 179, 179, 30, 178, 178, 178, 103, 178, 178, 178, 46, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -94,9 +94,9 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_mqdbu"] -image = SubResource("Image_gof06") +image = SubResource("Image_f268y") -[sub_resource type="Image" id="Image_6w8lb"] +[sub_resource type="Image" id="Image_0sndq"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 178, 178, 178, 46, 178, 178, 178, 103, 176, 176, 176, 29, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 48, 178, 178, 178, 115, 178, 178, 178, 115, 181, 181, 181, 31, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 48, 178, 178, 178, 115, 178, 178, 178, 115, 179, 179, 179, 47, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 31, 178, 178, 178, 115, 178, 178, 178, 115, 179, 179, 179, 47, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 31, 178, 178, 178, 115, 178, 178, 178, 115, 176, 176, 176, 48, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 176, 176, 176, 48, 178, 178, 178, 115, 178, 178, 178, 115, 176, 176, 176, 48, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 176, 176, 176, 48, 178, 178, 178, 115, 178, 178, 178, 115, 173, 173, 173, 31, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 178, 178, 178, 46, 178, 178, 178, 103, 179, 179, 179, 30, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -106,7 +106,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_2lr15"] -image = SubResource("Image_6w8lb") +image = SubResource("Image_0sndq") [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m1ydj"] content_margin_left = 4.0 diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..adea1a7 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,37 @@ +[preset.0] + +name="Web" +platform="Web" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../Builds/Raise Your Wand/0.1.0/raiseYourWand.html" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +variant/extensions_support=false +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=false +html/export_icon=true +html/custom_html_shell="" +html/head_include="" +html/canvas_resize_policy=2 +html/focus_canvas_on_start=true +html/experimental_virtual_keyboard=false +progressive_web_app/enabled=false +progressive_web_app/offline_page="" +progressive_web_app/display=1 +progressive_web_app/orientation=0 +progressive_web_app/icon_144x144="" +progressive_web_app/icon_180x180="" +progressive_web_app/icon_512x512="" +progressive_web_app/background_color=Color(0, 0, 0, 1) diff --git a/project.godot b/project.godot index bf0d48b..75d7504 100644 --- a/project.godot +++ b/project.godot @@ -78,19 +78,27 @@ Spell3={ } Spell4={ "deadzone": 0.5, -"events": [] +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":53,"key_label":0,"unicode":53,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194443,"key_label":0,"unicode":53,"echo":false,"script":null) +] } Spell5={ "deadzone": 0.5, -"events": [] +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":54,"key_label":0,"unicode":54,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194444,"key_label":0,"unicode":54,"echo":false,"script":null) +] } Spell6={ "deadzone": 0.5, -"events": [] +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":55,"key_label":0,"unicode":55,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194445,"key_label":0,"unicode":55,"echo":false,"script":null) +] } Spell7={ "deadzone": 0.5, -"events": [] +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":56,"key_label":0,"unicode":56,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194446,"key_label":0,"unicode":56,"echo":false,"script":null) +] } [rendering]