Compare commits
2 Commits
0d7242c96d
...
221ade11e3
| Author | SHA1 | Date | |
|---|---|---|---|
| 221ade11e3 | |||
| 282a2eddb0 |
@@ -28,7 +28,7 @@ public partial class DataViewer : Control
|
||||
[Node] public RichTextLabel Description { get; set; } = default!;
|
||||
#endregion
|
||||
|
||||
private EnemyModelView _currentModel;
|
||||
private EnemyModelView2D _currentModel;
|
||||
|
||||
private int _modelIndex = 0;
|
||||
|
||||
@@ -77,7 +77,7 @@ public partial class DataViewer : Control
|
||||
private void LoadModel()
|
||||
{
|
||||
var modelScene = DataViewerRepository.ModelRepository.ElementAt(_modelIndex);
|
||||
_currentModel = modelScene.Instantiate<EnemyModelView>();
|
||||
_currentModel = modelScene.Instantiate<EnemyModelView2D>();
|
||||
ModelPivot.AddChild(_currentModel);
|
||||
EnemyName.Text = _currentModel.EnemyLoreInfo.Name;
|
||||
Description.Text = _currentModel.EnemyLoreInfo.Description;
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
[ext_resource type="Script" uid="uid://bgaflnnur26vk" path="res://src/data_viewer/DataViewer.cs" id="1_1qako"]
|
||||
[ext_resource type="Theme" uid="uid://daxuhpmyxwxck" path="res://src/inventory_menu/InventoryDialogueSelectionStyle.tres" id="2_bef6s"]
|
||||
[ext_resource type="PackedScene" uid="uid://c16i1gmg6yu5a" path="res://src/data_viewer/DataViewerRepository.tscn" id="3_ejdn0"]
|
||||
[ext_resource type="Texture2D" uid="uid://djvga5kh0ncqa" path="res://src/map/dungeon/models/Set A/03. Antechamber A/ANTECHAMBER_TYPE1_VER2_8311.png" id="3_hpkd1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/2. michael/MichaelModelView.tscn" id="4_bef6s"]
|
||||
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/1. sproingy/SproingyModelView.tscn" id="5_hpkd1"]
|
||||
[ext_resource type="Texture2D" uid="uid://bh0crf4qonrh5" path="res://src/map/dungeon/models/Set A/03. Antechamber A/ANTECHAMBER_TYPE1_VER2_8311.png" id="3_hpkd1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="4_bef6s"]
|
||||
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="5_hpkd1"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dvixg"]
|
||||
albedo_texture = ExtResource("3_hpkd1")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://c16i1gmg6yu5a"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://03k48fke03vu" path="res://src/data_viewer/DataViewerRepository.cs" id="1_1cvot"]
|
||||
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/2. michael/MichaelModelView.tscn" id="2_8autu"]
|
||||
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/1. sproingy/SproingyModelView.tscn" id="3_0bpmu"]
|
||||
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="2_8autu"]
|
||||
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="3_0bpmu"]
|
||||
|
||||
[node name="DataViewerRepository" type="Node"]
|
||||
script = ExtResource("1_1cvot")
|
||||
|
||||
@@ -2,9 +2,7 @@ using Chickensoft.AutoInject;
|
||||
using Chickensoft.Collections;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
@@ -30,22 +28,21 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
|
||||
#region Exports
|
||||
[Export] protected EnemyStatResource _enemyStatResource { get; set; } = default!;
|
||||
|
||||
[Export]
|
||||
private float _movementSpeed = 2f;
|
||||
#endregion
|
||||
|
||||
#region Node Dependencies
|
||||
[Node] private CollisionShape3D CollisionShape { get; set; } = default!;
|
||||
[Node] private CollisionShape3D _collisionShape { get; set; } = default!;
|
||||
|
||||
[Node] private NavigationAgent3D NavAgent { get; set; } = default!;
|
||||
[Node] private Area3D _lineOfSight { get; set; } = default!;
|
||||
|
||||
[Node] private Area3D LineOfSight { get; set; } = default!;
|
||||
[Node] private Timer _attackTimer { get; set; } = default!;
|
||||
|
||||
[Node] private Timer PatrolTimer { get; set; } = default!;
|
||||
[Node] private RayCast3D _raycast { get; set; } = default!;
|
||||
|
||||
[Node] private Timer AttackTimer { get; set; } = default!;
|
||||
|
||||
[Node] private RayCast3D Raycast { get; set; } = default!;
|
||||
|
||||
[Node] protected EnemyModelView EnemyModelView { get; set; } = default!;
|
||||
[Node] protected IEnemyModelView _enemyModelView { get; set; } = default!;
|
||||
#endregion
|
||||
|
||||
public double CurrentHP => _currentHP.Value;
|
||||
@@ -56,116 +53,13 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
|
||||
private Vector3 _knockbackDirection = Vector3.Zero;
|
||||
|
||||
private Vector3 _currentTarget = Vector3.Zero;
|
||||
|
||||
private Timer _thinkTimer;
|
||||
|
||||
#region Godot methods
|
||||
public void Setup()
|
||||
{
|
||||
_enemyLogic = new EnemyLogic();
|
||||
_enemyLogic.Set(_enemyStatResource);
|
||||
_enemyLogic.Set(this as IEnemy);
|
||||
_enemyLogic.Set(Player);
|
||||
|
||||
_currentTarget = GlobalPosition;
|
||||
|
||||
NavAgent.VelocityComputed += NavAgent_VelocityComputed;
|
||||
NavAgent.TargetReached += NavAgent_TargetReached;
|
||||
|
||||
_thinkTimer = new Timer
|
||||
{
|
||||
WaitTime = 0.4f
|
||||
};
|
||||
AddChild(_thinkTimer);
|
||||
_thinkTimer.Timeout += NavAgent_TargetReached;
|
||||
_thinkTimer.Start();
|
||||
}
|
||||
|
||||
private void NavAgent_TargetReached()
|
||||
{
|
||||
NavAgent.TargetPosition = _currentTarget;
|
||||
}
|
||||
|
||||
private void NavAgent_VelocityComputed(Vector3 safeVelocity)
|
||||
{
|
||||
if (CurrentHP <= 0)
|
||||
return;
|
||||
|
||||
_knockbackStrength = _knockbackStrength * 0.9f;
|
||||
Velocity = safeVelocity + (_knockbackDirection * _knockbackStrength);
|
||||
MoveAndSlide();
|
||||
}
|
||||
|
||||
public void SetTarget(Vector3 target)
|
||||
{
|
||||
Task.Delay(TimeSpan.FromSeconds(1.5)).ContinueWith(_ => _currentTarget = new Vector3(target.X, -1.75f, target.Z));
|
||||
}
|
||||
|
||||
public void TakeDamage(double damage, ElementType elementType, bool isCriticalHit = false, bool ignoreDefense = false, bool ignoreElementalResistance = false)
|
||||
{
|
||||
if (_currentHP.Value > 0)
|
||||
{
|
||||
if (!ignoreElementalResistance)
|
||||
damage = CalculateElementalResistance(damage, elementType);
|
||||
if (!ignoreDefense)
|
||||
damage = CalculateDefenseResistance(damage);
|
||||
if (isCriticalHit)
|
||||
damage *= 2;
|
||||
GD.Print($"Enemy Hit for {damage} damage.");
|
||||
_currentHP.OnNext(_currentHP.Value - damage);
|
||||
GD.Print("Current HP: " + _currentHP.Value);
|
||||
|
||||
if (_currentHP.Value <= 0)
|
||||
return;
|
||||
|
||||
EnemyModelView.PlayHitAnimation();
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
|
||||
NavAgent_TargetReached();
|
||||
|
||||
if (Player.EquippedWeapon.Value.WeaponTags.Contains(WeaponTag.SelfDamage))
|
||||
Player.Stats.SetCurrentHP(Player.Stats.CurrentHP.Value - 5);
|
||||
}
|
||||
}
|
||||
|
||||
public override void _PhysicsProcess(double delta)
|
||||
{
|
||||
if (CurrentHP <= 0)
|
||||
return;
|
||||
|
||||
if (_enemyLogic.Value is EnemyLogic.State.Attacking)
|
||||
SetTarget(GlobalPosition);
|
||||
|
||||
var nextPathPosition = NavAgent.GetNextPathPosition();
|
||||
|
||||
var newVelocity = GlobalPosition.DirectionTo(nextPathPosition) * 2f;
|
||||
if (NavAgent.AvoidanceEnabled)
|
||||
NavAgent.Velocity = newVelocity;
|
||||
else
|
||||
NavAgent_VelocityComputed(newVelocity);
|
||||
|
||||
var lookDir = GlobalPosition + Velocity;
|
||||
if (_enemyLogic.Value is not EnemyLogic.State.Attacking && (!lookDir.IsEqualApprox(GlobalPosition) || !Velocity.IsZeroApprox()))
|
||||
LookAt(lookDir, Vector3.Up, true);
|
||||
|
||||
var isWalking = _enemyLogic.Value is EnemyLogic.State.Patrolling or EnemyLogic.State.FollowPlayer;
|
||||
EnemyModelView.RotateModel(GlobalTransform.Basis, -Player.CurrentBasis.Z, isWalking);
|
||||
}
|
||||
|
||||
public void Knockback(float impulse, Vector3 direction)
|
||||
{
|
||||
_knockbackDirection = direction;
|
||||
_knockbackStrength = 0.3f;
|
||||
}
|
||||
|
||||
public void Die()
|
||||
{
|
||||
_enemyLogic.Input(new EnemyLogic.Input.EnemyDefeated());
|
||||
CollisionShape.SetDeferred("disabled", true);
|
||||
EnemyModelView.PlayDeathAnimation();
|
||||
var tweener = GetTree().CreateTween();
|
||||
tweener.TweenInterval(1.0f);
|
||||
tweener.TweenCallback(Callable.From(QueueFree));
|
||||
GameEventDepot.OnEnemyDefeated(GlobalPosition, _enemyStatResource);
|
||||
}
|
||||
|
||||
public void OnResolved()
|
||||
@@ -187,37 +81,90 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
|
||||
_currentHP = new AutoProp<double>(_enemyStatResource.MaximumHP);
|
||||
_currentHP.Sync += OnHPChanged;
|
||||
LineOfSight.BodyEntered += LineOfSight_BodyEntered;
|
||||
PatrolTimer.Timeout += OnPatrolTimeout;
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
PatrolTimer.WaitTime = rng.RandfRange(7.0f, 15.0f);
|
||||
_lineOfSight.BodyEntered += LineOfSight_BodyEntered;
|
||||
}
|
||||
|
||||
public void OnExitTree()
|
||||
public override void _PhysicsProcess(double delta)
|
||||
{
|
||||
if (CurrentHP <= 0)
|
||||
return;
|
||||
|
||||
var lookDir = GlobalPosition + Velocity;
|
||||
if (_enemyLogic.Value is not EnemyLogic.State.Attacking && (!lookDir.IsEqualApprox(GlobalPosition) || !Velocity.IsZeroApprox()))
|
||||
LookAt(lookDir, Vector3.Up, true);
|
||||
|
||||
var isWalking = _enemyLogic.Value is EnemyLogic.State.Patrolling or EnemyLogic.State.FollowPlayer;
|
||||
if (_enemyModelView is EnemyModelView2D enemyModelView2D)
|
||||
enemyModelView2D.RotateModel(GlobalTransform.Basis, -Player.CurrentBasis.Z, isWalking);
|
||||
}
|
||||
#endregion
|
||||
|
||||
public virtual void TakeAction()
|
||||
{
|
||||
_enemyLogic.Stop();
|
||||
EnemyBinding.Dispose();
|
||||
}
|
||||
|
||||
private void OnPatrolTimeout()
|
||||
public virtual void SetTarget(Vector3 target)
|
||||
{
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
var randomizedSpot = new Vector3(rng.RandfRange(-5.0f, 5.0f), 0, rng.RandfRange(-5.0f, 5.0f));
|
||||
_enemyLogic.Input(new EnemyLogic.Input.PatrolToRandomSpot(GlobalPosition + randomizedSpot));
|
||||
_enemyLogic.Input(new EnemyLogic.Input.StartPatrol());
|
||||
PatrolTimer.WaitTime = rng.RandfRange(5.0f, 10.0f);
|
||||
|
||||
}
|
||||
|
||||
public virtual void Move(Vector3 velocity)
|
||||
{
|
||||
_knockbackStrength = _knockbackStrength * 0.9f;
|
||||
Velocity = velocity + (_knockbackDirection * _knockbackStrength);
|
||||
MoveAndSlide();
|
||||
}
|
||||
|
||||
public virtual void TakeDamage(double damage, ElementType elementType, bool isCriticalHit = false, bool ignoreDefense = false, bool ignoreElementalResistance = false)
|
||||
{
|
||||
if (_currentHP.Value > 0)
|
||||
{
|
||||
if (!ignoreElementalResistance)
|
||||
damage = CalculateElementalResistance(damage, elementType);
|
||||
if (!ignoreDefense)
|
||||
damage = CalculateDefenseResistance(damage);
|
||||
if (isCriticalHit)
|
||||
damage *= 2;
|
||||
GD.Print($"Enemy Hit for {damage} damage.");
|
||||
_currentHP.OnNext(_currentHP.Value - damage);
|
||||
GD.Print("Current HP: " + _currentHP.Value);
|
||||
|
||||
if (_currentHP.Value <= 0)
|
||||
return;
|
||||
|
||||
_enemyModelView.PlayHitAnimation();
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
|
||||
|
||||
if (Player.EquippedWeapon.Value.WeaponTags.Contains(WeaponTag.SelfDamage))
|
||||
Player.Stats.SetCurrentHP(Player.Stats.CurrentHP.Value - 5);
|
||||
}
|
||||
}
|
||||
|
||||
public void Knockback(float impulse, Vector3 direction)
|
||||
{
|
||||
_knockbackDirection = direction;
|
||||
_knockbackStrength = 0.3f;
|
||||
}
|
||||
|
||||
public void Die()
|
||||
{
|
||||
_enemyLogic.Input(new EnemyLogic.Input.EnemyDefeated());
|
||||
_collisionShape.SetDeferred("disabled", true);
|
||||
_enemyModelView.PlayDeathAnimation();
|
||||
var tweener = GetTree().CreateTween();
|
||||
tweener.TweenInterval(1.0f);
|
||||
tweener.TweenCallback(Callable.From(QueueFree));
|
||||
GameEventDepot.OnEnemyDefeated(GlobalPosition, _enemyStatResource);
|
||||
}
|
||||
|
||||
public void StartAttackTimer()
|
||||
{
|
||||
AttackTimer.Timeout += OnAttackTimeout;
|
||||
_attackTimer.Timeout += OnAttackTimeout;
|
||||
}
|
||||
|
||||
public void StopAttackTimer()
|
||||
{
|
||||
AttackTimer.Timeout -= OnAttackTimeout;
|
||||
_attackTimer.Timeout -= OnAttackTimeout;
|
||||
|
||||
}
|
||||
|
||||
@@ -232,25 +179,25 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
_enemyLogic.Input(new EnemyLogic.Input.AttackTimer());
|
||||
AttackTimer.Stop();
|
||||
AttackTimer.WaitTime = rng.RandfRange(2f, 5.0f);
|
||||
AttackTimer.Start();
|
||||
_attackTimer.Stop();
|
||||
_attackTimer.WaitTime = rng.RandfRange(2f, 5.0f);
|
||||
_attackTimer.Start();
|
||||
}
|
||||
|
||||
private void LineOfSight_BodyEntered(Node3D body)
|
||||
{
|
||||
var overlappingBodies = LineOfSight.GetOverlappingBodies();
|
||||
var overlappingBodies = _lineOfSight.GetOverlappingBodies();
|
||||
foreach (var _ in overlappingBodies)
|
||||
{
|
||||
if (Raycast.GlobalPosition != Player.CurrentPosition)
|
||||
Raycast.LookAt(Player.CurrentPosition, Vector3.Up);
|
||||
Raycast.ForceRaycastUpdate();
|
||||
if (Raycast.IsColliding())
|
||||
if (_raycast.GlobalPosition != Player.CurrentPosition)
|
||||
_raycast.LookAt(Player.CurrentPosition, Vector3.Up);
|
||||
_raycast.ForceRaycastUpdate();
|
||||
if (_raycast.IsColliding())
|
||||
{
|
||||
var collider = Raycast.GetCollider();
|
||||
var collider = _raycast.GetCollider();
|
||||
if (collider is IPlayer)
|
||||
{
|
||||
Raycast.DebugShapeCustomColor = Color.FromString("Purple", Colors.Purple);
|
||||
_raycast.DebugShapeCustomColor = Color.FromString("Purple", Colors.Purple);
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
|
||||
}
|
||||
}
|
||||
@@ -284,7 +231,9 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
return Mathf.Max(incomingDamage - _enemyStatResource.CurrentDefense, 0.0);
|
||||
}
|
||||
|
||||
public virtual void TakeAction()
|
||||
public void OnExitTree()
|
||||
{
|
||||
_enemyLogic.Stop();
|
||||
EnemyBinding.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dbvr8ewajja6a"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cp02ufnj6c7kg" path="res://src/enemy/EnemyDatabase.cs" id="1_ywy58"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/2. michael/Michael.tscn" id="2_tja3j"]
|
||||
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/1. sproingy/Sproingy.tscn" id="3_cpupr"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="2_tja3j"]
|
||||
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="3_cpupr"]
|
||||
|
||||
[node name="EnemyDatabase" type="Node"]
|
||||
script = ExtResource("1_ywy58")
|
||||
|
||||
@@ -1,29 +1,10 @@
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.GodotNodeInterfaces;
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
public interface IEnemyModelView : INode3D
|
||||
{
|
||||
public void PlayPrimaryAttackAnimation();
|
||||
|
||||
public void PlaySecondaryAttackAnimation();
|
||||
|
||||
public void PlayPrimarySkillAnimation();
|
||||
|
||||
public void PlayHitAnimation();
|
||||
|
||||
public void PlayDeathAnimation();
|
||||
|
||||
public void RotateModel(Basis enemyBasis, Vector3 cameraDirection, bool isWalking);
|
||||
|
||||
public void RotateModel(Basis enemyBasis, Vector3 cameraDirection, float rotateUpperThreshold, float rotateLowerThreshold, bool isWalking);
|
||||
}
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
public partial class EnemyModelView : Node3D, IEnemyModelView
|
||||
public partial class EnemyModelView2D : Node3D, IEnemyModelView
|
||||
{
|
||||
private const string PRIMARY_ATTACK = "primary_attack";
|
||||
private const string SECONDARY_ATTACK = "secondary_attack";
|
||||
1
src/enemy/EnemyModelView2D.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cvr1qimxpignl
|
||||
58
src/enemy/EnemyModelView3D.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
public partial class EnemyModelView3D : Node3D, IEnemyModelView
|
||||
{
|
||||
private const string PRIMARY_ATTACK = "primary_attack";
|
||||
private const string SECONDARY_ATTACK = "secondary_attack";
|
||||
private const string PRIMARY_SKILL = "primary_skill";
|
||||
private const string IDLE_FORWARD = "idle_front";
|
||||
private const string IDLE_LEFT = "idle_left";
|
||||
private const string IDLE_BACK = "idle_back";
|
||||
private const string IDLE_FORWARD_WALK = "idle_front_walk";
|
||||
private const string IDLE_LEFT_WALK = "idle_left_walk";
|
||||
private const string IDLE_BACK_WALK = "idle_back_walk";
|
||||
private const string TAKE_DAMAGE = "take_damage";
|
||||
private const string DEFEATED = "defeated";
|
||||
private const string PARAMETERS_PLAYBACK = "parameters/playback";
|
||||
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
[Export] public EnemyLoreInfo EnemyLoreInfo { get; set; } = default!;
|
||||
|
||||
[Node] public IHitbox Hitbox { get; set; } = default!;
|
||||
|
||||
[Node] private MeshInstance3D _meshInstance { get; set; } = default!;
|
||||
|
||||
[Node] private AnimationPlayer _animationPlayer { get; set; } = default!;
|
||||
|
||||
public void Setup()
|
||||
{
|
||||
}
|
||||
|
||||
public void PlayPrimaryAttackAnimation()
|
||||
{
|
||||
}
|
||||
|
||||
public void PlaySecondaryAttackAnimation()
|
||||
{
|
||||
}
|
||||
|
||||
public void PlayPrimarySkillAnimation()
|
||||
{
|
||||
}
|
||||
|
||||
public void PlayHitAnimation()
|
||||
{
|
||||
_animationPlayer.Play(TAKE_DAMAGE);
|
||||
}
|
||||
|
||||
public void PlayDeathAnimation()
|
||||
{
|
||||
_animationPlayer.Play(DEFEATED);
|
||||
}
|
||||
}
|
||||
1
src/enemy/EnemyModelView3D.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ckv5dmrw6pvn6
|
||||
7
src/enemy/ICanPatrol.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace GameJamDungeon.src.enemy
|
||||
{
|
||||
public interface ICanPatrol
|
||||
{
|
||||
public void Patrol();
|
||||
}
|
||||
}
|
||||
1
src/enemy/ICanPatrol.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b6n54dayg1bvt
|
||||
@@ -6,6 +6,8 @@ public interface IEnemy : IKillable
|
||||
{
|
||||
public void TakeAction();
|
||||
|
||||
public void Move(Vector3 velocity);
|
||||
|
||||
public void TakeDamage(double damage, ElementType elementType = ElementType.None, bool isCriticalHit = false, bool ignoreDefense = false, bool ignoreElementalResistance = false);
|
||||
|
||||
public void Knockback(float impulse, Vector3 direction);
|
||||
@@ -16,5 +18,5 @@ public interface IEnemy : IKillable
|
||||
|
||||
public void StopAttackTimer();
|
||||
|
||||
public void SetTarget(Vector3 target);
|
||||
public abstract void SetTarget(Vector3 target);
|
||||
}
|
||||
|
||||
19
src/enemy/IEnemyModelView.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Chickensoft.GodotNodeInterfaces;
|
||||
using Godot;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
public interface IEnemyModelView : INode3D
|
||||
{
|
||||
public void PlayPrimaryAttackAnimation();
|
||||
|
||||
public void PlaySecondaryAttackAnimation();
|
||||
|
||||
public void PlayPrimarySkillAnimation();
|
||||
|
||||
public void PlayHitAnimation();
|
||||
|
||||
public void PlayDeathAnimation();
|
||||
|
||||
public IHitbox Hitbox { get; }
|
||||
}
|
||||
12
src/enemy/INavigationAgentClient.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Godot;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
public interface INavigationAgentClient
|
||||
{
|
||||
public void CalculateVelocity(Vector3 currentPosition);
|
||||
|
||||
public void SetTarget(Vector3 target);
|
||||
|
||||
public bool IsAvoidanceEnabled { get; }
|
||||
}
|
||||
1
src/enemy/INavigationAgentClient.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://71hjyrgwnvxx
|
||||
72
src/enemy/NavigationAgentClient.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using GameJamDungeon.src.enemy;
|
||||
using Godot;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
public partial class NavigationAgentClient : Node3D, INavigationAgentClient
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
[Node] private NavigationAgent3D NavAgent { get; set; } = default!;
|
||||
|
||||
[Node] private Timer _patrolTimer { get; set; } = default!;
|
||||
|
||||
private Vector3 _currentTarget = Vector3.Zero;
|
||||
private Timer _thinkTimer;
|
||||
|
||||
public void Setup()
|
||||
{
|
||||
NavAgent.VelocityComputed += NavAgent_VelocityComputed;
|
||||
NavAgent.TargetReached += NavAgent_TargetReached;
|
||||
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
_patrolTimer.Timeout += OnPatrolTimeout;
|
||||
_patrolTimer.WaitTime = rng.RandfRange(7.0f, 15.0f);
|
||||
|
||||
_thinkTimer = new Timer
|
||||
{
|
||||
WaitTime = 0.4f
|
||||
};
|
||||
AddChild(_thinkTimer);
|
||||
_thinkTimer.Timeout += NavAgent_TargetReached;
|
||||
_thinkTimer.Start();
|
||||
}
|
||||
|
||||
private void NavAgent_VelocityComputed(Vector3 safeVelocity)
|
||||
{
|
||||
var enemy = GetParent() as IEnemy;
|
||||
enemy.Move(safeVelocity);
|
||||
}
|
||||
|
||||
public void CalculateVelocity(Vector3 currentPosition)
|
||||
{
|
||||
var nextPathPosition = NavAgent.GetNextPathPosition();
|
||||
|
||||
var newVelocity = currentPosition.DirectionTo(nextPathPosition) * 2f;
|
||||
NavAgent.Velocity = newVelocity;
|
||||
}
|
||||
public void SetTarget(Vector3 target) => Task.Delay(TimeSpan.FromSeconds(0.4)).ContinueWith(_ => _currentTarget = new Vector3(target.X, -1.75f, target.Z));
|
||||
|
||||
public bool IsAvoidanceEnabled => NavAgent.AvoidanceEnabled;
|
||||
|
||||
|
||||
private void NavAgent_TargetReached()
|
||||
{
|
||||
NavAgent.TargetPosition = _currentTarget;
|
||||
}
|
||||
|
||||
private void OnPatrolTimeout()
|
||||
{
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
_patrolTimer.WaitTime = rng.RandfRange(5.0f, 10.0f);
|
||||
var enemy = GetParent() as ICanPatrol;
|
||||
enemy.Patrol();
|
||||
}
|
||||
}
|
||||
1
src/enemy/NavigationAgentClient.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://rcnriaxfld2h
|
||||
14
src/enemy/NavigationAgentClient.tscn
Normal file
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://pbnsngx5jvrh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://rcnriaxfld2h" path="res://src/enemy/NavigationAgentClient.cs" id="1_qwonp"]
|
||||
|
||||
[node name="NavigationAgentClient" type="Node3D"]
|
||||
script = ExtResource("1_qwonp")
|
||||
|
||||
[node name="NavAgent" type="NavigationAgent3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
path_desired_distance = 2.0
|
||||
target_desired_distance = 2.5
|
||||
avoidance_enabled = true
|
||||
radius = 1.5
|
||||
time_horizon_obstacles = 1.0
|
||||
@@ -1,11 +1,12 @@
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using GameJamDungeon.src.enemy;
|
||||
using Godot;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
public partial class Sproingy : Enemy, IHasPrimaryAttack
|
||||
public partial class Sproingy : Enemy, IHasPrimaryAttack, ICanPatrol
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
@@ -14,10 +15,12 @@ public partial class Sproingy : Enemy, IHasPrimaryAttack
|
||||
[Export]
|
||||
public double PrimaryAttackElementalDamageBonus { get; set; } = 1.0;
|
||||
|
||||
[Node] private INavigationAgentClient _navigationAgentClient { get; set; } = default!;
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
SetPhysicsProcess(true);
|
||||
EnemyModelView.Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||
_enemyModelView.Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||
}
|
||||
|
||||
public void OnPhysicsProcess(double delta)
|
||||
@@ -30,15 +33,31 @@ public partial class Sproingy : Enemy, IHasPrimaryAttack
|
||||
_enemyLogic.Input(new EnemyLogic.Input.LostPlayer());
|
||||
if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(Player.CurrentPosition) > 5f)
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
|
||||
|
||||
_navigationAgentClient.CalculateVelocity(GlobalPosition);
|
||||
|
||||
base._PhysicsProcess(delta);
|
||||
}
|
||||
|
||||
public override void TakeAction()
|
||||
{
|
||||
PrimaryAttack();
|
||||
}
|
||||
|
||||
public void PrimaryAttack()
|
||||
{
|
||||
EnemyModelView.PlayPrimaryAttackAnimation();
|
||||
_enemyModelView.PlayPrimaryAttackAnimation();
|
||||
}
|
||||
|
||||
public override void SetTarget(Vector3 target) => _navigationAgentClient.SetTarget(target);
|
||||
|
||||
public void Patrol()
|
||||
{
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
var randomizedSpot = new Vector3(rng.RandfRange(-5.0f, 5.0f), 0, rng.RandfRange(-5.0f, 5.0f));
|
||||
_enemyLogic.Input(new EnemyLogic.Input.PatrolToRandomSpot(GlobalPosition + randomizedSpot));
|
||||
_enemyLogic.Input(new EnemyLogic.Input.StartPatrol());
|
||||
}
|
||||
|
||||
private void Hitbox_AreaEntered(Area3D area)
|
||||
@@ -1,8 +1,9 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://bksq62muhk3h5"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://bksq62muhk3h5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/1. sproingy/Sproingy.cs" id="1_xsluo"]
|
||||
[ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.cs" id="1_xsluo"]
|
||||
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_oln85"]
|
||||
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/1. sproingy/SproingyModelView.tscn" id="4_o3b7p"]
|
||||
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_ut5m2"]
|
||||
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="4_o3b7p"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_oln85"]
|
||||
script = ExtResource("2_oln85")
|
||||
@@ -41,23 +42,14 @@ axis_lock_angular_z = true
|
||||
script = ExtResource("1_xsluo")
|
||||
_enemyStatResource = SubResource("Resource_oln85")
|
||||
|
||||
[node name="NavigationAgentClient" parent="." instance=ExtResource("3_ut5m2")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||
shape = SubResource("CapsuleShape3D_cwfph")
|
||||
|
||||
[node name="NavAgent" type="NavigationAgent3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
path_desired_distance = 2.0
|
||||
target_desired_distance = 2.5
|
||||
avoidance_enabled = true
|
||||
radius = 1.5
|
||||
time_horizon_obstacles = 1.0
|
||||
debug_enabled = true
|
||||
debug_use_custom = true
|
||||
debug_path_custom_color = Color(0.388717, 0.273656, 0.30701, 1)
|
||||
debug_path_custom_point_size = 10.0
|
||||
|
||||
[node name="LineOfSight" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||
@@ -1,62 +1,61 @@
|
||||
[gd_scene load_steps=122 format=3 uid="uid://bli0t0d6ommvi"]
|
||||
[gd_scene load_steps=121 format=3 uid="uid://bli0t0d6ommvi"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://chymnqdw7hibn" path="res://src/enemy/EnemyModelView.cs" id="1_0vbio"]
|
||||
[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"]
|
||||
[ext_resource type="Texture2D" uid="uid://bs4ico5ouo5d3" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 2.png" id="2_0vbio"]
|
||||
[ext_resource type="Resource" uid="uid://bctxs1jlkhgmc" path="res://src/enemy/enemy_types/1. sproingy/SproingyLoreInfo.tres" id="2_53wuj"]
|
||||
[ext_resource type="Texture2D" uid="uid://85ki5mc4h0vs" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 3.png" id="3_lae8t"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwt1m2frb3r0e" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 4.png" id="4_53wuj"]
|
||||
[ext_resource type="Texture2D" uid="uid://ckssl1np6vnlu" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 5.png" id="5_d5bmw"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4sqc6i3xcfac" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 6.png" id="6_fpvxl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cawexe4wkosc8" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 7.png" id="7_qq0ru"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0j1vrx7xdnxl" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 8.png" id="8_c54uj"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0qhndaukki7c" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 9.png" id="9_qmo72"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnd08q34wa7ww" path="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 10.png" id="10_jyt1n"]
|
||||
[ext_resource type="Texture2D" uid="uid://b8ntr7hh6rr5h" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 1.png" id="11_5un2v"]
|
||||
[ext_resource type="Texture2D" uid="uid://csgthlou2tnvb" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 2.png" id="12_2x3nl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cfyxuk85350gn" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 3.png" id="13_6a5nw"]
|
||||
[ext_resource type="Texture2D" uid="uid://dufdb5gc0gfkr" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 4.png" id="14_0jqty"]
|
||||
[ext_resource type="Texture2D" uid="uid://buu4btd3adrr4" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 5.png" id="15_yjcrh"]
|
||||
[ext_resource type="Texture2D" uid="uid://ddgctjau0dnmh" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 6.png" id="16_2ybyh"]
|
||||
[ext_resource type="Texture2D" uid="uid://2jwaacvarrha" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 7.png" id="17_n454k"]
|
||||
[ext_resource type="Texture2D" uid="uid://8837jm7f78uo" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 8.png" id="18_vrcjv"]
|
||||
[ext_resource type="Texture2D" uid="uid://devt1gmwduo5h" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 9.png" id="19_h1yxw"]
|
||||
[ext_resource type="Texture2D" uid="uid://cj3m4eyagiye6" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 10.png" id="20_kg6hd"]
|
||||
[ext_resource type="Texture2D" uid="uid://cyigr4eip1mxt" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 11.png" id="21_25i3y"]
|
||||
[ext_resource type="Texture2D" uid="uid://kavqjxq17m0p" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 12.png" id="22_5g722"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcce7b4wp6a4v" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 13.png" id="23_a6y4x"]
|
||||
[ext_resource type="Texture2D" uid="uid://doiu8sug4t8ki" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 14.png" id="24_7y7m4"]
|
||||
[ext_resource type="Texture2D" uid="uid://dqymhvgu03xpl" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 15.png" id="25_ldcvv"]
|
||||
[ext_resource type="Texture2D" uid="uid://cjk1vjjk3gnjl" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 1.png" id="26_aalmk"]
|
||||
[ext_resource type="Texture2D" uid="uid://1nv7dlxcqlia" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 2.png" id="27_2le5t"]
|
||||
[ext_resource type="Texture2D" uid="uid://bniq2b1phbjk5" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 3.png" id="28_4nmgu"]
|
||||
[ext_resource type="Texture2D" uid="uid://ba846rlx4phr2" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 4.png" id="29_mw5r6"]
|
||||
[ext_resource type="Texture2D" uid="uid://b76dai3g8nh2a" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 5.png" id="30_jbtxi"]
|
||||
[ext_resource type="Texture2D" uid="uid://wqec5p5xahew" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 6.png" id="31_mjxlk"]
|
||||
[ext_resource type="Texture2D" uid="uid://sl7fel3muw2y" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 7.png" id="32_al2xs"]
|
||||
[ext_resource type="Texture2D" uid="uid://cucixinggd5s2" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 8.png" id="33_afa0q"]
|
||||
[ext_resource type="Texture2D" uid="uid://ccn6vymd07kd2" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 9.png" id="34_irq32"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7jqturu5jm2c" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 10.png" id="35_2khaq"]
|
||||
[ext_resource type="Texture2D" uid="uid://c1m065dts364p" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 11.png" id="36_k7x0x"]
|
||||
[ext_resource type="Texture2D" uid="uid://qsm43ovrbr7m" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 12.png" id="37_noc6c"]
|
||||
[ext_resource type="Texture2D" uid="uid://bslsx7k6aa4tf" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 13.png" id="38_tfygr"]
|
||||
[ext_resource type="Texture2D" uid="uid://cefke0gsokfi1" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 14.png" id="39_fpoao"]
|
||||
[ext_resource type="Texture2D" uid="uid://blmpd2lu84ppt" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 15.png" id="40_s4c8e"]
|
||||
[ext_resource type="Texture2D" uid="uid://kwaf2jj5oyu4" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 1.png" id="41_d3ufd"]
|
||||
[ext_resource type="Texture2D" uid="uid://ul0q834bwd6" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 2.png" id="42_ap0nr"]
|
||||
[ext_resource type="Texture2D" uid="uid://bpohl3uqutcyb" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 3.png" id="43_snwjc"]
|
||||
[ext_resource type="Texture2D" uid="uid://dlbt7lj5ryl0v" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 4.png" id="44_wba7a"]
|
||||
[ext_resource type="Texture2D" uid="uid://bkhn4ck7bx6tt" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 5.png" id="45_v1iqd"]
|
||||
[ext_resource type="Texture2D" uid="uid://c8uw6qdsi1720" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 6.png" id="46_mylxl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnoouhy7p3gi3" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 7.png" id="47_gg0cg"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1xldymngql00" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 8.png" id="48_33r3i"]
|
||||
[ext_resource type="Texture2D" uid="uid://btuxhmmb6ikvf" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 9.png" id="49_r4mim"]
|
||||
[ext_resource type="Texture2D" uid="uid://dlrn3cbdubg5s" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 10.png" id="50_r2i8l"]
|
||||
[ext_resource type="Texture2D" uid="uid://oukshrxpgscg" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 11.png" id="51_xbv86"]
|
||||
[ext_resource type="Texture2D" uid="uid://buk3stdgcg44w" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 12.png" id="52_rtp20"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3gndmrlrvexy" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 13.png" id="53_nr2vc"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1cmx8l4ia3fv" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 14.png" id="54_jdvn0"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7t4626rox02s" path="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_SIDE/Layer 15.png" id="55_2eqor"]
|
||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"]
|
||||
[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"]
|
||||
[ext_resource type="Texture2D" uid="uid://bs4ico5ouo5d3" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 2.png" id="2_0vbio"]
|
||||
[ext_resource type="Texture2D" uid="uid://85ki5mc4h0vs" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 3.png" id="3_lae8t"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwt1m2frb3r0e" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 4.png" id="4_53wuj"]
|
||||
[ext_resource type="Texture2D" uid="uid://ckssl1np6vnlu" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 5.png" id="5_d5bmw"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4sqc6i3xcfac" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 6.png" id="6_fpvxl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cawexe4wkosc8" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 7.png" id="7_qq0ru"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0j1vrx7xdnxl" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 8.png" id="8_c54uj"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0qhndaukki7c" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 9.png" id="9_qmo72"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnd08q34wa7ww" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 10.png" id="10_jyt1n"]
|
||||
[ext_resource type="Texture2D" uid="uid://b8ntr7hh6rr5h" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 1.png" id="11_5un2v"]
|
||||
[ext_resource type="Texture2D" uid="uid://csgthlou2tnvb" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 2.png" id="12_2x3nl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cfyxuk85350gn" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 3.png" id="13_6a5nw"]
|
||||
[ext_resource type="Texture2D" uid="uid://dufdb5gc0gfkr" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 4.png" id="14_0jqty"]
|
||||
[ext_resource type="Texture2D" uid="uid://buu4btd3adrr4" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 5.png" id="15_yjcrh"]
|
||||
[ext_resource type="Texture2D" uid="uid://ddgctjau0dnmh" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 6.png" id="16_2ybyh"]
|
||||
[ext_resource type="Texture2D" uid="uid://2jwaacvarrha" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 7.png" id="17_n454k"]
|
||||
[ext_resource type="Texture2D" uid="uid://8837jm7f78uo" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 8.png" id="18_vrcjv"]
|
||||
[ext_resource type="Texture2D" uid="uid://devt1gmwduo5h" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 9.png" id="19_h1yxw"]
|
||||
[ext_resource type="Texture2D" uid="uid://cj3m4eyagiye6" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 10.png" id="20_kg6hd"]
|
||||
[ext_resource type="Texture2D" uid="uid://cyigr4eip1mxt" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 11.png" id="21_25i3y"]
|
||||
[ext_resource type="Texture2D" uid="uid://kavqjxq17m0p" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 12.png" id="22_5g722"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcce7b4wp6a4v" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 13.png" id="23_a6y4x"]
|
||||
[ext_resource type="Texture2D" uid="uid://doiu8sug4t8ki" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 14.png" id="24_7y7m4"]
|
||||
[ext_resource type="Texture2D" uid="uid://dqymhvgu03xpl" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 15.png" id="25_ldcvv"]
|
||||
[ext_resource type="Texture2D" uid="uid://cjk1vjjk3gnjl" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 1.png" id="26_aalmk"]
|
||||
[ext_resource type="Texture2D" uid="uid://1nv7dlxcqlia" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 2.png" id="27_2le5t"]
|
||||
[ext_resource type="Texture2D" uid="uid://bniq2b1phbjk5" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 3.png" id="28_4nmgu"]
|
||||
[ext_resource type="Texture2D" uid="uid://ba846rlx4phr2" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 4.png" id="29_mw5r6"]
|
||||
[ext_resource type="Texture2D" uid="uid://b76dai3g8nh2a" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 5.png" id="30_jbtxi"]
|
||||
[ext_resource type="Texture2D" uid="uid://wqec5p5xahew" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 6.png" id="31_mjxlk"]
|
||||
[ext_resource type="Texture2D" uid="uid://sl7fel3muw2y" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 7.png" id="32_al2xs"]
|
||||
[ext_resource type="Texture2D" uid="uid://cucixinggd5s2" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 8.png" id="33_afa0q"]
|
||||
[ext_resource type="Texture2D" uid="uid://ccn6vymd07kd2" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 9.png" id="34_irq32"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7jqturu5jm2c" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 10.png" id="35_2khaq"]
|
||||
[ext_resource type="Texture2D" uid="uid://c1m065dts364p" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 11.png" id="36_k7x0x"]
|
||||
[ext_resource type="Texture2D" uid="uid://qsm43ovrbr7m" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 12.png" id="37_noc6c"]
|
||||
[ext_resource type="Texture2D" uid="uid://bslsx7k6aa4tf" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 13.png" id="38_tfygr"]
|
||||
[ext_resource type="Texture2D" uid="uid://cefke0gsokfi1" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 14.png" id="39_fpoao"]
|
||||
[ext_resource type="Texture2D" uid="uid://blmpd2lu84ppt" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 15.png" id="40_s4c8e"]
|
||||
[ext_resource type="Texture2D" uid="uid://kwaf2jj5oyu4" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 1.png" id="41_d3ufd"]
|
||||
[ext_resource type="Texture2D" uid="uid://ul0q834bwd6" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 2.png" id="42_ap0nr"]
|
||||
[ext_resource type="Texture2D" uid="uid://bpohl3uqutcyb" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 3.png" id="43_snwjc"]
|
||||
[ext_resource type="Texture2D" uid="uid://dlbt7lj5ryl0v" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 4.png" id="44_wba7a"]
|
||||
[ext_resource type="Texture2D" uid="uid://bkhn4ck7bx6tt" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 5.png" id="45_v1iqd"]
|
||||
[ext_resource type="Texture2D" uid="uid://c8uw6qdsi1720" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 6.png" id="46_mylxl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnoouhy7p3gi3" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 7.png" id="47_gg0cg"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1xldymngql00" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 8.png" id="48_33r3i"]
|
||||
[ext_resource type="Texture2D" uid="uid://btuxhmmb6ikvf" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 9.png" id="49_r4mim"]
|
||||
[ext_resource type="Texture2D" uid="uid://dlrn3cbdubg5s" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 10.png" id="50_r2i8l"]
|
||||
[ext_resource type="Texture2D" uid="uid://oukshrxpgscg" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 11.png" id="51_xbv86"]
|
||||
[ext_resource type="Texture2D" uid="uid://buk3stdgcg44w" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 12.png" id="52_rtp20"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3gndmrlrvexy" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 13.png" id="53_nr2vc"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1cmx8l4ia3fv" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 14.png" id="54_jdvn0"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7t4626rox02s" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 15.png" id="55_2eqor"]
|
||||
[ext_resource type="Script" uid="uid://6edayafleq8y" path="res://src/hitbox/Hitbox.cs" id="57_lae8t"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
|
||||
@@ -690,8 +689,7 @@ transitions = ["idle_front_walk", "idle_left_walk", SubResource("AnimationNodeSt
|
||||
graph_offset = Vector2(495.706, -34.8579)
|
||||
|
||||
[node name="EnemyModelView" type="Node3D"]
|
||||
script = ExtResource("1_0vbio")
|
||||
EnemyLoreInfo = ExtResource("2_53wuj")
|
||||
script = ExtResource("1_oh25a")
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0)
|
||||
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dd0ia6isdqg61"
|
||||
path="res://.godot/imported/Layer 1.png-5b9fe66235ef77b00745deff3625b602.ctex"
|
||||
path="res://.godot/imported/Layer 1.png-bd8d0a308ff3daec4b133fe53712d0f8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 1.png"
|
||||
dest_files=["res://.godot/imported/Layer 1.png-5b9fe66235ef77b00745deff3625b602.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png"
|
||||
dest_files=["res://.godot/imported/Layer 1.png-bd8d0a308ff3daec4b133fe53712d0f8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cnd08q34wa7ww"
|
||||
path="res://.godot/imported/Layer 10.png-c175c66a28a6cd1f5b29ce6b0800367f.ctex"
|
||||
path="res://.godot/imported/Layer 10.png-5bf815a3d9112f8b0f5c1d296d4c79d5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 10.png"
|
||||
dest_files=["res://.godot/imported/Layer 10.png-c175c66a28a6cd1f5b29ce6b0800367f.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 10.png"
|
||||
dest_files=["res://.godot/imported/Layer 10.png-5bf815a3d9112f8b0f5c1d296d4c79d5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bs4ico5ouo5d3"
|
||||
path="res://.godot/imported/Layer 2.png-81868ef3cdd23bde0e487d9ef0938e0b.ctex"
|
||||
path="res://.godot/imported/Layer 2.png-ad4263d32cc8125e5db988e6008f1261.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 2.png"
|
||||
dest_files=["res://.godot/imported/Layer 2.png-81868ef3cdd23bde0e487d9ef0938e0b.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 2.png"
|
||||
dest_files=["res://.godot/imported/Layer 2.png-ad4263d32cc8125e5db988e6008f1261.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://85ki5mc4h0vs"
|
||||
path="res://.godot/imported/Layer 3.png-ddb98d9b5346cb4de4ba5ce0ab332f74.ctex"
|
||||
path="res://.godot/imported/Layer 3.png-1664f998445a2cf068e7ca8f3d037c03.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 3.png"
|
||||
dest_files=["res://.godot/imported/Layer 3.png-ddb98d9b5346cb4de4ba5ce0ab332f74.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 3.png"
|
||||
dest_files=["res://.godot/imported/Layer 3.png-1664f998445a2cf068e7ca8f3d037c03.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bwt1m2frb3r0e"
|
||||
path="res://.godot/imported/Layer 4.png-8435898b081e57af61cf1c1aa776d9e7.ctex"
|
||||
path="res://.godot/imported/Layer 4.png-4fa071fc5d0751880691269fd66e4a38.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 4.png"
|
||||
dest_files=["res://.godot/imported/Layer 4.png-8435898b081e57af61cf1c1aa776d9e7.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 4.png"
|
||||
dest_files=["res://.godot/imported/Layer 4.png-4fa071fc5d0751880691269fd66e4a38.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ckssl1np6vnlu"
|
||||
path="res://.godot/imported/Layer 5.png-2239cf447db71740a2613f7ceaae85c2.ctex"
|
||||
path="res://.godot/imported/Layer 5.png-6605d9488d5f0dd4dfc3db6d6a436cde.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 5.png"
|
||||
dest_files=["res://.godot/imported/Layer 5.png-2239cf447db71740a2613f7ceaae85c2.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 5.png"
|
||||
dest_files=["res://.godot/imported/Layer 5.png-6605d9488d5f0dd4dfc3db6d6a436cde.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c4sqc6i3xcfac"
|
||||
path="res://.godot/imported/Layer 6.png-caea54bf0971b2b1feac3472facfd241.ctex"
|
||||
path="res://.godot/imported/Layer 6.png-b4a8ec7de19cfe292d93ce32d6ec9ee3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 6.png"
|
||||
dest_files=["res://.godot/imported/Layer 6.png-caea54bf0971b2b1feac3472facfd241.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 6.png"
|
||||
dest_files=["res://.godot/imported/Layer 6.png-b4a8ec7de19cfe292d93ce32d6ec9ee3.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cawexe4wkosc8"
|
||||
path="res://.godot/imported/Layer 7.png-5fe0455b76c0cf1128699c0f6b058aff.ctex"
|
||||
path="res://.godot/imported/Layer 7.png-488d3fb32cd66da8971597d23bd04ba8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 7.png"
|
||||
dest_files=["res://.godot/imported/Layer 7.png-5fe0455b76c0cf1128699c0f6b058aff.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 7.png"
|
||||
dest_files=["res://.godot/imported/Layer 7.png-488d3fb32cd66da8971597d23bd04ba8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d0j1vrx7xdnxl"
|
||||
path="res://.godot/imported/Layer 8.png-f7fb26baec479643d61259af33d78eb1.ctex"
|
||||
path="res://.godot/imported/Layer 8.png-f8c8423b6ef9e0c3d6ca5229445d34a6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 8.png"
|
||||
dest_files=["res://.godot/imported/Layer 8.png-f7fb26baec479643d61259af33d78eb1.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 8.png"
|
||||
dest_files=["res://.godot/imported/Layer 8.png-f8c8423b6ef9e0c3d6ca5229445d34a6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d0qhndaukki7c"
|
||||
path="res://.godot/imported/Layer 9.png-dec39fd87ec117cd8cb03aa4e6494af8.ctex"
|
||||
path="res://.godot/imported/Layer 9.png-caabc67ddb2476f5761c0554d0b4b68d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/ATTACK/Layer 9.png"
|
||||
dest_files=["res://.godot/imported/Layer 9.png-dec39fd87ec117cd8cb03aa4e6494af8.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 9.png"
|
||||
dest_files=["res://.godot/imported/Layer 9.png-caabc67ddb2476f5761c0554d0b4b68d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b8ntr7hh6rr5h"
|
||||
path="res://.godot/imported/Layer 1.png-60d7fdbbac434630cf32e9a0aab33fa3.ctex"
|
||||
path="res://.godot/imported/Layer 1.png-1af20796814e6cbd19ad152136cda4bf.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 1.png"
|
||||
dest_files=["res://.godot/imported/Layer 1.png-60d7fdbbac434630cf32e9a0aab33fa3.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 1.png"
|
||||
dest_files=["res://.godot/imported/Layer 1.png-1af20796814e6cbd19ad152136cda4bf.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cj3m4eyagiye6"
|
||||
path="res://.godot/imported/Layer 10.png-ae95b6e132950c357a13d945d6249aff.ctex"
|
||||
path="res://.godot/imported/Layer 10.png-90e454e5b43acbf1f2a8a10b75127361.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 10.png"
|
||||
dest_files=["res://.godot/imported/Layer 10.png-ae95b6e132950c357a13d945d6249aff.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 10.png"
|
||||
dest_files=["res://.godot/imported/Layer 10.png-90e454e5b43acbf1f2a8a10b75127361.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cyigr4eip1mxt"
|
||||
path="res://.godot/imported/Layer 11.png-1e36e7ed97ee937b1b65866da3da8cf4.ctex"
|
||||
path="res://.godot/imported/Layer 11.png-dbe72027bf9e28d92151e3eb5302a235.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 11.png"
|
||||
dest_files=["res://.godot/imported/Layer 11.png-1e36e7ed97ee937b1b65866da3da8cf4.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 11.png"
|
||||
dest_files=["res://.godot/imported/Layer 11.png-dbe72027bf9e28d92151e3eb5302a235.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://kavqjxq17m0p"
|
||||
path="res://.godot/imported/Layer 12.png-5cc25f739d71b51d0d03067c83a31ffb.ctex"
|
||||
path="res://.godot/imported/Layer 12.png-d451de2058e6cabf245a4e14055ca3ff.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 12.png"
|
||||
dest_files=["res://.godot/imported/Layer 12.png-5cc25f739d71b51d0d03067c83a31ffb.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 12.png"
|
||||
dest_files=["res://.godot/imported/Layer 12.png-d451de2058e6cabf245a4e14055ca3ff.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bcce7b4wp6a4v"
|
||||
path="res://.godot/imported/Layer 13.png-039b76ac83350c62c5d491299b2cd4e7.ctex"
|
||||
path="res://.godot/imported/Layer 13.png-1670c6688dbe65fb29a169a6d186e0b8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 13.png"
|
||||
dest_files=["res://.godot/imported/Layer 13.png-039b76ac83350c62c5d491299b2cd4e7.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 13.png"
|
||||
dest_files=["res://.godot/imported/Layer 13.png-1670c6688dbe65fb29a169a6d186e0b8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://doiu8sug4t8ki"
|
||||
path="res://.godot/imported/Layer 14.png-2fa8256307e46de387b692a4c87e94f9.ctex"
|
||||
path="res://.godot/imported/Layer 14.png-e35d02a2d0d59dec0fd9b289c503195f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 14.png"
|
||||
dest_files=["res://.godot/imported/Layer 14.png-2fa8256307e46de387b692a4c87e94f9.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 14.png"
|
||||
dest_files=["res://.godot/imported/Layer 14.png-e35d02a2d0d59dec0fd9b289c503195f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dqymhvgu03xpl"
|
||||
path="res://.godot/imported/Layer 15.png-3ed5689c3217d3740c4d735b5c3d33f7.ctex"
|
||||
path="res://.godot/imported/Layer 15.png-4b38e38c90b8333b6dc347487db05eec.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 15.png"
|
||||
dest_files=["res://.godot/imported/Layer 15.png-3ed5689c3217d3740c4d735b5c3d33f7.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 15.png"
|
||||
dest_files=["res://.godot/imported/Layer 15.png-4b38e38c90b8333b6dc347487db05eec.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://csgthlou2tnvb"
|
||||
path="res://.godot/imported/Layer 2.png-148b13578b66a152f67257601e69749b.ctex"
|
||||
path="res://.godot/imported/Layer 2.png-ca42949b60502fbe8427c1345eb19d2c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 2.png"
|
||||
dest_files=["res://.godot/imported/Layer 2.png-148b13578b66a152f67257601e69749b.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 2.png"
|
||||
dest_files=["res://.godot/imported/Layer 2.png-ca42949b60502fbe8427c1345eb19d2c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cfyxuk85350gn"
|
||||
path="res://.godot/imported/Layer 3.png-03bc4d180da3f3a5dec81643f529245b.ctex"
|
||||
path="res://.godot/imported/Layer 3.png-3a515f85c9b04eb7a48348228229101a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 3.png"
|
||||
dest_files=["res://.godot/imported/Layer 3.png-03bc4d180da3f3a5dec81643f529245b.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 3.png"
|
||||
dest_files=["res://.godot/imported/Layer 3.png-3a515f85c9b04eb7a48348228229101a.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dufdb5gc0gfkr"
|
||||
path="res://.godot/imported/Layer 4.png-127401bbc96da77eb91c82d6aae30cd7.ctex"
|
||||
path="res://.godot/imported/Layer 4.png-c7bf5b449416964c0b42e32b468194e8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 4.png"
|
||||
dest_files=["res://.godot/imported/Layer 4.png-127401bbc96da77eb91c82d6aae30cd7.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 4.png"
|
||||
dest_files=["res://.godot/imported/Layer 4.png-c7bf5b449416964c0b42e32b468194e8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://buu4btd3adrr4"
|
||||
path="res://.godot/imported/Layer 5.png-3a161158dc6fd41d5a9db942dfafccfd.ctex"
|
||||
path="res://.godot/imported/Layer 5.png-4910e8406f750016c64e9645ece384cd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 5.png"
|
||||
dest_files=["res://.godot/imported/Layer 5.png-3a161158dc6fd41d5a9db942dfafccfd.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 5.png"
|
||||
dest_files=["res://.godot/imported/Layer 5.png-4910e8406f750016c64e9645ece384cd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ddgctjau0dnmh"
|
||||
path="res://.godot/imported/Layer 6.png-9c8bcdbce8670a62871a8ebf12db69dc.ctex"
|
||||
path="res://.godot/imported/Layer 6.png-5089fecd867d9797ab7d87b3a86569e2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 6.png"
|
||||
dest_files=["res://.godot/imported/Layer 6.png-9c8bcdbce8670a62871a8ebf12db69dc.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 6.png"
|
||||
dest_files=["res://.godot/imported/Layer 6.png-5089fecd867d9797ab7d87b3a86569e2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://2jwaacvarrha"
|
||||
path="res://.godot/imported/Layer 7.png-eff930047da751da9f216d75ff8e4b56.ctex"
|
||||
path="res://.godot/imported/Layer 7.png-f2b0baf1eb6fc935d3bf1495fadacd18.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 7.png"
|
||||
dest_files=["res://.godot/imported/Layer 7.png-eff930047da751da9f216d75ff8e4b56.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 7.png"
|
||||
dest_files=["res://.godot/imported/Layer 7.png-f2b0baf1eb6fc935d3bf1495fadacd18.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://8837jm7f78uo"
|
||||
path="res://.godot/imported/Layer 8.png-38696d7852cdcceb3457b0022e66e26b.ctex"
|
||||
path="res://.godot/imported/Layer 8.png-e0bdbc12588d1ae397cea9d3adbd1fdd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 8.png"
|
||||
dest_files=["res://.godot/imported/Layer 8.png-38696d7852cdcceb3457b0022e66e26b.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 8.png"
|
||||
dest_files=["res://.godot/imported/Layer 8.png-e0bdbc12588d1ae397cea9d3adbd1fdd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://devt1gmwduo5h"
|
||||
path="res://.godot/imported/Layer 9.png-aa787b39f1b4576b4a1d0ccd255d81c8.ctex"
|
||||
path="res://.godot/imported/Layer 9.png-b190ba9434fb36fff1b9cab779b8a036.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_BACK/Layer 9.png"
|
||||
dest_files=["res://.godot/imported/Layer 9.png-aa787b39f1b4576b4a1d0ccd255d81c8.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_BACK/Layer 9.png"
|
||||
dest_files=["res://.godot/imported/Layer 9.png-b190ba9434fb36fff1b9cab779b8a036.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cjk1vjjk3gnjl"
|
||||
path="res://.godot/imported/Layer 1.png-3d480eb3614fc3acfd090150b6daad83.ctex"
|
||||
path="res://.godot/imported/Layer 1.png-7f29af16ec032c588522b621e002a939.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 1.png"
|
||||
dest_files=["res://.godot/imported/Layer 1.png-3d480eb3614fc3acfd090150b6daad83.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 1.png"
|
||||
dest_files=["res://.godot/imported/Layer 1.png-7f29af16ec032c588522b621e002a939.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7jqturu5jm2c"
|
||||
path="res://.godot/imported/Layer 10.png-938b9ce83355463a9d90e83c1030dec4.ctex"
|
||||
path="res://.godot/imported/Layer 10.png-223f47f08d11bf248ea4275a7450872c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 10.png"
|
||||
dest_files=["res://.godot/imported/Layer 10.png-938b9ce83355463a9d90e83c1030dec4.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 10.png"
|
||||
dest_files=["res://.godot/imported/Layer 10.png-223f47f08d11bf248ea4275a7450872c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c1m065dts364p"
|
||||
path="res://.godot/imported/Layer 11.png-ea5eb04ead813d69448bfbf4d3eea19f.ctex"
|
||||
path="res://.godot/imported/Layer 11.png-b3a00dc973dc225a9b63ae1553a28222.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 11.png"
|
||||
dest_files=["res://.godot/imported/Layer 11.png-ea5eb04ead813d69448bfbf4d3eea19f.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 11.png"
|
||||
dest_files=["res://.godot/imported/Layer 11.png-b3a00dc973dc225a9b63ae1553a28222.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://qsm43ovrbr7m"
|
||||
path="res://.godot/imported/Layer 12.png-8400acd03d2bed037f1171d02b7c06ab.ctex"
|
||||
path="res://.godot/imported/Layer 12.png-3da1bcbfa1c3b6d30e34b2aaada99851.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 12.png"
|
||||
dest_files=["res://.godot/imported/Layer 12.png-8400acd03d2bed037f1171d02b7c06ab.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 12.png"
|
||||
dest_files=["res://.godot/imported/Layer 12.png-3da1bcbfa1c3b6d30e34b2aaada99851.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bslsx7k6aa4tf"
|
||||
path="res://.godot/imported/Layer 13.png-3db0976880b54ac956319b27aa1c55da.ctex"
|
||||
path="res://.godot/imported/Layer 13.png-ce3a789a697eb33d735f02d4953753f6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 13.png"
|
||||
dest_files=["res://.godot/imported/Layer 13.png-3db0976880b54ac956319b27aa1c55da.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 13.png"
|
||||
dest_files=["res://.godot/imported/Layer 13.png-ce3a789a697eb33d735f02d4953753f6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cefke0gsokfi1"
|
||||
path="res://.godot/imported/Layer 14.png-93f662eb1bb7b5769d7a973534acc7c0.ctex"
|
||||
path="res://.godot/imported/Layer 14.png-5604097342d06aa8360b94f5c6119e81.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 14.png"
|
||||
dest_files=["res://.godot/imported/Layer 14.png-93f662eb1bb7b5769d7a973534acc7c0.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 14.png"
|
||||
dest_files=["res://.godot/imported/Layer 14.png-5604097342d06aa8360b94f5c6119e81.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://blmpd2lu84ppt"
|
||||
path="res://.godot/imported/Layer 15.png-81773cfcee2d00e9bd21897aa90f0c95.ctex"
|
||||
path="res://.godot/imported/Layer 15.png-bdd608137238311f3d2ef8db75cf015c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 15.png"
|
||||
dest_files=["res://.godot/imported/Layer 15.png-81773cfcee2d00e9bd21897aa90f0c95.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 15.png"
|
||||
dest_files=["res://.godot/imported/Layer 15.png-bdd608137238311f3d2ef8db75cf015c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://1nv7dlxcqlia"
|
||||
path="res://.godot/imported/Layer 2.png-50bc09237ea069ae5ec832b8fc175c65.ctex"
|
||||
path="res://.godot/imported/Layer 2.png-5cb9d2a194768dc1674bb54c811e2cbb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 2.png"
|
||||
dest_files=["res://.godot/imported/Layer 2.png-50bc09237ea069ae5ec832b8fc175c65.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 2.png"
|
||||
dest_files=["res://.godot/imported/Layer 2.png-5cb9d2a194768dc1674bb54c811e2cbb.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bniq2b1phbjk5"
|
||||
path="res://.godot/imported/Layer 3.png-694bf1d166b4939b08cd6ffeefad8ac4.ctex"
|
||||
path="res://.godot/imported/Layer 3.png-2a70da4a5edb45d22671dcbc70b844fd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 3.png"
|
||||
dest_files=["res://.godot/imported/Layer 3.png-694bf1d166b4939b08cd6ffeefad8ac4.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 3.png"
|
||||
dest_files=["res://.godot/imported/Layer 3.png-2a70da4a5edb45d22671dcbc70b844fd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ba846rlx4phr2"
|
||||
path="res://.godot/imported/Layer 4.png-290810013ad37018643ae3bef23de34e.ctex"
|
||||
path="res://.godot/imported/Layer 4.png-b056eb2e1553caa85cdf5fda5d0acad6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 4.png"
|
||||
dest_files=["res://.godot/imported/Layer 4.png-290810013ad37018643ae3bef23de34e.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 4.png"
|
||||
dest_files=["res://.godot/imported/Layer 4.png-b056eb2e1553caa85cdf5fda5d0acad6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b76dai3g8nh2a"
|
||||
path="res://.godot/imported/Layer 5.png-5f868ec0ad17dd70a5de6e9df0a485da.ctex"
|
||||
path="res://.godot/imported/Layer 5.png-4a036339615aeede1b6d2302a98cbbce.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 5.png"
|
||||
dest_files=["res://.godot/imported/Layer 5.png-5f868ec0ad17dd70a5de6e9df0a485da.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 5.png"
|
||||
dest_files=["res://.godot/imported/Layer 5.png-4a036339615aeede1b6d2302a98cbbce.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://wqec5p5xahew"
|
||||
path="res://.godot/imported/Layer 6.png-fa02975097a390dea36b1907030cdf4a.ctex"
|
||||
path="res://.godot/imported/Layer 6.png-7d05fcaf82da03a919d93056ca38350c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 6.png"
|
||||
dest_files=["res://.godot/imported/Layer 6.png-fa02975097a390dea36b1907030cdf4a.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 6.png"
|
||||
dest_files=["res://.godot/imported/Layer 6.png-7d05fcaf82da03a919d93056ca38350c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://sl7fel3muw2y"
|
||||
path="res://.godot/imported/Layer 7.png-6025f3f3cb810208b467730a0ff13479.ctex"
|
||||
path="res://.godot/imported/Layer 7.png-2afc78e3f52e46f06d927a16a4ec0cb8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/enemy/enemy_types/1. sproingy/animations/IDLE_WALK_FRONT/Layer 7.png"
|
||||
dest_files=["res://.godot/imported/Layer 7.png-6025f3f3cb810208b467730a0ff13479.ctex"]
|
||||
source_file="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_FRONT/Layer 7.png"
|
||||
dest_files=["res://.godot/imported/Layer 7.png-2afc78e3f52e46f06d927a16a4ec0cb8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||