From 8068f33302877daddd419660e8c91f31614f73c7 Mon Sep 17 00:00:00 2001 From: Zenny Date: Thu, 5 Dec 2024 22:45:13 -0800 Subject: [PATCH] Refactor enemy view model for data viewer project --- src/data_viewer/DataViewerRepository.cs | 10 + src/data_viewer/DataViewerRepository.tscn | 9 + src/enemy/Enemy.cs | 84 +-- src/enemy/EnemyModelView.cs | 108 ++++ src/enemy/enemy_types/michael/Michael.tscn | 596 +---------------- .../enemy_types/michael/MichaelModelView.tscn | 600 ++++++++++++++++++ src/enemy/enemy_types/sproingy/Sproingy.tscn | 542 +--------------- .../sproingy/SproingyModelView.tscn | 521 +++++++++++++++ src/items/restorative/Restorative.tscn | 3 + src/player/Player.tscn | 4 +- 10 files changed, 1270 insertions(+), 1207 deletions(-) create mode 100644 src/data_viewer/DataViewerRepository.cs create mode 100644 src/data_viewer/DataViewerRepository.tscn create mode 100644 src/enemy/EnemyModelView.cs create mode 100644 src/enemy/enemy_types/michael/MichaelModelView.tscn create mode 100644 src/enemy/enemy_types/sproingy/SproingyModelView.tscn diff --git a/src/data_viewer/DataViewerRepository.cs b/src/data_viewer/DataViewerRepository.cs new file mode 100644 index 00000000..a76d9294 --- /dev/null +++ b/src/data_viewer/DataViewerRepository.cs @@ -0,0 +1,10 @@ +using Chickensoft.AutoInject; +using Chickensoft.Introspection; +using Godot; + +[Meta(typeof(IAutoNode))] +public partial class DataViewerRepository : Node +{ + [Export] + private Godot.Collections.Array _modelsToDisplay; +} \ No newline at end of file diff --git a/src/data_viewer/DataViewerRepository.tscn b/src/data_viewer/DataViewerRepository.tscn new file mode 100644 index 00000000..46f3a787 --- /dev/null +++ b/src/data_viewer/DataViewerRepository.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=4 format=3 uid="uid://c16i1gmg6yu5a"] + +[ext_resource type="Script" path="res://src/data_viewer/DataViewerRepository.cs" id="1_1cvot"] +[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/michael/MichaelModelView.tscn" id="2_8autu"] +[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/sproingy/SproingyModelView.tscn" id="3_0bpmu"] + +[node name="DataViewerRepository" type="Node"] +script = ExtResource("1_1cvot") +_modelsToDisplay = [ExtResource("2_8autu"), ExtResource("3_0bpmu")] diff --git a/src/enemy/Enemy.cs b/src/enemy/Enemy.cs index a46c4242..f56061f0 100644 --- a/src/enemy/Enemy.cs +++ b/src/enemy/Enemy.cs @@ -53,21 +53,9 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide [Node] public Timer AttackTimer { get; set; } = default!; - [Node] public AnimatedSprite2D AnimatedSprite { get; set; } = default!; - [Node] public RayCast3D Raycast { get; set; } = default!; - [Node] public AnimationPlayer AnimationPlayer { get; set; } = default!; - - [Node] public AnimationTree AnimationTree { get; set; } = default!; - - [Node] public IHitbox Hitbox { get; set; } = default!; - - private const string IDLE_FORWARD = "idle_front_walk"; - private const string IDLE_LEFT = "idle_left_walk"; - private const string IDLE_BACK = "idle_back_walk"; - - private const string ATTACK_FORWARD = "attack"; + [Node] public EnemyModelView EnemyModelView { get; set; } = default!; private float _knockbackStrength = 0.0f; private Vector3 _knockbackDirection = Vector3.Zero; @@ -78,20 +66,6 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide EnemyLogic.Set(EnemyStatResource); EnemyLogic.Set(this as IEnemy); EnemyLogic.Set(GameRepo); - AnimationTree.AnimationFinished += AnimationTree_AnimationFinished; - AnimationTree.Get("parameters/playback").As().Start(IDLE_FORWARD); - } - - private void AnimationTree_AnimationFinished(StringName animName) - { - if (animName == "attack") - AnimationTree.Get("parameters/playback").As().Travel(IDLE_FORWARD); - } - - private void DeathAnimationPlayer_AnimationFinished(StringName animName) - { - GameEventDepot.OnEnemyDefeated(GlobalPosition, EnemyStatResource); - QueueFree(); } public void OnReady() @@ -100,7 +74,7 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide CollisionDetector = CollisionDetectorScene.Instantiate(); CollisionDetector.AreaEntered += OnPlayerHitboxEntered; AddChild(CollisionDetector); - Hitbox.AreaEntered += Hitbox_AreaEntered; + EnemyModelView.Hitbox.AreaEntered += Hitbox_AreaEntered; } private void Hitbox_AreaEntered(Area3D area) @@ -130,15 +104,13 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide EnemyBinding .Handle((in EnemyLogic.Output.MovementComputed output) => { - RotateEnemy(-GameRepo.PlayerGlobalTransform.Value.Basis.Z); + EnemyModelView.RotateModel(GlobalTransform.Basis, -GameRepo.PlayerGlobalTransform.Value.Basis.Z); _knockbackStrength = _knockbackStrength * 0.9f; MoveAndCollide(output.LinearVelocity + (_knockbackDirection * _knockbackStrength)); }) .Handle((in EnemyLogic.Output.HitByPlayer output) => { - LoadShader("res://src/vfx/shaders/DamageHit.gdshader"); - var tweener = GetTree().CreateTween(); - tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 1.0f); + EnemyModelView.PlayHitAnimation(); // TODO: Make this an event to notify game that player hit someone if (GameRepo.PlayerData.Inventory.EquippedWeapon.Value.WeaponStats.WeaponTags.Contains(WeaponTag.SelfDamage)) GameRepo.PlayerData.SetCurrentHP(GameRepo.PlayerData.CurrentHP.Value - 5); @@ -150,15 +122,15 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide }) .Handle((in EnemyLogic.Output.Attack _) => { - AnimationTree.Get("parameters/playback").As().Travel("attack"); + EnemyModelView.PlayAttackAnimation(); }) .Handle((in EnemyLogic.Output.Defeated output) => { - LoadShader("res://src/vfx/shaders/PixelMelt.gdshader"); + EnemyModelView.PlayDeathAnimation(); var tweener = GetTree().CreateTween(); - tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 0.8f); - GameEventDepot.OnEnemyDefeated(GlobalPosition, EnemyStatResource); + tweener.TweenInterval(1.0f); tweener.TweenCallback(Callable.From(QueueFree)); + GameEventDepot.OnEnemyDefeated(GlobalPosition, EnemyStatResource); }); this.Provide(); @@ -175,14 +147,6 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide PatrolTimer.WaitTime = rng.RandfRange(7.0f, 15.0f); } - private void LoadShader(string shaderPath) - { - var shader = GD.Load(shaderPath); - AnimatedSprite.Material = new ShaderMaterial(); - var shaderMaterial = (ShaderMaterial)AnimatedSprite.Material; - shaderMaterial.Shader = shader; - } - public void OnExitTree() { EnemyLogic.Stop(); @@ -255,42 +219,14 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide } } - private void RotateEnemy(Vector3 cameraDirection) - { - var rotateUpperThreshold = 0.85f; - var rotateLowerThreshold = 0.3f; - - var enemyForwardDirection = GlobalTransform.Basis.Z; - var enemyLeftDirection = GlobalTransform.Basis.X; - - var leftDotProduct = enemyLeftDirection.Dot(cameraDirection); - var forwardDotProduct = enemyForwardDirection.Dot(cameraDirection); - - // Check if forward facing. If the dot product is -1, the enemy is facing the camera. - if (forwardDotProduct < -rotateUpperThreshold) - AnimationTree.Get("parameters/playback").As().Travel("idle_front_walk"); - // Check if backward facing. If the dot product is 1, the enemy is facing the same direction as the camera. - else if (forwardDotProduct > rotateUpperThreshold) - AnimationTree.Get("parameters/playback").As().Travel("idle_back_walk"); - else - { - // If the dot product of the perpendicular direction is positive (up to 1), the enemy is facing to the left (since it's mirrored). - AnimatedSprite.FlipH = leftDotProduct > 0; - // Check if side facing. If the dot product is close to zero in the positive or negative direction, its close to the threshold for turning. - if (Mathf.Abs(forwardDotProduct) < rotateLowerThreshold) - AnimationTree.Get("parameters/playback").As().Travel("idle_left_walk"); - } - } - private void OnHPChanged(double newHP) { if (newHP <= 0) EnemyLogic.Input(new EnemyLogic.Input.EnemyDefeated()); } - private void SetShaderValue(float shaderValue) + private void DoNothing() { - var shaderMaterial = (ShaderMaterial)AnimatedSprite.Material; - shaderMaterial.SetShaderParameter("progress", shaderValue); + } } diff --git a/src/enemy/EnemyModelView.cs b/src/enemy/EnemyModelView.cs new file mode 100644 index 00000000..5ed11bd4 --- /dev/null +++ b/src/enemy/EnemyModelView.cs @@ -0,0 +1,108 @@ +using Chickensoft.AutoInject; +using Chickensoft.GodotNodeInterfaces; +using Chickensoft.Introspection; +using GameJamDungeon; +using Godot; + +public interface IEnemyModelView : INode3D +{ + public void PlayAttackAnimation(); + + public void PlayHitAnimation(); + public void PlayDeathAnimation(); + + public void RotateModel(Basis enemyBasis, Vector3 cameraDirection); +} + +[Meta(typeof(IAutoNode))] +public partial class EnemyModelView : Node3D, IEnemyModelView +{ + private const string ATTACK = "attack"; + private const string IDLE_FORWARD = "idle_front_walk"; + private const string IDLE_LEFT = "idle_left_walk"; + private const string IDLE_BACK = "idle_back_walk"; + private const string PARAMETERS_PLAYBACK = "parameters/playback"; + + public override void _Notification(int what) => this.Notify(what); + + [Node] public AnimatedSprite2D AnimatedSprite { get; set; } = default!; + + [Node] public IHitbox Hitbox { get; set; } = default!; + + [Node] public AnimationPlayer AnimationPlayer { get; set; } = default!; + + [Node] public AnimationTree AnimationTree { get; set; } = default!; + + public void Setup() + { + AnimationTree.AnimationFinished += AnimationTree_AnimationFinished; + AnimationTree.Get(PARAMETERS_PLAYBACK).As().Start(IDLE_FORWARD); + } + + public void PlayAttackAnimation() + { + AnimationTree.Get(PARAMETERS_PLAYBACK).As().Travel(ATTACK); + } + + public void PlayHitAnimation() + { + LoadShader("res://src/vfx/shaders/DamageHit.gdshader"); + var tweener = GetTree().CreateTween(); + tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 1.0f); + } + + public void PlayDeathAnimation() + { + LoadShader("res://src/vfx/shaders/PixelMelt.gdshader"); + var tweener = GetTree().CreateTween(); + tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 0.8f); + tweener.TweenCallback(Callable.From(QueueFree)); + } + + public void RotateModel(Basis enemyBasis, Vector3 cameraDirection) + { + var rotateUpperThreshold = 0.85f; + var rotateLowerThreshold = 0.3f; + + var enemyForwardDirection = enemyBasis.Z; + var enemyLeftDirection = enemyBasis.X; + + var leftDotProduct = enemyLeftDirection.Dot(cameraDirection); + var forwardDotProduct = enemyForwardDirection.Dot(cameraDirection); + + // Check if forward facing. If the dot product is -1, the enemy is facing the camera. + if (forwardDotProduct < -rotateUpperThreshold) + AnimationTree.Get(PARAMETERS_PLAYBACK).As().Travel(IDLE_FORWARD); + // Check if backward facing. If the dot product is 1, the enemy is facing the same direction as the camera. + else if (forwardDotProduct > rotateUpperThreshold) + AnimationTree.Get(PARAMETERS_PLAYBACK).As().Travel(IDLE_BACK); + else + { + // If the dot product of the perpendicular direction is positive (up to 1), the enemy is facing to the left (since it's mirrored). + AnimatedSprite.FlipH = leftDotProduct > 0; + // Check if side facing. If the dot product is close to zero in the positive or negative direction, its close to the threshold for turning. + if (Mathf.Abs(forwardDotProduct) < rotateLowerThreshold) + AnimationTree.Get(PARAMETERS_PLAYBACK).As().Travel(IDLE_LEFT); + } + } + + private void LoadShader(string shaderPath) + { + var shader = GD.Load(shaderPath); + AnimatedSprite.Material = new ShaderMaterial(); + var shaderMaterial = (ShaderMaterial)AnimatedSprite.Material; + shaderMaterial.Shader = shader; + } + + private void AnimationTree_AnimationFinished(StringName animName) + { + if (animName == "attack") + AnimationTree.Get("parameters/playback").As().Travel(IDLE_FORWARD); + } + + private void SetShaderValue(float shaderValue) + { + var shaderMaterial = (ShaderMaterial)AnimatedSprite.Material; + shaderMaterial.SetShaderParameter("progress", shaderValue); + } +} diff --git a/src/enemy/enemy_types/michael/Michael.tscn b/src/enemy/enemy_types/michael/Michael.tscn index e064150a..79d82ac1 100644 --- a/src/enemy/enemy_types/michael/Michael.tscn +++ b/src/enemy/enemy_types/michael/Michael.tscn @@ -1,77 +1,8 @@ -[gd_scene load_steps=104 format=3 uid="uid://b0gwivt7cw7nd"] +[gd_scene load_steps=7 format=3 uid="uid://b0gwivt7cw7nd"] [ext_resource type="Script" path="res://src/enemy/Enemy.cs" id="1_a6wro"] [ext_resource type="Script" path="res://src/enemy/EnemyStatResource.cs" id="2_x4pjh"] -[ext_resource type="Script" path="res://src/hitbox/Hitbox.cs" id="3_aiftp"] -[ext_resource type="Texture2D" uid="uid://clpqh2pyqljkn" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (1).png" id="4_7kurm"] -[ext_resource type="Texture2D" uid="uid://b0dec8ak2bo5t" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (2).png" id="5_1a1hr"] -[ext_resource type="Texture2D" uid="uid://tnmyksd68vmv" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (3).png" id="6_p47tl"] -[ext_resource type="Texture2D" uid="uid://duwipvc2kl6xa" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (4).png" id="7_efmib"] -[ext_resource type="Texture2D" uid="uid://dcd4v7jjxr8x2" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (5).png" id="8_ujyav"] -[ext_resource type="Texture2D" uid="uid://bxq0f45xooiqr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (6).png" id="9_hft6g"] -[ext_resource type="Texture2D" uid="uid://bw8vkfmtcu5g0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (7).png" id="10_idqta"] -[ext_resource type="Texture2D" uid="uid://gbit1q52jmqj" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (8).png" id="11_q3ktd"] -[ext_resource type="Texture2D" uid="uid://c41kok75k64ej" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (9).png" id="12_uvwho"] -[ext_resource type="Texture2D" uid="uid://dhiv7v5yhswom" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (10).png" id="13_jtb3t"] -[ext_resource type="Texture2D" uid="uid://dex3f0i2ubpj" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (11).png" id="14_v7ka5"] -[ext_resource type="Texture2D" uid="uid://d0hdrusbvmkec" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (12).png" id="15_hayam"] -[ext_resource type="Texture2D" uid="uid://ocftoaoswly6" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (13).png" id="16_lbciq"] -[ext_resource type="Texture2D" uid="uid://bkf1xqquqgjjq" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (14).png" id="17_veqcb"] -[ext_resource type="Texture2D" uid="uid://dtpxfmxxov8q5" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (15).png" id="18_h8egq"] -[ext_resource type="Texture2D" uid="uid://dv7ol6gqs1ijb" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (16).png" id="19_a4qa5"] -[ext_resource type="Texture2D" uid="uid://cydgp2acfm14k" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (17).png" id="20_oorfu"] -[ext_resource type="Texture2D" uid="uid://e2hjjnjqpmp7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (18).png" id="21_n7px3"] -[ext_resource type="Texture2D" uid="uid://dpptqse5mh1ko" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (19).png" id="22_n70k4"] -[ext_resource type="Texture2D" uid="uid://b8g604p1a2ljl" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (20).png" id="23_qcoa4"] -[ext_resource type="Texture2D" uid="uid://ddfq7tecw83fx" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (21).png" id="24_f7cjx"] -[ext_resource type="Texture2D" uid="uid://btrf3scsac37s" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (22).png" id="25_qpubw"] -[ext_resource type="Texture2D" uid="uid://dmypmwghesupr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (23).png" id="26_n0ais"] -[ext_resource type="Texture2D" uid="uid://bvu44f4fitum4" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (1).png" id="27_uib7b"] -[ext_resource type="Texture2D" uid="uid://blf4gmnjt20y3" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (2).png" id="28_jg00w"] -[ext_resource type="Texture2D" uid="uid://cul5jw68t1b3y" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (3).png" id="29_mqu6a"] -[ext_resource type="Texture2D" uid="uid://bwklw2qs8ufon" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (4).png" id="30_ry5jb"] -[ext_resource type="Texture2D" uid="uid://dhh2rs4s844nk" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (5).png" id="31_2g8kb"] -[ext_resource type="Texture2D" uid="uid://dxjc5xyh51tnn" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (6).png" id="32_m1dac"] -[ext_resource type="Texture2D" uid="uid://8oafxlrdhplr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (7).png" id="33_kfyq1"] -[ext_resource type="Texture2D" uid="uid://civrqoexjyvm7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (8).png" id="34_h6mq5"] -[ext_resource type="Texture2D" uid="uid://diadkmfrm56h0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (9).png" id="35_mlsep"] -[ext_resource type="Texture2D" uid="uid://dhljaesglhg2y" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (10).png" id="36_54yk5"] -[ext_resource type="Texture2D" uid="uid://7k0l056mju3w" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (11).png" id="37_5aaoh"] -[ext_resource type="Texture2D" uid="uid://cfmq8b3kw5wh3" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (12).png" id="38_oyy4x"] -[ext_resource type="Texture2D" uid="uid://dus64avhcu6d7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (13).png" id="39_25inv"] -[ext_resource type="Texture2D" uid="uid://4gx00xgaupf5" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (14).png" id="40_nuosk"] -[ext_resource type="Texture2D" uid="uid://27cawg74fw6" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (15).png" id="41_bc0t3"] -[ext_resource type="Texture2D" uid="uid://wwqv33fco246" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (16).png" id="42_ornx6"] -[ext_resource type="Texture2D" uid="uid://dnub88o6vcla" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (17).png" id="43_l4fbt"] -[ext_resource type="Texture2D" uid="uid://2qe16sypi6hn" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (18).png" id="44_1nh2b"] -[ext_resource type="Texture2D" uid="uid://c3qeyxovf28nj" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (19).png" id="45_oda4m"] -[ext_resource type="Texture2D" uid="uid://cqhy68310vab8" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (20).png" id="46_od0c8"] -[ext_resource type="Texture2D" uid="uid://c8733bu8i3eaf" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (21).png" id="47_ce5i7"] -[ext_resource type="Texture2D" uid="uid://hpsbpgrphbii" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (22).png" id="48_f62td"] -[ext_resource type="Texture2D" uid="uid://bcynrwxieuq0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (23).png" id="49_5vb8v"] -[ext_resource type="Texture2D" uid="uid://y4tp8m3dcfw7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (1).png" id="50_doj3b"] -[ext_resource type="Texture2D" uid="uid://c7cvmoa8lhrvi" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (2).png" id="51_3v356"] -[ext_resource type="Texture2D" uid="uid://b4nyonn3b4xof" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (3).png" id="52_xb1vo"] -[ext_resource type="Texture2D" uid="uid://ce7pw41xbkcvc" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (4).png" id="53_icnc1"] -[ext_resource type="Texture2D" uid="uid://nt64es5vcys0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (5).png" id="54_5isob"] -[ext_resource type="Texture2D" uid="uid://b4bljbfm1ka7b" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (6).png" id="55_vjhm7"] -[ext_resource type="Texture2D" uid="uid://c8y604q1oewjf" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (7).png" id="56_hkxac"] -[ext_resource type="Texture2D" uid="uid://dx8105gg3sg2j" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (8).png" id="57_a587j"] -[ext_resource type="Texture2D" uid="uid://d0xsacm4b3iu7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (9).png" id="58_w3j1s"] -[ext_resource type="Texture2D" uid="uid://juj86cge7rwy" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (10).png" id="59_uxmwh"] -[ext_resource type="Texture2D" uid="uid://b3h4s6223r2vq" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (11).png" id="60_b1x6b"] -[ext_resource type="Texture2D" uid="uid://dqleuddk7hacs" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (12).png" id="61_6jdsb"] -[ext_resource type="Texture2D" uid="uid://dj1gi4clmp25d" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (13).png" id="62_g67yy"] -[ext_resource type="Texture2D" uid="uid://cjkeeqx8hgars" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (14).png" id="63_nwvwy"] -[ext_resource type="Texture2D" uid="uid://cr0anqdsluigu" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (15).png" id="64_j2a2k"] -[ext_resource type="Texture2D" uid="uid://bp1jcbuamvnfr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (16).png" id="65_yl8j2"] -[ext_resource type="Texture2D" uid="uid://k17pedht8d3k" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (17).png" id="66_v1ewt"] -[ext_resource type="Texture2D" uid="uid://dpbcbr11h5ax6" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (18).png" id="67_imbdg"] -[ext_resource type="Texture2D" uid="uid://d32qheseggy67" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (19).png" id="68_l685l"] -[ext_resource type="Texture2D" uid="uid://byqihscem8bk3" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (20).png" id="69_05v5q"] -[ext_resource type="Texture2D" uid="uid://vxphbifafq0q" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (21).png" id="70_mo3hn"] -[ext_resource type="Texture2D" uid="uid://7r30bjydumon" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (22).png" id="71_m1srp"] -[ext_resource type="Texture2D" uid="uid://djspx2smexhme" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (23).png" id="72_6s3ro"] +[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/michael/MichaelModelView.tscn" id="3_wrps7"] [sub_resource type="Resource" id="Resource_k2g1o"] script = ExtResource("2_x4pjh") @@ -98,484 +29,9 @@ DropsSoulGemChance = 0.75 height = 5.0 radius = 1.0 -[sub_resource type="BoxShape3D" id="BoxShape3D_0yire"] -size = Vector3(1, 0.565, 2) - [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_0h5s2"] radius = 0.193181 -[sub_resource type="ViewportTexture" id="ViewportTexture_57rcc"] -viewport_path = NodePath("Sprite/SubViewport") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_1fhn0"] - -[sub_resource type="SpriteFrames" id="SpriteFrames_artt5"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("4_7kurm") -}, { -"duration": 1.0, -"texture": ExtResource("5_1a1hr") -}, { -"duration": 1.0, -"texture": ExtResource("6_p47tl") -}, { -"duration": 1.0, -"texture": ExtResource("7_efmib") -}, { -"duration": 1.0, -"texture": ExtResource("8_ujyav") -}, { -"duration": 1.0, -"texture": ExtResource("9_hft6g") -}, { -"duration": 1.0, -"texture": ExtResource("10_idqta") -}, { -"duration": 1.0, -"texture": ExtResource("11_q3ktd") -}, { -"duration": 1.0, -"texture": ExtResource("12_uvwho") -}, { -"duration": 1.0, -"texture": ExtResource("13_jtb3t") -}, { -"duration": 1.0, -"texture": ExtResource("14_v7ka5") -}, { -"duration": 1.0, -"texture": ExtResource("15_hayam") -}, { -"duration": 1.0, -"texture": ExtResource("16_lbciq") -}, { -"duration": 1.0, -"texture": ExtResource("17_veqcb") -}, { -"duration": 1.0, -"texture": ExtResource("18_h8egq") -}, { -"duration": 1.0, -"texture": ExtResource("19_a4qa5") -}, { -"duration": 1.0, -"texture": ExtResource("20_oorfu") -}, { -"duration": 1.0, -"texture": ExtResource("21_n7px3") -}, { -"duration": 1.0, -"texture": ExtResource("22_n70k4") -}, { -"duration": 1.0, -"texture": ExtResource("23_qcoa4") -}, { -"duration": 1.0, -"texture": ExtResource("24_f7cjx") -}, { -"duration": 1.0, -"texture": ExtResource("25_qpubw") -}, { -"duration": 1.0, -"texture": ExtResource("26_n0ais") -}], -"loop": true, -"name": &"idle_back_walk", -"speed": 12.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": ExtResource("27_uib7b") -}, { -"duration": 1.0, -"texture": ExtResource("28_jg00w") -}, { -"duration": 1.0, -"texture": ExtResource("29_mqu6a") -}, { -"duration": 1.0, -"texture": ExtResource("30_ry5jb") -}, { -"duration": 1.0, -"texture": ExtResource("31_2g8kb") -}, { -"duration": 1.0, -"texture": ExtResource("32_m1dac") -}, { -"duration": 1.0, -"texture": ExtResource("33_kfyq1") -}, { -"duration": 1.0, -"texture": ExtResource("34_h6mq5") -}, { -"duration": 1.0, -"texture": ExtResource("35_mlsep") -}, { -"duration": 1.0, -"texture": ExtResource("36_54yk5") -}, { -"duration": 1.0, -"texture": ExtResource("37_5aaoh") -}, { -"duration": 1.0, -"texture": ExtResource("38_oyy4x") -}, { -"duration": 1.0, -"texture": ExtResource("39_25inv") -}, { -"duration": 1.0, -"texture": ExtResource("40_nuosk") -}, { -"duration": 1.0, -"texture": ExtResource("41_bc0t3") -}, { -"duration": 1.0, -"texture": ExtResource("42_ornx6") -}, { -"duration": 1.0, -"texture": ExtResource("43_l4fbt") -}, { -"duration": 1.0, -"texture": ExtResource("44_1nh2b") -}, { -"duration": 1.0, -"texture": ExtResource("45_oda4m") -}, { -"duration": 1.0, -"texture": ExtResource("46_od0c8") -}, { -"duration": 1.0, -"texture": ExtResource("47_ce5i7") -}, { -"duration": 1.0, -"texture": ExtResource("48_f62td") -}, { -"duration": 1.0, -"texture": ExtResource("49_5vb8v") -}], -"loop": true, -"name": &"idle_front_walk", -"speed": 12.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": ExtResource("50_doj3b") -}, { -"duration": 1.0, -"texture": ExtResource("51_3v356") -}, { -"duration": 1.0, -"texture": ExtResource("52_xb1vo") -}, { -"duration": 1.0, -"texture": ExtResource("53_icnc1") -}, { -"duration": 1.0, -"texture": ExtResource("54_5isob") -}, { -"duration": 1.0, -"texture": ExtResource("55_vjhm7") -}, { -"duration": 1.0, -"texture": ExtResource("56_hkxac") -}, { -"duration": 1.0, -"texture": ExtResource("57_a587j") -}, { -"duration": 1.0, -"texture": ExtResource("58_w3j1s") -}, { -"duration": 1.0, -"texture": ExtResource("59_uxmwh") -}, { -"duration": 1.0, -"texture": ExtResource("60_b1x6b") -}, { -"duration": 1.0, -"texture": ExtResource("61_6jdsb") -}, { -"duration": 1.0, -"texture": ExtResource("62_g67yy") -}, { -"duration": 1.0, -"texture": ExtResource("63_nwvwy") -}, { -"duration": 1.0, -"texture": ExtResource("64_j2a2k") -}, { -"duration": 1.0, -"texture": ExtResource("65_yl8j2") -}, { -"duration": 1.0, -"texture": ExtResource("66_v1ewt") -}, { -"duration": 1.0, -"texture": ExtResource("67_imbdg") -}, { -"duration": 1.0, -"texture": ExtResource("68_l685l") -}, { -"duration": 1.0, -"texture": ExtResource("69_05v5q") -}, { -"duration": 1.0, -"texture": ExtResource("70_mo3hn") -}, { -"duration": 1.0, -"texture": ExtResource("71_m1srp") -}, { -"duration": 1.0, -"texture": ExtResource("72_6s3ro") -}], -"loop": true, -"name": &"idle_left_walk", -"speed": 12.0 -}] - -[sub_resource type="Animation" id="Animation_41ppy"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [0] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_back_walk"] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_0k3e8"] -resource_name = "attack" -length = 0.416668 -step = 0.0166667 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_front_walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.0166667, 0.0333333, 0.05, 0.0666667, 0.0833333, 0.1, 0.116667, 0.133333, 0.15, 0.166667, 0.183333, 0.2, 0.216667, 0.233333, 0.283333, 0.3, 0.316667, 0.333333, 0.35, 0.366667, 0.383333, 0.4), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.0333333, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [true, false, true] -} - -[sub_resource type="Animation" id="Animation_ppbeh"] -resource_name = "idle_back_walk" -length = 1.91667 -loop_mode = 1 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.83333), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_back_walk"] -} - -[sub_resource type="Animation" id="Animation_3dffb"] -resource_name = "idle_front_walk" -length = 1.91667 -loop_mode = 1 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_front_walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite: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.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.83333), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] -} - -[sub_resource type="Animation" id="Animation_0qxqf"] -resource_name = "idle_left_walk" -length = 1.91667 -loop_mode = 1 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_left_walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite: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.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.83333), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_346xs"] -_data = { -&"RESET": SubResource("Animation_41ppy"), -&"attack": SubResource("Animation_0k3e8"), -&"idle_back_walk": SubResource("Animation_ppbeh"), -&"idle_front_walk": SubResource("Animation_3dffb"), -&"idle_left_walk": SubResource("Animation_0qxqf") -} - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_erbrx"] -animation = &"attack" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o0tmb"] -animation = &"idle_back_walk" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a6s5c"] -animation = &"idle_front_walk" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dvj10"] -animation = &"idle_left_walk" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vljb2"] -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3xv6a"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0h1op"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_361b7"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_wftla"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_gqqkl"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5cj36"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4t05h"] - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8hgxu"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_fq2yw"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yqm0k"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_7gios"] -states/End/position = Vector2(1464, 100) -states/attack/node = SubResource("AnimationNodeAnimation_erbrx") -states/attack/position = Vector2(1151, 86.9474) -states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb") -states/idle_back_walk/position = Vector2(490, 92.9474) -states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c") -states/idle_front_walk/position = Vector2(331, -12) -states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10") -states/idle_left_walk/position = Vector2(331, 196.947) -transitions = ["Start", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_vljb2"), "idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "attack", SubResource("AnimationNodeStateMachineTransition_mxl7w")] -graph_offset = Vector2(-190, -62.0526) - [node name="Michael" type="RigidBody3D"] process_mode = 1 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) @@ -606,18 +62,6 @@ unique_name_in_owner = true wait_time = 1.8 autostart = true -[node name="Hitbox" type="Area3D" parent="."] -unique_name_in_owner = true -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0) -collision_layer = 64 -collision_mask = 64 -script = ExtResource("3_aiftp") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.189337, 0.217529, -1.29986) -shape = SubResource("BoxShape3D_0yire") -disabled = true - [node name="Raycast" type="RayCast3D" parent="."] unique_name_in_owner = true transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0) @@ -634,39 +78,5 @@ avoidance_enabled = true debug_enabled = true debug_path_custom_color = Color(1, 0, 0, 1) -[node name="Sprite" type="Sprite3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.209741, 0) -billboard = 2 -shaded = true -double_sided = false -texture_filter = 0 -render_priority = 100 -texture = SubResource("ViewportTexture_57rcc") - -[node name="SubViewport" type="SubViewport" parent="Sprite"] -disable_3d = true -transparent_bg = true -handle_input_locally = false -size = Vector2i(200, 200) - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite/SubViewport"] +[node name="EnemyModelView" parent="." instance=ExtResource("3_wrps7")] unique_name_in_owner = true -texture_filter = 1 -texture_repeat = 1 -material = SubResource("ShaderMaterial_1fhn0") -position = Vector2(45, 45) -sprite_frames = SubResource("SpriteFrames_artt5") -animation = &"idle_back_walk" -offset = Vector2(45, 45) - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -unique_name_in_owner = true -libraries = { -&"": SubResource("AnimationLibrary_346xs") -} - -[node name="AnimationTree" type="AnimationTree" parent="."] -unique_name_in_owner = true -root_node = NodePath("%AnimationTree/..") -tree_root = SubResource("AnimationNodeStateMachine_7gios") -anim_player = NodePath("../AnimationPlayer") diff --git a/src/enemy/enemy_types/michael/MichaelModelView.tscn b/src/enemy/enemy_types/michael/MichaelModelView.tscn new file mode 100644 index 00000000..18fa727e --- /dev/null +++ b/src/enemy/enemy_types/michael/MichaelModelView.tscn @@ -0,0 +1,600 @@ +[gd_scene load_steps=100 format=3 uid="uid://bjg8wyvp8q6oc"] + +[ext_resource type="Script" path="res://src/enemy/EnemyModelView.cs" id="1_iajg3"] +[ext_resource type="Texture2D" uid="uid://clpqh2pyqljkn" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (1).png" id="2_3g180"] +[ext_resource type="Texture2D" uid="uid://b0dec8ak2bo5t" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (2).png" id="3_fssmb"] +[ext_resource type="Texture2D" uid="uid://tnmyksd68vmv" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (3).png" id="4_oy7vk"] +[ext_resource type="Texture2D" uid="uid://duwipvc2kl6xa" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (4).png" id="5_7jsk6"] +[ext_resource type="Texture2D" uid="uid://dcd4v7jjxr8x2" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (5).png" id="6_nntdb"] +[ext_resource type="Texture2D" uid="uid://bxq0f45xooiqr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (6).png" id="7_1br6i"] +[ext_resource type="Texture2D" uid="uid://bw8vkfmtcu5g0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (7).png" id="8_2m7tq"] +[ext_resource type="Texture2D" uid="uid://gbit1q52jmqj" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (8).png" id="9_d2pq5"] +[ext_resource type="Texture2D" uid="uid://c41kok75k64ej" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (9).png" id="10_p18ld"] +[ext_resource type="Texture2D" uid="uid://dhiv7v5yhswom" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (10).png" id="11_8kbdd"] +[ext_resource type="Texture2D" uid="uid://dex3f0i2ubpj" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (11).png" id="12_nb2qv"] +[ext_resource type="Texture2D" uid="uid://d0hdrusbvmkec" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (12).png" id="13_nqbx0"] +[ext_resource type="Texture2D" uid="uid://ocftoaoswly6" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (13).png" id="14_4depw"] +[ext_resource type="Texture2D" uid="uid://bkf1xqquqgjjq" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (14).png" id="15_fegyx"] +[ext_resource type="Texture2D" uid="uid://dtpxfmxxov8q5" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (15).png" id="16_eh46c"] +[ext_resource type="Texture2D" uid="uid://dv7ol6gqs1ijb" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (16).png" id="17_dgujy"] +[ext_resource type="Texture2D" uid="uid://cydgp2acfm14k" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (17).png" id="18_6ogef"] +[ext_resource type="Texture2D" uid="uid://e2hjjnjqpmp7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (18).png" id="19_cvhi5"] +[ext_resource type="Texture2D" uid="uid://dpptqse5mh1ko" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (19).png" id="20_e3x3h"] +[ext_resource type="Texture2D" uid="uid://b8g604p1a2ljl" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (20).png" id="21_mqikf"] +[ext_resource type="Texture2D" uid="uid://ddfq7tecw83fx" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (21).png" id="22_ide2k"] +[ext_resource type="Texture2D" uid="uid://btrf3scsac37s" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (22).png" id="23_114qx"] +[ext_resource type="Texture2D" uid="uid://dmypmwghesupr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/BACK/Michael_Walk_Idle_Back (23).png" id="24_smnr6"] +[ext_resource type="Texture2D" uid="uid://bvu44f4fitum4" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (1).png" id="25_g6ih4"] +[ext_resource type="Texture2D" uid="uid://blf4gmnjt20y3" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (2).png" id="26_odtr7"] +[ext_resource type="Texture2D" uid="uid://cul5jw68t1b3y" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (3).png" id="27_off5l"] +[ext_resource type="Texture2D" uid="uid://bwklw2qs8ufon" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (4).png" id="28_4vcrr"] +[ext_resource type="Texture2D" uid="uid://dhh2rs4s844nk" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (5).png" id="29_4n14r"] +[ext_resource type="Texture2D" uid="uid://dxjc5xyh51tnn" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (6).png" id="30_6n05b"] +[ext_resource type="Texture2D" uid="uid://8oafxlrdhplr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (7).png" id="31_o6i18"] +[ext_resource type="Texture2D" uid="uid://civrqoexjyvm7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (8).png" id="32_eal36"] +[ext_resource type="Texture2D" uid="uid://diadkmfrm56h0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (9).png" id="33_15p38"] +[ext_resource type="Texture2D" uid="uid://dhljaesglhg2y" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (10).png" id="34_6qpwn"] +[ext_resource type="Texture2D" uid="uid://7k0l056mju3w" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (11).png" id="35_8p80p"] +[ext_resource type="Texture2D" uid="uid://cfmq8b3kw5wh3" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (12).png" id="36_oitci"] +[ext_resource type="Texture2D" uid="uid://dus64avhcu6d7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (13).png" id="37_phxge"] +[ext_resource type="Texture2D" uid="uid://4gx00xgaupf5" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (14).png" id="38_6oh2p"] +[ext_resource type="Texture2D" uid="uid://27cawg74fw6" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (15).png" id="39_wt3ea"] +[ext_resource type="Texture2D" uid="uid://wwqv33fco246" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (16).png" id="40_ljwat"] +[ext_resource type="Texture2D" uid="uid://dnub88o6vcla" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (17).png" id="41_06o5y"] +[ext_resource type="Texture2D" uid="uid://2qe16sypi6hn" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (18).png" id="42_uwgce"] +[ext_resource type="Texture2D" uid="uid://c3qeyxovf28nj" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (19).png" id="43_akt6o"] +[ext_resource type="Texture2D" uid="uid://cqhy68310vab8" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (20).png" id="44_t12tj"] +[ext_resource type="Texture2D" uid="uid://c8733bu8i3eaf" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (21).png" id="45_4y5r2"] +[ext_resource type="Texture2D" uid="uid://hpsbpgrphbii" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (22).png" id="46_yewg2"] +[ext_resource type="Texture2D" uid="uid://bcynrwxieuq0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/FRONT/Michael_Front_ Walk_Idle (23).png" id="47_3si56"] +[ext_resource type="Texture2D" uid="uid://y4tp8m3dcfw7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (1).png" id="48_ggkw2"] +[ext_resource type="Texture2D" uid="uid://c7cvmoa8lhrvi" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (2).png" id="49_hyjj2"] +[ext_resource type="Texture2D" uid="uid://b4nyonn3b4xof" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (3).png" id="50_qbeo5"] +[ext_resource type="Texture2D" uid="uid://ce7pw41xbkcvc" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (4).png" id="51_7dc4b"] +[ext_resource type="Texture2D" uid="uid://nt64es5vcys0" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (5).png" id="52_1trpe"] +[ext_resource type="Texture2D" uid="uid://b4bljbfm1ka7b" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (6).png" id="53_c6kqk"] +[ext_resource type="Texture2D" uid="uid://c8y604q1oewjf" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (7).png" id="54_3mcds"] +[ext_resource type="Texture2D" uid="uid://dx8105gg3sg2j" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (8).png" id="55_dn7am"] +[ext_resource type="Texture2D" uid="uid://d0xsacm4b3iu7" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (9).png" id="56_lq65c"] +[ext_resource type="Texture2D" uid="uid://juj86cge7rwy" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (10).png" id="57_tcch6"] +[ext_resource type="Texture2D" uid="uid://b3h4s6223r2vq" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (11).png" id="58_y7io6"] +[ext_resource type="Texture2D" uid="uid://dqleuddk7hacs" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (12).png" id="59_jvp5u"] +[ext_resource type="Texture2D" uid="uid://dj1gi4clmp25d" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (13).png" id="60_jt1d1"] +[ext_resource type="Texture2D" uid="uid://cjkeeqx8hgars" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (14).png" id="61_o6ox2"] +[ext_resource type="Texture2D" uid="uid://cr0anqdsluigu" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (15).png" id="62_vld7d"] +[ext_resource type="Texture2D" uid="uid://bp1jcbuamvnfr" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (16).png" id="63_bv0fo"] +[ext_resource type="Texture2D" uid="uid://k17pedht8d3k" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (17).png" id="64_4r2e5"] +[ext_resource type="Texture2D" uid="uid://dpbcbr11h5ax6" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (18).png" id="65_d3oih"] +[ext_resource type="Texture2D" uid="uid://d32qheseggy67" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (19).png" id="66_iqbfc"] +[ext_resource type="Texture2D" uid="uid://byqihscem8bk3" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (20).png" id="67_o1iel"] +[ext_resource type="Texture2D" uid="uid://vxphbifafq0q" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (21).png" id="68_msiau"] +[ext_resource type="Texture2D" uid="uid://7r30bjydumon" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (22).png" id="69_lec8c"] +[ext_resource type="Texture2D" uid="uid://djspx2smexhme" path="res://src/enemy/enemy_types/michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (23).png" id="70_f0jo7"] +[ext_resource type="Script" path="res://src/hitbox/Hitbox.cs" id="71_ul4dn"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_v7t0v"] +viewport_path = NodePath("Sprite/SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_wey7h"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_v4v5p"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2_3g180") +}, { +"duration": 1.0, +"texture": ExtResource("3_fssmb") +}, { +"duration": 1.0, +"texture": ExtResource("4_oy7vk") +}, { +"duration": 1.0, +"texture": ExtResource("5_7jsk6") +}, { +"duration": 1.0, +"texture": ExtResource("6_nntdb") +}, { +"duration": 1.0, +"texture": ExtResource("7_1br6i") +}, { +"duration": 1.0, +"texture": ExtResource("8_2m7tq") +}, { +"duration": 1.0, +"texture": ExtResource("9_d2pq5") +}, { +"duration": 1.0, +"texture": ExtResource("10_p18ld") +}, { +"duration": 1.0, +"texture": ExtResource("11_8kbdd") +}, { +"duration": 1.0, +"texture": ExtResource("12_nb2qv") +}, { +"duration": 1.0, +"texture": ExtResource("13_nqbx0") +}, { +"duration": 1.0, +"texture": ExtResource("14_4depw") +}, { +"duration": 1.0, +"texture": ExtResource("15_fegyx") +}, { +"duration": 1.0, +"texture": ExtResource("16_eh46c") +}, { +"duration": 1.0, +"texture": ExtResource("17_dgujy") +}, { +"duration": 1.0, +"texture": ExtResource("18_6ogef") +}, { +"duration": 1.0, +"texture": ExtResource("19_cvhi5") +}, { +"duration": 1.0, +"texture": ExtResource("20_e3x3h") +}, { +"duration": 1.0, +"texture": ExtResource("21_mqikf") +}, { +"duration": 1.0, +"texture": ExtResource("22_ide2k") +}, { +"duration": 1.0, +"texture": ExtResource("23_114qx") +}, { +"duration": 1.0, +"texture": ExtResource("24_smnr6") +}], +"loop": true, +"name": &"idle_back_walk", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("25_g6ih4") +}, { +"duration": 1.0, +"texture": ExtResource("26_odtr7") +}, { +"duration": 1.0, +"texture": ExtResource("27_off5l") +}, { +"duration": 1.0, +"texture": ExtResource("28_4vcrr") +}, { +"duration": 1.0, +"texture": ExtResource("29_4n14r") +}, { +"duration": 1.0, +"texture": ExtResource("30_6n05b") +}, { +"duration": 1.0, +"texture": ExtResource("31_o6i18") +}, { +"duration": 1.0, +"texture": ExtResource("32_eal36") +}, { +"duration": 1.0, +"texture": ExtResource("33_15p38") +}, { +"duration": 1.0, +"texture": ExtResource("34_6qpwn") +}, { +"duration": 1.0, +"texture": ExtResource("35_8p80p") +}, { +"duration": 1.0, +"texture": ExtResource("36_oitci") +}, { +"duration": 1.0, +"texture": ExtResource("37_phxge") +}, { +"duration": 1.0, +"texture": ExtResource("38_6oh2p") +}, { +"duration": 1.0, +"texture": ExtResource("39_wt3ea") +}, { +"duration": 1.0, +"texture": ExtResource("40_ljwat") +}, { +"duration": 1.0, +"texture": ExtResource("41_06o5y") +}, { +"duration": 1.0, +"texture": ExtResource("42_uwgce") +}, { +"duration": 1.0, +"texture": ExtResource("43_akt6o") +}, { +"duration": 1.0, +"texture": ExtResource("44_t12tj") +}, { +"duration": 1.0, +"texture": ExtResource("45_4y5r2") +}, { +"duration": 1.0, +"texture": ExtResource("46_yewg2") +}, { +"duration": 1.0, +"texture": ExtResource("47_3si56") +}], +"loop": true, +"name": &"idle_front_walk", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("48_ggkw2") +}, { +"duration": 1.0, +"texture": ExtResource("49_hyjj2") +}, { +"duration": 1.0, +"texture": ExtResource("50_qbeo5") +}, { +"duration": 1.0, +"texture": ExtResource("51_7dc4b") +}, { +"duration": 1.0, +"texture": ExtResource("52_1trpe") +}, { +"duration": 1.0, +"texture": ExtResource("53_c6kqk") +}, { +"duration": 1.0, +"texture": ExtResource("54_3mcds") +}, { +"duration": 1.0, +"texture": ExtResource("55_dn7am") +}, { +"duration": 1.0, +"texture": ExtResource("56_lq65c") +}, { +"duration": 1.0, +"texture": ExtResource("57_tcch6") +}, { +"duration": 1.0, +"texture": ExtResource("58_y7io6") +}, { +"duration": 1.0, +"texture": ExtResource("59_jvp5u") +}, { +"duration": 1.0, +"texture": ExtResource("60_jt1d1") +}, { +"duration": 1.0, +"texture": ExtResource("61_o6ox2") +}, { +"duration": 1.0, +"texture": ExtResource("62_vld7d") +}, { +"duration": 1.0, +"texture": ExtResource("63_bv0fo") +}, { +"duration": 1.0, +"texture": ExtResource("64_4r2e5") +}, { +"duration": 1.0, +"texture": ExtResource("65_d3oih") +}, { +"duration": 1.0, +"texture": ExtResource("66_iqbfc") +}, { +"duration": 1.0, +"texture": ExtResource("67_o1iel") +}, { +"duration": 1.0, +"texture": ExtResource("68_msiau") +}, { +"duration": 1.0, +"texture": ExtResource("69_lec8c") +}, { +"duration": 1.0, +"texture": ExtResource("70_f0jo7") +}], +"loop": true, +"name": &"idle_left_walk", +"speed": 12.0 +}] + +[sub_resource type="BoxShape3D" id="BoxShape3D_1o50e"] +size = Vector3(1, 0.565, 2) + +[sub_resource type="Animation" id="Animation_41ppy"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hitbox/CollisionShape3D: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("Sprite/SubViewport/AnimatedSprite:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"idle_front_walk"] +} + +[sub_resource type="Animation" id="Animation_0k3e8"] +resource_name = "attack" +length = 0.416668 +step = 0.0166667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hitbox/CollisionShape3D:disabled") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0333333, 0.3), +"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("Sprite/SubViewport/AnimatedSprite:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"idle_front_walk"] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.0166667, 0.0333334, 0.0500001, 0.0666668, 0.0833335, 0.1, 0.116667, 0.133334, 0.15, 0.166667, 0.183334, 0.2, 0.216667, 0.233334, 0.25, 0.266667, 0.283334, 0.300001, 0.316667, 0.333334, 0.350001, 0.366667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +} + +[sub_resource type="Animation" id="Animation_ppbeh"] +resource_name = "idle_back_walk" +length = 1.91667 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.83333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"idle_back_walk"] +} + +[sub_resource type="Animation" id="Animation_3dffb"] +resource_name = "idle_front_walk" +length = 1.91667 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.8333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"idle_front_walk"] +} + +[sub_resource type="Animation" id="Animation_0qxqf"] +resource_name = "idle_left_walk" +length = 1.91667 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite/SubViewport/AnimatedSprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667, 1.25, 1.33333, 1.41667, 1.5, 1.58333, 1.66667, 1.75, 1.83333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite/SubViewport/AnimatedSprite:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"idle_left_walk"] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_346xs"] +_data = { +&"RESET": SubResource("Animation_41ppy"), +&"attack": SubResource("Animation_0k3e8"), +&"idle_back_walk": SubResource("Animation_ppbeh"), +&"idle_front_walk": SubResource("Animation_3dffb"), +&"idle_left_walk": SubResource("Animation_0qxqf") +} + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_erbrx"] +animation = &"attack" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o0tmb"] +animation = &"idle_back_walk" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a6s5c"] +animation = &"idle_front_walk" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dvj10"] +animation = &"idle_left_walk" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vljb2"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3xv6a"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0h1op"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_361b7"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_wftla"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_gqqkl"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5cj36"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4t05h"] + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8hgxu"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_fq2yw"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yqm0k"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_r23qr"] +states/End/position = Vector2(1464, 100) +states/attack/node = SubResource("AnimationNodeAnimation_erbrx") +states/attack/position = Vector2(1151, 86.9474) +states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb") +states/idle_back_walk/position = Vector2(490, 92.9474) +states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c") +states/idle_front_walk/position = Vector2(331, -12) +states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10") +states/idle_left_walk/position = Vector2(331, 196.947) +transitions = ["Start", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_vljb2"), "idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "attack", SubResource("AnimationNodeStateMachineTransition_mxl7w")] +graph_offset = Vector2(-190, -62.0526) + +[node name="EnemyModelView" type="Node3D"] +script = ExtResource("1_iajg3") + +[node name="Sprite" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.209741, 0) +billboard = 2 +shaded = true +double_sided = false +texture_filter = 0 +render_priority = 100 +texture = SubResource("ViewportTexture_v7t0v") + +[node name="SubViewport" type="SubViewport" parent="Sprite"] +disable_3d = true +transparent_bg = true +handle_input_locally = false +size = Vector2i(200, 200) + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite/SubViewport"] +unique_name_in_owner = true +texture_filter = 1 +texture_repeat = 1 +material = SubResource("ShaderMaterial_wey7h") +position = Vector2(45, 45) +sprite_frames = SubResource("SpriteFrames_v4v5p") +animation = &"idle_front_walk" +offset = Vector2(45, 45) + +[node name="Hitbox" type="Area3D" parent="."] +unique_name_in_owner = true +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0) +collision_layer = 64 +collision_mask = 64 +script = ExtResource("71_ul4dn") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.189337, 0.217529, -1.29986) +shape = SubResource("BoxShape3D_1o50e") +disabled = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +&"": SubResource("AnimationLibrary_346xs") +} + +[node name="AnimationTree" type="AnimationTree" parent="."] +unique_name_in_owner = true +root_node = NodePath("%AnimationTree/..") +tree_root = SubResource("AnimationNodeStateMachine_r23qr") +anim_player = NodePath("../AnimationPlayer") diff --git a/src/enemy/enemy_types/sproingy/Sproingy.tscn b/src/enemy/enemy_types/sproingy/Sproingy.tscn index 7e1cacb0..b6ac278e 100644 --- a/src/enemy/enemy_types/sproingy/Sproingy.tscn +++ b/src/enemy/enemy_types/sproingy/Sproingy.tscn @@ -1,63 +1,8 @@ -[gd_scene load_steps=89 format=3 uid="uid://bksq62muhk3h5"] +[gd_scene load_steps=7 format=3 uid="uid://bksq62muhk3h5"] [ext_resource type="Script" path="res://src/enemy/Enemy.cs" id="1_7tinp"] [ext_resource type="Script" path="res://src/enemy/EnemyStatResource.cs" id="2_j3knd"] -[ext_resource type="Script" path="res://src/hitbox/Hitbox.cs" id="3_usw2d"] -[ext_resource type="Texture2D" uid="uid://b8ntr7hh6rr5h" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 1.png" id="14_xn75i"] -[ext_resource type="Texture2D" uid="uid://csgthlou2tnvb" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 2.png" id="15_rgyxs"] -[ext_resource type="Texture2D" uid="uid://cfyxuk85350gn" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 3.png" id="16_nr3ob"] -[ext_resource type="Texture2D" uid="uid://dufdb5gc0gfkr" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 4.png" id="17_mm5kb"] -[ext_resource type="Texture2D" uid="uid://buu4btd3adrr4" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 5.png" id="18_0cern"] -[ext_resource type="Texture2D" uid="uid://ddgctjau0dnmh" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 6.png" id="19_15v02"] -[ext_resource type="Texture2D" uid="uid://2jwaacvarrha" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 7.png" id="20_0hgl8"] -[ext_resource type="Texture2D" uid="uid://8837jm7f78uo" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 8.png" id="21_rvvf2"] -[ext_resource type="Texture2D" uid="uid://devt1gmwduo5h" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 9.png" id="22_xxycn"] -[ext_resource type="Texture2D" uid="uid://cj3m4eyagiye6" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 10.png" id="23_qbfft"] -[ext_resource type="Texture2D" uid="uid://cyigr4eip1mxt" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 11.png" id="24_vtxk7"] -[ext_resource type="Texture2D" uid="uid://kavqjxq17m0p" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 12.png" id="25_2dtvy"] -[ext_resource type="Texture2D" uid="uid://bcce7b4wp6a4v" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 13.png" id="26_eqc8g"] -[ext_resource type="Texture2D" uid="uid://doiu8sug4t8ki" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 14.png" id="27_vcsgh"] -[ext_resource type="Texture2D" uid="uid://dqymhvgu03xpl" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 15.png" id="28_p3lwg"] -[ext_resource type="Texture2D" uid="uid://cjk1vjjk3gnjl" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 1.png" id="29_pis7y"] -[ext_resource type="Texture2D" uid="uid://1nv7dlxcqlia" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 2.png" id="30_ya2eh"] -[ext_resource type="Texture2D" uid="uid://bniq2b1phbjk5" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 3.png" id="31_c7dk6"] -[ext_resource type="Texture2D" uid="uid://ba846rlx4phr2" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 4.png" id="32_x7w8s"] -[ext_resource type="Texture2D" uid="uid://b76dai3g8nh2a" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 5.png" id="33_jc4ir"] -[ext_resource type="Texture2D" uid="uid://wqec5p5xahew" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 6.png" id="34_6cr7b"] -[ext_resource type="Texture2D" uid="uid://sl7fel3muw2y" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 7.png" id="35_kkljc"] -[ext_resource type="Texture2D" uid="uid://cucixinggd5s2" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 8.png" id="36_ccsfk"] -[ext_resource type="Texture2D" uid="uid://ccn6vymd07kd2" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 9.png" id="37_10o16"] -[ext_resource type="Texture2D" uid="uid://b7jqturu5jm2c" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 10.png" id="38_781ty"] -[ext_resource type="Texture2D" uid="uid://c1m065dts364p" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 11.png" id="39_xpomj"] -[ext_resource type="Texture2D" uid="uid://qsm43ovrbr7m" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 12.png" id="40_layho"] -[ext_resource type="Texture2D" uid="uid://bslsx7k6aa4tf" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 13.png" id="41_v4th6"] -[ext_resource type="Texture2D" uid="uid://cefke0gsokfi1" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 14.png" id="42_asjr7"] -[ext_resource type="Texture2D" uid="uid://blmpd2lu84ppt" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 15.png" id="43_4n0cl"] -[ext_resource type="Texture2D" uid="uid://kwaf2jj5oyu4" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 1.png" id="44_f3var"] -[ext_resource type="Texture2D" uid="uid://ul0q834bwd6" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 2.png" id="45_vqcde"] -[ext_resource type="Texture2D" uid="uid://bpohl3uqutcyb" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 3.png" id="46_rs13l"] -[ext_resource type="Texture2D" uid="uid://dlbt7lj5ryl0v" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 4.png" id="47_1j2ir"] -[ext_resource type="Texture2D" uid="uid://bkhn4ck7bx6tt" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 5.png" id="48_864dg"] -[ext_resource type="Texture2D" uid="uid://c8uw6qdsi1720" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 6.png" id="49_2r4d5"] -[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 1.png" id="50_fxgra"] -[ext_resource type="Texture2D" uid="uid://cnoouhy7p3gi3" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 7.png" id="50_m33xn"] -[ext_resource type="Texture2D" uid="uid://b1xldymngql00" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 8.png" id="51_68cc3"] -[ext_resource type="Texture2D" uid="uid://bs4ico5ouo5d3" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 2.png" id="51_ebmer"] -[ext_resource type="Texture2D" uid="uid://btuxhmmb6ikvf" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 9.png" id="52_2xmc3"] -[ext_resource type="Texture2D" uid="uid://85ki5mc4h0vs" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 3.png" id="52_y2cis"] -[ext_resource type="Texture2D" uid="uid://bwt1m2frb3r0e" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 4.png" id="53_7t81a"] -[ext_resource type="Texture2D" uid="uid://dlrn3cbdubg5s" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 10.png" id="53_bgv07"] -[ext_resource type="Texture2D" uid="uid://oukshrxpgscg" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 11.png" id="54_7gaxo"] -[ext_resource type="Texture2D" uid="uid://ckssl1np6vnlu" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 5.png" id="54_xg1s7"] -[ext_resource type="Texture2D" uid="uid://buk3stdgcg44w" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 12.png" id="55_6460k"] -[ext_resource type="Texture2D" uid="uid://c4sqc6i3xcfac" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 6.png" id="55_e0qrl"] -[ext_resource type="Texture2D" uid="uid://b3gndmrlrvexy" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 13.png" id="56_4pv43"] -[ext_resource type="Texture2D" uid="uid://cawexe4wkosc8" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 7.png" id="56_eeb3j"] -[ext_resource type="Texture2D" uid="uid://d0j1vrx7xdnxl" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 8.png" id="57_p183w"] -[ext_resource type="Texture2D" uid="uid://b1cmx8l4ia3fv" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 14.png" id="57_tbahh"] -[ext_resource type="Texture2D" uid="uid://c7t4626rox02s" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 15.png" id="58_dftc5"] -[ext_resource type="Texture2D" uid="uid://d0qhndaukki7c" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 9.png" id="58_lhas6"] -[ext_resource type="Texture2D" uid="uid://cnd08q34wa7ww" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 10.png" id="59_nlkte"] +[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/sproingy/SproingyModelView.tscn" id="4_o3b7p"] [sub_resource type="Resource" id="Resource_rxw8v"] script = ExtResource("2_j3knd") @@ -88,443 +33,6 @@ height = 2.02807 height = 5.0 radius = 1.0 -[sub_resource type="BoxShape3D" id="BoxShape3D_0yire"] -size = Vector3(1, 0.565, 2) - -[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"] -viewport_path = NodePath("Sprite3D/SubViewport") - -[sub_resource type="SpriteFrames" id="SpriteFrames_6drt6"] -resource_local_to_scene = true -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("50_fxgra") -}, { -"duration": 1.0, -"texture": ExtResource("51_ebmer") -}, { -"duration": 1.0, -"texture": ExtResource("52_y2cis") -}, { -"duration": 1.0, -"texture": ExtResource("53_7t81a") -}, { -"duration": 1.0, -"texture": ExtResource("54_xg1s7") -}, { -"duration": 1.0, -"texture": ExtResource("55_e0qrl") -}, { -"duration": 1.0, -"texture": ExtResource("56_eeb3j") -}, { -"duration": 1.0, -"texture": ExtResource("57_p183w") -}, { -"duration": 1.0, -"texture": ExtResource("58_lhas6") -}, { -"duration": 1.0, -"texture": ExtResource("59_nlkte") -}], -"loop": false, -"name": &"attack", -"speed": 12.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": ExtResource("14_xn75i") -}, { -"duration": 1.0, -"texture": ExtResource("15_rgyxs") -}, { -"duration": 1.0, -"texture": ExtResource("16_nr3ob") -}, { -"duration": 1.0, -"texture": ExtResource("17_mm5kb") -}, { -"duration": 1.0, -"texture": ExtResource("18_0cern") -}, { -"duration": 1.0, -"texture": ExtResource("19_15v02") -}, { -"duration": 1.0, -"texture": ExtResource("20_0hgl8") -}, { -"duration": 1.0, -"texture": ExtResource("21_rvvf2") -}, { -"duration": 1.0, -"texture": ExtResource("22_xxycn") -}, { -"duration": 1.0, -"texture": ExtResource("23_qbfft") -}, { -"duration": 1.0, -"texture": ExtResource("24_vtxk7") -}, { -"duration": 1.0, -"texture": ExtResource("25_2dtvy") -}, { -"duration": 1.0, -"texture": ExtResource("26_eqc8g") -}, { -"duration": 1.0, -"texture": ExtResource("27_vcsgh") -}, { -"duration": 1.0, -"texture": ExtResource("28_p3lwg") -}], -"loop": true, -"name": &"idle_back_walk", -"speed": 12.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": ExtResource("29_pis7y") -}, { -"duration": 1.0, -"texture": ExtResource("30_ya2eh") -}, { -"duration": 1.0, -"texture": ExtResource("31_c7dk6") -}, { -"duration": 1.0, -"texture": ExtResource("32_x7w8s") -}, { -"duration": 1.0, -"texture": ExtResource("33_jc4ir") -}, { -"duration": 1.0, -"texture": ExtResource("34_6cr7b") -}, { -"duration": 1.0, -"texture": ExtResource("35_kkljc") -}, { -"duration": 1.0, -"texture": ExtResource("36_ccsfk") -}, { -"duration": 1.0, -"texture": ExtResource("37_10o16") -}, { -"duration": 1.0, -"texture": ExtResource("38_781ty") -}, { -"duration": 1.0, -"texture": ExtResource("39_xpomj") -}, { -"duration": 1.0, -"texture": ExtResource("40_layho") -}, { -"duration": 1.0, -"texture": ExtResource("41_v4th6") -}, { -"duration": 1.0, -"texture": ExtResource("42_asjr7") -}, { -"duration": 1.0, -"texture": ExtResource("43_4n0cl") -}], -"loop": true, -"name": &"idle_front_walk", -"speed": 12.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": ExtResource("44_f3var") -}, { -"duration": 1.0, -"texture": ExtResource("45_vqcde") -}, { -"duration": 1.0, -"texture": ExtResource("46_rs13l") -}, { -"duration": 1.0, -"texture": ExtResource("47_1j2ir") -}, { -"duration": 1.0, -"texture": ExtResource("48_864dg") -}, { -"duration": 1.0, -"texture": ExtResource("49_2r4d5") -}, { -"duration": 1.0, -"texture": ExtResource("50_m33xn") -}, { -"duration": 1.0, -"texture": ExtResource("51_68cc3") -}, { -"duration": 1.0, -"texture": ExtResource("52_2xmc3") -}, { -"duration": 1.0, -"texture": ExtResource("53_bgv07") -}, { -"duration": 1.0, -"texture": ExtResource("54_7gaxo") -}, { -"duration": 1.0, -"texture": ExtResource("55_6460k") -}, { -"duration": 1.0, -"texture": ExtResource("56_4pv43") -}, { -"duration": 1.0, -"texture": ExtResource("57_tbahh") -}, { -"duration": 1.0, -"texture": ExtResource("58_dftc5") -}], -"loop": true, -"name": &"idle_left_walk", -"speed": 12.0 -}] - -[sub_resource type="Animation" id="Animation_ch8ic"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [0] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_left_walk"] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_ruc6s"] -resource_name = "attack" -length = 0.750008 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"attack"] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Hitbox/CollisionShape3D:disabled") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.25, 0.666666), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [true, false, true] -} - -[sub_resource type="Animation" id="Animation_1tda5"] -resource_name = "idle_back_walk" -length = 1.25001 -loop_mode = 1 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_back_walk"] -} - -[sub_resource type="Animation" id="Animation_31nry"] -resource_name = "idle_front_walk" -length = 1.25001 -loop_mode = 1 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/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.916667, 1, 1.08333, 1.16667), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_front_walk"] -} - -[sub_resource type="Animation" id="Animation_1870e"] -resource_name = "idle_left_walk" -length = 1.25001 -loop_mode = 1 -step = 0.0833333 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [&"idle_left_walk"] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite: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.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_6tj5r"] -_data = { -&"RESET": SubResource("Animation_ch8ic"), -&"attack": SubResource("Animation_ruc6s"), -&"idle_back_walk": SubResource("Animation_1tda5"), -&"idle_front_walk": SubResource("Animation_31nry"), -&"idle_left_walk": SubResource("Animation_1870e") -} - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_erbrx"] -animation = &"attack" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o0tmb"] -animation = &"idle_back_walk" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a6s5c"] -animation = &"idle_front_walk" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dvj10"] -animation = &"idle_left_walk" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vljb2"] -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3xv6a"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0h1op"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_361b7"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_wftla"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_gqqkl"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5cj36"] -switch_mode = 1 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4t05h"] - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8hgxu"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_fq2yw"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yqm0k"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_acrfn"] -states/End/position = Vector2(1464, 100) -states/attack/node = SubResource("AnimationNodeAnimation_erbrx") -states/attack/position = Vector2(1024, 92.9474) -states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb") -states/idle_back_walk/position = Vector2(491, 92.9474) -states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c") -states/idle_front_walk/position = Vector2(331, -12) -states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10") -states/idle_left_walk/position = Vector2(331, 196.947) -transitions = ["Start", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_vljb2"), "idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "attack", SubResource("AnimationNodeStateMachineTransition_mxl7w")] -graph_offset = Vector2(-190, -62.0526) - [node name="Sproingy" type="RigidBody3D"] process_mode = 1 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) @@ -570,53 +78,11 @@ unique_name_in_owner = true wait_time = 0.8 autostart = true -[node name="Hitbox" type="Area3D" parent="."] -unique_name_in_owner = true -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0) -collision_layer = 64 -collision_mask = 64 -script = ExtResource("3_usw2d") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.189337, 0.217529, -1.45579) -shape = SubResource("BoxShape3D_0yire") -disabled = true - [node name="Raycast" type="RayCast3D" parent="."] unique_name_in_owner = true target_position = Vector3(0, 0, -5) collision_mask = 3 -[node name="Sprite3D" type="Sprite3D" parent="."] +[node name="EnemyModelView" parent="." instance=ExtResource("4_o3b7p")] +unique_name_in_owner = true transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0.0862446, 0) -billboard = 2 -shaded = true -texture_filter = 0 -render_priority = 100 -texture = SubResource("ViewportTexture_h1kaf") - -[node name="SubViewport" type="SubViewport" parent="Sprite3D"] -disable_3d = true -transparent_bg = true -handle_input_locally = false -size = Vector2i(200, 200) -render_target_update_mode = 4 - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite3D/SubViewport"] -unique_name_in_owner = true -texture_filter = 1 -position = Vector2(100, 100) -sprite_frames = SubResource("SpriteFrames_6drt6") -animation = &"idle_left_walk" - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -unique_name_in_owner = true -libraries = { -&"": SubResource("AnimationLibrary_6tj5r") -} - -[node name="AnimationTree" type="AnimationTree" parent="."] -unique_name_in_owner = true -root_node = NodePath("%AnimationTree/..") -tree_root = SubResource("AnimationNodeStateMachine_acrfn") -anim_player = NodePath("../AnimationPlayer") diff --git a/src/enemy/enemy_types/sproingy/SproingyModelView.tscn b/src/enemy/enemy_types/sproingy/SproingyModelView.tscn new file mode 100644 index 00000000..54ea7f0a --- /dev/null +++ b/src/enemy/enemy_types/sproingy/SproingyModelView.tscn @@ -0,0 +1,521 @@ +[gd_scene load_steps=85 format=3 uid="uid://bli0t0d6ommvi"] + +[ext_resource type="Script" path="res://src/enemy/EnemyModelView.cs" id="1_0vbio"] +[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"] +[ext_resource type="Texture2D" uid="uid://bs4ico5ouo5d3" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 2.png" id="2_0vbio"] +[ext_resource type="Texture2D" uid="uid://85ki5mc4h0vs" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 3.png" id="3_lae8t"] +[ext_resource type="Texture2D" uid="uid://bwt1m2frb3r0e" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 4.png" id="4_53wuj"] +[ext_resource type="Texture2D" uid="uid://ckssl1np6vnlu" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 5.png" id="5_d5bmw"] +[ext_resource type="Texture2D" uid="uid://c4sqc6i3xcfac" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 6.png" id="6_fpvxl"] +[ext_resource type="Texture2D" uid="uid://cawexe4wkosc8" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 7.png" id="7_qq0ru"] +[ext_resource type="Texture2D" uid="uid://d0j1vrx7xdnxl" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 8.png" id="8_c54uj"] +[ext_resource type="Texture2D" uid="uid://d0qhndaukki7c" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 9.png" id="9_qmo72"] +[ext_resource type="Texture2D" uid="uid://cnd08q34wa7ww" path="res://src/enemy/enemy_types/sproingy/animations/ATTACK/Layer 10.png" id="10_jyt1n"] +[ext_resource type="Texture2D" uid="uid://b8ntr7hh6rr5h" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 1.png" id="11_5un2v"] +[ext_resource type="Texture2D" uid="uid://csgthlou2tnvb" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 2.png" id="12_2x3nl"] +[ext_resource type="Texture2D" uid="uid://cfyxuk85350gn" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 3.png" id="13_6a5nw"] +[ext_resource type="Texture2D" uid="uid://dufdb5gc0gfkr" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 4.png" id="14_0jqty"] +[ext_resource type="Texture2D" uid="uid://buu4btd3adrr4" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 5.png" id="15_yjcrh"] +[ext_resource type="Texture2D" uid="uid://ddgctjau0dnmh" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 6.png" id="16_2ybyh"] +[ext_resource type="Texture2D" uid="uid://2jwaacvarrha" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 7.png" id="17_n454k"] +[ext_resource type="Texture2D" uid="uid://8837jm7f78uo" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 8.png" id="18_vrcjv"] +[ext_resource type="Texture2D" uid="uid://devt1gmwduo5h" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 9.png" id="19_h1yxw"] +[ext_resource type="Texture2D" uid="uid://cj3m4eyagiye6" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 10.png" id="20_kg6hd"] +[ext_resource type="Texture2D" uid="uid://cyigr4eip1mxt" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 11.png" id="21_25i3y"] +[ext_resource type="Texture2D" uid="uid://kavqjxq17m0p" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 12.png" id="22_5g722"] +[ext_resource type="Texture2D" uid="uid://bcce7b4wp6a4v" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 13.png" id="23_a6y4x"] +[ext_resource type="Texture2D" uid="uid://doiu8sug4t8ki" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 14.png" id="24_7y7m4"] +[ext_resource type="Texture2D" uid="uid://dqymhvgu03xpl" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_BACK/Layer 15.png" id="25_ldcvv"] +[ext_resource type="Texture2D" uid="uid://cjk1vjjk3gnjl" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 1.png" id="26_aalmk"] +[ext_resource type="Texture2D" uid="uid://1nv7dlxcqlia" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 2.png" id="27_2le5t"] +[ext_resource type="Texture2D" uid="uid://bniq2b1phbjk5" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 3.png" id="28_4nmgu"] +[ext_resource type="Texture2D" uid="uid://ba846rlx4phr2" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 4.png" id="29_mw5r6"] +[ext_resource type="Texture2D" uid="uid://b76dai3g8nh2a" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 5.png" id="30_jbtxi"] +[ext_resource type="Texture2D" uid="uid://wqec5p5xahew" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 6.png" id="31_mjxlk"] +[ext_resource type="Texture2D" uid="uid://sl7fel3muw2y" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 7.png" id="32_al2xs"] +[ext_resource type="Texture2D" uid="uid://cucixinggd5s2" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 8.png" id="33_afa0q"] +[ext_resource type="Texture2D" uid="uid://ccn6vymd07kd2" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 9.png" id="34_irq32"] +[ext_resource type="Texture2D" uid="uid://b7jqturu5jm2c" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 10.png" id="35_2khaq"] +[ext_resource type="Texture2D" uid="uid://c1m065dts364p" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 11.png" id="36_k7x0x"] +[ext_resource type="Texture2D" uid="uid://qsm43ovrbr7m" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 12.png" id="37_noc6c"] +[ext_resource type="Texture2D" uid="uid://bslsx7k6aa4tf" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 13.png" id="38_tfygr"] +[ext_resource type="Texture2D" uid="uid://cefke0gsokfi1" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 14.png" id="39_fpoao"] +[ext_resource type="Texture2D" uid="uid://blmpd2lu84ppt" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_FRONT/Layer 15.png" id="40_s4c8e"] +[ext_resource type="Texture2D" uid="uid://kwaf2jj5oyu4" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 1.png" id="41_d3ufd"] +[ext_resource type="Texture2D" uid="uid://ul0q834bwd6" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 2.png" id="42_ap0nr"] +[ext_resource type="Texture2D" uid="uid://bpohl3uqutcyb" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 3.png" id="43_snwjc"] +[ext_resource type="Texture2D" uid="uid://dlbt7lj5ryl0v" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 4.png" id="44_wba7a"] +[ext_resource type="Texture2D" uid="uid://bkhn4ck7bx6tt" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 5.png" id="45_v1iqd"] +[ext_resource type="Texture2D" uid="uid://c8uw6qdsi1720" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 6.png" id="46_mylxl"] +[ext_resource type="Texture2D" uid="uid://cnoouhy7p3gi3" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 7.png" id="47_gg0cg"] +[ext_resource type="Texture2D" uid="uid://b1xldymngql00" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 8.png" id="48_33r3i"] +[ext_resource type="Texture2D" uid="uid://btuxhmmb6ikvf" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 9.png" id="49_r4mim"] +[ext_resource type="Texture2D" uid="uid://dlrn3cbdubg5s" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 10.png" id="50_r2i8l"] +[ext_resource type="Texture2D" uid="uid://oukshrxpgscg" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 11.png" id="51_xbv86"] +[ext_resource type="Texture2D" uid="uid://buk3stdgcg44w" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 12.png" id="52_rtp20"] +[ext_resource type="Texture2D" uid="uid://b3gndmrlrvexy" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 13.png" id="53_nr2vc"] +[ext_resource type="Texture2D" uid="uid://b1cmx8l4ia3fv" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 14.png" id="54_jdvn0"] +[ext_resource type="Texture2D" uid="uid://c7t4626rox02s" path="res://src/enemy/enemy_types/sproingy/animations/IDLE_WALK_SIDE/Layer 15.png" id="55_2eqor"] +[ext_resource type="Script" path="res://src/hitbox/Hitbox.cs" id="57_lae8t"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"] +viewport_path = NodePath("Sprite3D/SubViewport") + +[sub_resource type="SpriteFrames" id="SpriteFrames_6drt6"] +resource_local_to_scene = true +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_pbx41") +}, { +"duration": 1.0, +"texture": ExtResource("2_0vbio") +}, { +"duration": 1.0, +"texture": ExtResource("3_lae8t") +}, { +"duration": 1.0, +"texture": ExtResource("4_53wuj") +}, { +"duration": 1.0, +"texture": ExtResource("5_d5bmw") +}, { +"duration": 1.0, +"texture": ExtResource("6_fpvxl") +}, { +"duration": 1.0, +"texture": ExtResource("7_qq0ru") +}, { +"duration": 1.0, +"texture": ExtResource("8_c54uj") +}, { +"duration": 1.0, +"texture": ExtResource("9_qmo72") +}, { +"duration": 1.0, +"texture": ExtResource("10_jyt1n") +}], +"loop": false, +"name": &"attack", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("11_5un2v") +}, { +"duration": 1.0, +"texture": ExtResource("12_2x3nl") +}, { +"duration": 1.0, +"texture": ExtResource("13_6a5nw") +}, { +"duration": 1.0, +"texture": ExtResource("14_0jqty") +}, { +"duration": 1.0, +"texture": ExtResource("15_yjcrh") +}, { +"duration": 1.0, +"texture": ExtResource("16_2ybyh") +}, { +"duration": 1.0, +"texture": ExtResource("17_n454k") +}, { +"duration": 1.0, +"texture": ExtResource("18_vrcjv") +}, { +"duration": 1.0, +"texture": ExtResource("19_h1yxw") +}, { +"duration": 1.0, +"texture": ExtResource("20_kg6hd") +}, { +"duration": 1.0, +"texture": ExtResource("21_25i3y") +}, { +"duration": 1.0, +"texture": ExtResource("22_5g722") +}, { +"duration": 1.0, +"texture": ExtResource("23_a6y4x") +}, { +"duration": 1.0, +"texture": ExtResource("24_7y7m4") +}, { +"duration": 1.0, +"texture": ExtResource("25_ldcvv") +}], +"loop": true, +"name": &"idle_back_walk", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("26_aalmk") +}, { +"duration": 1.0, +"texture": ExtResource("27_2le5t") +}, { +"duration": 1.0, +"texture": ExtResource("28_4nmgu") +}, { +"duration": 1.0, +"texture": ExtResource("29_mw5r6") +}, { +"duration": 1.0, +"texture": ExtResource("30_jbtxi") +}, { +"duration": 1.0, +"texture": ExtResource("31_mjxlk") +}, { +"duration": 1.0, +"texture": ExtResource("32_al2xs") +}, { +"duration": 1.0, +"texture": ExtResource("33_afa0q") +}, { +"duration": 1.0, +"texture": ExtResource("34_irq32") +}, { +"duration": 1.0, +"texture": ExtResource("35_2khaq") +}, { +"duration": 1.0, +"texture": ExtResource("36_k7x0x") +}, { +"duration": 1.0, +"texture": ExtResource("37_noc6c") +}, { +"duration": 1.0, +"texture": ExtResource("38_tfygr") +}, { +"duration": 1.0, +"texture": ExtResource("39_fpoao") +}, { +"duration": 1.0, +"texture": ExtResource("40_s4c8e") +}], +"loop": true, +"name": &"idle_front_walk", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("41_d3ufd") +}, { +"duration": 1.0, +"texture": ExtResource("42_ap0nr") +}, { +"duration": 1.0, +"texture": ExtResource("43_snwjc") +}, { +"duration": 1.0, +"texture": ExtResource("44_wba7a") +}, { +"duration": 1.0, +"texture": ExtResource("45_v1iqd") +}, { +"duration": 1.0, +"texture": ExtResource("46_mylxl") +}, { +"duration": 1.0, +"texture": ExtResource("47_gg0cg") +}, { +"duration": 1.0, +"texture": ExtResource("48_33r3i") +}, { +"duration": 1.0, +"texture": ExtResource("49_r4mim") +}, { +"duration": 1.0, +"texture": ExtResource("50_r2i8l") +}, { +"duration": 1.0, +"texture": ExtResource("51_xbv86") +}, { +"duration": 1.0, +"texture": ExtResource("52_rtp20") +}, { +"duration": 1.0, +"texture": ExtResource("53_nr2vc") +}, { +"duration": 1.0, +"texture": ExtResource("54_jdvn0") +}, { +"duration": 1.0, +"texture": ExtResource("55_2eqor") +}], +"loop": true, +"name": &"idle_left_walk", +"speed": 12.0 +}] + +[sub_resource type="BoxShape3D" id="BoxShape3D_53wuj"] +size = Vector3(1, 0.565, 2) + +[sub_resource type="Animation" id="Animation_ch8ic"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [&"idle_left_walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_ruc6s"] +resource_name = "attack" +length = 0.750008 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [&"attack"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite: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.666666, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +} + +[sub_resource type="Animation" id="Animation_1tda5"] +resource_name = "idle_back_walk" +length = 1.25001 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [&"idle_back_walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite: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.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +} + +[sub_resource type="Animation" id="Animation_31nry"] +resource_name = "idle_front_walk" +length = 1.16667 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [&"idle_front_walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite: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.916667, 1, 1.08333, 1.16667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +} + +[sub_resource type="Animation" id="Animation_1870e"] +resource_name = "idle_left_walk" +length = 1.25001 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666666, 0.75, 0.833333, 0.916666, 1, 1.08333, 1.16667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite3D/SubViewport/AnimatedSprite:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [&"idle_left_walk"] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_6tj5r"] +_data = { +&"RESET": SubResource("Animation_ch8ic"), +&"attack": SubResource("Animation_ruc6s"), +&"idle_back_walk": SubResource("Animation_1tda5"), +&"idle_front_walk": SubResource("Animation_31nry"), +&"idle_left_walk": SubResource("Animation_1870e") +} + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_erbrx"] +animation = &"attack" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o0tmb"] +animation = &"idle_back_walk" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a6s5c"] +animation = &"idle_front_walk" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dvj10"] +animation = &"idle_left_walk" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vljb2"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3xv6a"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0h1op"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_361b7"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_wftla"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_gqqkl"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5cj36"] +switch_mode = 1 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4t05h"] + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8hgxu"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_fq2yw"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yqm0k"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"] +switch_mode = 2 + +[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_d5bmw"] +states/End/position = Vector2(1464, 100) +states/attack/node = SubResource("AnimationNodeAnimation_erbrx") +states/attack/position = Vector2(1024, 92.9474) +states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb") +states/idle_back_walk/position = Vector2(491, 92.9474) +states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c") +states/idle_front_walk/position = Vector2(331, -12) +states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10") +states/idle_left_walk/position = Vector2(331, 196.947) +transitions = ["Start", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_vljb2"), "idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "attack", SubResource("AnimationNodeStateMachineTransition_mxl7w")] +graph_offset = Vector2(-190, -62.0526) + +[node name="EnemyModelView" type="Node3D"] +script = ExtResource("1_0vbio") + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0) +billboard = 2 +shaded = true +texture_filter = 0 +render_priority = 100 +texture = SubResource("ViewportTexture_h1kaf") + +[node name="SubViewport" type="SubViewport" parent="Sprite3D"] +disable_3d = true +transparent_bg = true +handle_input_locally = false +size = Vector2i(200, 200) +render_target_update_mode = 4 + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite3D/SubViewport"] +unique_name_in_owner = true +texture_filter = 1 +position = Vector2(100, 100) +sprite_frames = SubResource("SpriteFrames_6drt6") +animation = &"idle_left_walk" + +[node name="Hitbox" type="Area3D" parent="."] +unique_name_in_owner = true +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0) +collision_layer = 64 +collision_mask = 64 +script = ExtResource("57_lae8t") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.189337, 0.217529, -1.45579) +shape = SubResource("BoxShape3D_53wuj") +disabled = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +&"": SubResource("AnimationLibrary_6tj5r") +} + +[node name="AnimationTree" type="AnimationTree" parent="."] +unique_name_in_owner = true +root_node = NodePath("%AnimationTree/..") +tree_root = SubResource("AnimationNodeStateMachine_d5bmw") +anim_player = NodePath("../AnimationPlayer") diff --git a/src/items/restorative/Restorative.tscn b/src/items/restorative/Restorative.tscn index 211fbe65..0af60564 100644 --- a/src/items/restorative/Restorative.tscn +++ b/src/items/restorative/Restorative.tscn @@ -4,6 +4,8 @@ [ext_resource type="Script" path="res://src/items/restorative/Restorative.cs" id="1_3beyl"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_o8f22"] +radius = 0.13613 +height = 1.09613 [node name="Restorative" type="Node3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) @@ -24,4 +26,5 @@ collision_layer = 4 collision_mask = 4 [node name="CollisionShape3D" type="CollisionShape3D" parent="Pickup"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.348749, 0) shape = SubResource("CapsuleShape3D_o8f22") diff --git a/src/player/Player.tscn b/src/player/Player.tscn index d9f0cec4..f0988502 100644 --- a/src/player/Player.tscn +++ b/src/player/Player.tscn @@ -20,9 +20,9 @@ MaximumVT = 90 CurrentExp = 0 ExpToNextLevel = 100 CurrentLevel = 1 -CurrentAttack = 14 +CurrentAttack = 50 CurrentDefense = 12 -MaxAttack = 14 +MaxAttack = 50 MaxDefense = 12 BonusAttack = 0 BonusDefense = 0