diff --git a/src/app/state/AppLogic.g.puml b/src/app/state/AppLogic.g.puml index 4222c7c3..885c336b 100644 --- a/src/app/state/AppLogic.g.puml +++ b/src/app/state/AppLogic.g.puml @@ -1,9 +1,9 @@ @startuml AppLogic state "AppLogic State" as GameJamDungeon_AppLogic_State { + state "SetupGameScene" as GameJamDungeon_AppLogic_State_SetupGameScene + state "InGame" as GameJamDungeon_AppLogic_State_InGame state "LoadingScreen" as GameJamDungeon_AppLogic_State_LoadingScreen state "MainMenu" as GameJamDungeon_AppLogic_State_MainMenu - state "InGame" as GameJamDungeon_AppLogic_State_InGame - state "SetupGameScene" as GameJamDungeon_AppLogic_State_SetupGameScene } GameJamDungeon_AppLogic_State_InGame --> GameJamDungeon_AppLogic_State_MainMenu : GameOver diff --git a/src/audio/state/states/InGameAudioLogic.State.Enabled.cs b/src/audio/state/states/InGameAudioLogic.State.Enabled.cs index d8afe928..28c8cf68 100644 --- a/src/audio/state/states/InGameAudioLogic.State.Enabled.cs +++ b/src/audio/state/states/InGameAudioLogic.State.Enabled.cs @@ -19,7 +19,9 @@ public partial class InGameAudioLogic gameEventDepot.DungeonAThemeAreaEntered += OnDungeonAThemeEntered; gameEventDepot.MenuScrolled += OnMenuScrolled; gameEventDepot.MenuBackedOut += OnMenuBackedOut; - gameEventDepot.EquippedItem += OnEquippedItem; + gameEventDepot.EquippedWeapon += OnEquippedItem; + gameEventDepot.EquippedArmor += OnEquippedItem; + gameEventDepot.EquippedAccessory += OnEquippedItem; gameEventDepot.InventorySorted += OnInventorySorted; gameEventDepot.HealingItemConsumed += OnHealingItemConsumed; gameEventDepot.RestorativePickedUp += OnRestorativePickedUp; @@ -32,7 +34,9 @@ public partial class InGameAudioLogic gameEventDepot.DungeonAThemeAreaEntered -= OnDungeonAThemeEntered; gameEventDepot.MenuScrolled -= OnMenuScrolled; gameEventDepot.MenuBackedOut -= OnMenuBackedOut; - gameEventDepot.EquippedItem -= OnEquippedItem; + gameEventDepot.EquippedWeapon -= OnEquippedItem; + gameEventDepot.EquippedArmor -= OnEquippedItem; + gameEventDepot.EquippedAccessory -= OnEquippedItem; gameEventDepot.InventorySorted -= OnInventorySorted; gameEventDepot.TeleportEntered -= OnTeleportEntered; }); @@ -46,7 +50,7 @@ public partial class InGameAudioLogic private void OnInventorySorted() => Output(new Output.PlayInventorySortedSound()); - private void OnEquippedItem() => Output(new Output.PlayEquipSound()); + private void OnEquippedItem(IEquipableItem equipableItem) => Output(new Output.PlayEquipSound()); private void OnOverworldEntered() => Output(new Output.PlayOverworldMusic()); diff --git a/src/enemy/state/EnemyLogic.g.puml b/src/enemy/state/EnemyLogic.g.puml index 641dc807..6e1a2896 100644 --- a/src/enemy/state/EnemyLogic.g.puml +++ b/src/enemy/state/EnemyLogic.g.puml @@ -1,10 +1,10 @@ @startuml EnemyLogic state "EnemyLogic State" as GameJamDungeon_EnemyLogic_State { - state "Defeated" as GameJamDungeon_EnemyLogic_State_Defeated state "Alive" as GameJamDungeon_EnemyLogic_State_Alive { - state "Idle" as GameJamDungeon_EnemyLogic_State_Idle state "FollowPlayer" as GameJamDungeon_EnemyLogic_State_FollowPlayer + state "Idle" as GameJamDungeon_EnemyLogic_State_Idle } + state "Defeated" as GameJamDungeon_EnemyLogic_State_Defeated } GameJamDungeon_EnemyLogic_State_Alive --> GameJamDungeon_EnemyLogic_State_Alive : AttackTimer diff --git a/src/game/Game.cs b/src/game/Game.cs index 7141fd9d..749e4050 100644 --- a/src/game/Game.cs +++ b/src/game/Game.cs @@ -2,17 +2,17 @@ namespace GameJamDungeon; using Chickensoft.AutoInject; -using Chickensoft.Collections; using Chickensoft.GodotNodeInterfaces; using Chickensoft.Introspection; using Godot; -using System; public interface IGame : IProvide, IProvide, IProvide, INode3D { event Game.StatRaisedAlertEventHandler StatRaisedAlert; public IPlayer Player { get; } + + public void DropItem(IInventoryItem item); } [Meta(typeof(IAutoNode))] @@ -130,12 +130,19 @@ public partial class Game : Node3D, IGame Player.MinimapButtonHeld += Player_MinimapButtonHeld; Player.PauseButtonPressed += Player_PauseButtonPressed; - GameRepo.PlayerData.Inventory.EquippedItem += Inventory_EquippedItem; - GameEventDepot.EnemyDefeated += OnEnemyDefeated; GameEventDepot.RestorativePickedUp += GameEventDepot_RestorativePickedUp; } + public void DropItem(IInventoryItem item) + { + var droppedScene = GD.Load("res://src/items/dropped/DroppedItem.tscn"); + var dropped = droppedScene.Instantiate(); + dropped.Item = item; + AddChild(dropped); + dropped.Drop(); + } + private void OnEnemyDefeated(Vector3 vector, EnemyStatResource resource) { var restorativeScene = GD.Load("res://src/items/restorative/Restorative.tscn"); @@ -144,11 +151,6 @@ public partial class Game : Node3D, IGame restorative.GlobalPosition = vector; } - private void Inventory_EquippedItem() - { - GameEventDepot.OnEquippedItem(); - } - private void UseTeleportPrompt_CloseTeleportPrompt() { GameLogic.Input(new GameLogic.Input.HideAskForTeleport()); diff --git a/src/game/GameEventDepot.cs b/src/game/GameEventDepot.cs index fb245161..7383c23d 100644 --- a/src/game/GameEventDepot.cs +++ b/src/game/GameEventDepot.cs @@ -26,11 +26,23 @@ namespace GameJamDungeon event Action? MenuBackedOut; public void OnMenuBackedOut(); - event Action? EquippedItem; - public void OnEquippedItem(); + event Action? EquippedWeapon; + public void OnEquippedWeapon(Weapon equippedWeapon); - event Action? UnequippedItem; - public void OnUnequippedItem(); + event Action? UnequippedWeapon; + public void OnUnequippedWeapon(); + + event Action? EquippedArmor; + public void OnEquippedArmor(Armor equippedArmor); + + event Action? UnequippedArmor; + public void OnUnequippedArmor(); + + event Action? EquippedAccessory; + public void OnEquippedAccessory(Accessory equippedAccessory); + + event Action? UnequippedAccessory; + public void OnUnequippedAccessory(); event Action? InventorySorted; public void OnInventorySorted(); @@ -57,8 +69,12 @@ namespace GameJamDungeon public event Action? MenuScrolled; public event Action? MenuBackedOut; - public event Action? EquippedItem; - public event Action? UnequippedItem; + public event Action? EquippedWeapon; + public event Action? UnequippedWeapon; + public event Action? EquippedArmor; + public event Action? UnequippedArmor; + public event Action? EquippedAccessory; + public event Action? UnequippedAccessory; public event Action? InventorySorted; public event Action? HealingItemConsumed; public event Action? RestorativePickedUp; @@ -74,8 +90,16 @@ namespace GameJamDungeon public void OnMenuScrolled() => MenuScrolled?.Invoke(); public void OnMenuBackedOut() => MenuBackedOut?.Invoke(); - public void OnEquippedItem() => EquippedItem?.Invoke(); - public void OnUnequippedItem() => UnequippedItem?.Invoke(); + + public void OnEquippedWeapon(Weapon equippedWeapon) => EquippedWeapon?.Invoke(equippedWeapon); + public void OnUnequippedWeapon() => UnequippedWeapon?.Invoke(); + + public void OnEquippedArmor(Armor equippedArmor) => EquippedArmor?.Invoke(equippedArmor); + public void OnUnequippedArmor() => UnequippedArmor?.Invoke(); + + public void OnEquippedAccessory(Accessory equippedAccessory) => EquippedAccessory?.Invoke(equippedAccessory); + public void OnUnequippedAccessory() => UnequippedAccessory?.Invoke(); + public void OnInventorySorted() => InventorySorted?.Invoke(); public void OnHealingItemConsumed(ConsumableItemStats item) => HealingItemConsumed?.Invoke(item); public void OnRestorativePickedUp(Restorative restorative) => RestorativePickedUp?.Invoke(restorative); diff --git a/src/game/GameLogic.g.puml b/src/game/GameLogic.g.puml index 7fe45d0f..1b460d73 100644 --- a/src/game/GameLogic.g.puml +++ b/src/game/GameLogic.g.puml @@ -1,15 +1,15 @@ @startuml GameLogic state "GameLogic State" as GameJamDungeon_GameLogic_State { - state "Quit" as GameJamDungeon_GameLogic_State_Quit + state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted state "Playing" as GameJamDungeon_GameLogic_State_Playing { - state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen - state "Resuming" as GameJamDungeon_GameLogic_State_Resuming state "AskForTeleport" as GameJamDungeon_GameLogic_State_AskForTeleport - state "Paused" as GameJamDungeon_GameLogic_State_Paused state "FloorClearedDecisionState" as GameJamDungeon_GameLogic_State_FloorClearedDecisionState state "InventoryOpened" as GameJamDungeon_GameLogic_State_InventoryOpened + state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen + state "Paused" as GameJamDungeon_GameLogic_State_Paused + state "Resuming" as GameJamDungeon_GameLogic_State_Resuming } - state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted + state "Quit" as GameJamDungeon_GameLogic_State_Quit } GameJamDungeon_GameLogic_State_AskForTeleport --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : FloorExitReached diff --git a/src/inventory_menu/InventoryMenu.cs b/src/inventory_menu/InventoryMenu.cs index a8b56e7a..1b48ef7f 100644 --- a/src/inventory_menu/InventoryMenu.cs +++ b/src/inventory_menu/InventoryMenu.cs @@ -262,7 +262,7 @@ public partial class InventoryMenu : Control, IInventoryMenu var currentItem = ItemSlots.ElementAt(_currentIndex).Item; - if (currentItem is IEquipable equipable) + if (currentItem is IEquipableItem equipable) { var isEquipped = GameRepo.PlayerData.Inventory.IsEquipped(equipable); UseButton.Text = isEquipped ? "Unequip" : "Equip"; @@ -335,14 +335,14 @@ public partial class InventoryMenu : Control, IInventoryMenu itemSlot.Item = item; ItemsPage.AddChildEx(itemSlot); - if (itemSlot.Item is IEquipable equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable)) + if (itemSlot.Item is IEquipableItem equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable)) itemSlot.SetEquippedItemStyle(); } if (ItemSlots.Any()) { ItemSlots.ElementAt(_currentIndex).SetSelectedItemStyle(); - if (ItemSlots.ElementAt(_currentIndex).Item is IEquipable equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable)) + if (ItemSlots.ElementAt(_currentIndex).Item is IEquipableItem equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable)) ItemSlots.ElementAt(_currentIndex).SetEquippedSelectedItemStyle(); } } @@ -351,7 +351,7 @@ public partial class InventoryMenu : Control, IInventoryMenu { await ToSignal(GetTree().CreateTimer(0.1f), "timeout"); itemSlot.SetItemStyle(); - if (itemSlot.Item is IEquipable equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable)) + if (itemSlot.Item is IEquipableItem equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable)) itemSlot.SetEquippedItemStyle(); } @@ -366,7 +366,7 @@ public partial class InventoryMenu : Control, IInventoryMenu private async Task EquipOrUnequipItem() { var itemSlot = ItemSlots[_currentIndex]; - if (itemSlot.Item is IEquipable equipableItem) + if (itemSlot.Item is IEquipableItem equipableItem) { if (GameRepo.PlayerData.Inventory.IsEquipped(equipableItem)) { @@ -392,12 +392,11 @@ public partial class InventoryMenu : Control, IInventoryMenu private async void UseButtonPressed() { var currentItem = ItemSlots[_currentIndex].Item; - if (currentItem is IEquipable) + if (currentItem is IEquipableItem) await EquipOrUnequipItem(); - else if (currentItem is ConsumableItem consumable) + else if (currentItem is IUsableItem usable) { - GameRepo.PlayerData.Inventory.Use(consumable); - GameEventDepot.OnHealingItemConsumed(consumable.ConsumableItemInfo); + usable.Use(); if (_currentIndex >= ItemSlots.Length - 1) _currentIndex--; if (_currentIndex <= 0) @@ -409,17 +408,23 @@ public partial class InventoryMenu : Control, IInventoryMenu { var currentItem = ItemSlots[_currentIndex].Item; - if (_currentIndex >= ItemSlots.Length - 1) - _currentIndex--; - if (_currentIndex <= 0) - _currentIndex = 0; - EmitSignal(SignalName.ClosedMenu); - GameRepo.PlayerData.Inventory.Throw(currentItem); + if (currentItem is IThrowableItem throwable) + { + throwable.Throw(); + + if (_currentIndex >= ItemSlots.Length - 1) + _currentIndex--; + if (_currentIndex <= 0) + _currentIndex = 0; + + EmitSignal(SignalName.ClosedMenu); + } } private async void DropButtonPressed() { var currentItem = ItemSlots[_currentIndex].Item; + Game.DropItem(currentItem); if (_currentIndex >= ItemSlots.Length - 1) _currentIndex--; @@ -427,7 +432,6 @@ public partial class InventoryMenu : Control, IInventoryMenu _currentIndex = 0; EmitSignal(SignalName.ClosedMenu); - GameRepo.PlayerData.Inventory.Drop(currentItem); } private enum InventoryPageNumber diff --git a/src/inventory_menu/ItemSlot.cs b/src/inventory_menu/ItemSlot.cs index 61c93791..6f18eb9f 100644 --- a/src/inventory_menu/ItemSlot.cs +++ b/src/inventory_menu/ItemSlot.cs @@ -90,7 +90,7 @@ public partial class ItemSlot : HBoxContainer, IItemSlot } public void SetSelectedItemStyle() { - if (Item is IEquipable equipableItem && GameRepo.PlayerData.Inventory.IsEquipped(equipableItem)) + if (Item is IEquipableItem equipableItem && GameRepo.PlayerData.Inventory.IsEquipped(equipableItem)) { ItemName.LabelSettings = SelectedEquippedItemFont; //EquipBonus.LabelSettings = EquippedItemFont; diff --git a/src/items/IEquipable.cs b/src/items/IEquipable.cs deleted file mode 100644 index 9276fb3d..00000000 --- a/src/items/IEquipable.cs +++ /dev/null @@ -1,4 +0,0 @@ -namespace GameJamDungeon -{ - public interface IEquipable; -} diff --git a/src/items/IEquipableItem.cs b/src/items/IEquipableItem.cs new file mode 100644 index 00000000..0a0fcafd --- /dev/null +++ b/src/items/IEquipableItem.cs @@ -0,0 +1,9 @@ +namespace GameJamDungeon +{ + public interface IEquipableItem : IInventoryItem + { + public void Equip(); + + public void Unequip(); + } +} diff --git a/src/items/Inventory.cs b/src/items/Inventory.cs index 5824734e..5128a4c6 100644 --- a/src/items/Inventory.cs +++ b/src/items/Inventory.cs @@ -21,17 +21,11 @@ public interface IInventory : INode public void Remove(IInventoryItem inventoryItem); - public void Equip(IEquipable equipable); + public void Equip(IEquipableItem equipable); - public void Unequip(IEquipable equipable); + public void Unequip(IEquipableItem equipable); - public bool IsEquipped(IEquipable equipable); - - public void Use(IInventoryItem inventoryItem); - - public void Throw(IInventoryItem inventoryItem); - - public void Drop(IInventoryItem inventoryItem); + public bool IsEquipped(IEquipableItem equipable); public void Sort(); @@ -40,8 +34,6 @@ public interface IInventory : INode event Inventory.AccessoryUnequippedEventHandler AccessoryUnequipped; event Inventory.RaiseStatRequestEventHandler RaiseStatRequest; - - event Inventory.EquippedItemEventHandler EquippedItem; } public partial class Inventory : Node, IInventory @@ -55,8 +47,6 @@ public partial class Inventory : Node, IInventory public delegate void AccessoryUnequippedEventHandler(AccessoryStats unequippedAccessory); [Signal] public delegate void RaiseStatRequestEventHandler(ConsumableItemStats consumableItemStats); - [Signal] - public delegate void EquippedItemEventHandler(); public Inventory() { @@ -88,7 +78,7 @@ public partial class Inventory : Node, IInventory public void Remove(IInventoryItem inventoryItem) => Items.Remove(inventoryItem); - public void Equip(IEquipable equipable) + public void Equip(IEquipableItem equipable) { if (equipable is Weapon weapon) _equippedWeapon.OnNext(weapon); @@ -98,11 +88,9 @@ public partial class Inventory : Node, IInventory _equippedAccessory.OnNext(accessory); else throw new NotImplementedException("Item type is not supported."); - - EmitSignal(SignalName.EquippedItem); } - public void Unequip(IEquipable equipable) + public void Unequip(IEquipableItem equipable) { if (equipable is Weapon weapon) { @@ -121,7 +109,7 @@ public partial class Inventory : Node, IInventory throw new NotImplementedException("Item type is not supported."); } - public bool IsEquipped(IEquipable equipable) + public bool IsEquipped(IEquipableItem equipable) { if (equipable is Weapon weapon) return _equippedWeapon.Value.Equals(weapon); @@ -133,27 +121,6 @@ public partial class Inventory : Node, IInventory throw new NotImplementedException("Item type is not supported."); } - public void Use(IInventoryItem item) - { - if (item is ConsumableItem consumableItem) - { - EmitSignal(SignalName.RaiseStatRequest, consumableItem.ConsumableItemInfo); - Remove(consumableItem); - } - } - - public void Throw(IInventoryItem item) - { - if (item is ThrowableItem throwable) - throwable.Throw(throwable.ThrowableItemInfo); - //Remove(item); - } - - public void Drop(IInventoryItem item) - { - Remove(item); - } - public void Sort() { var equippedWeapon = Items.OfType().Where(IsEquipped); diff --git a/src/items/InventoryItem.cs b/src/items/InventoryItem.cs index a3ae7157..686a726d 100644 --- a/src/items/InventoryItem.cs +++ b/src/items/InventoryItem.cs @@ -1,4 +1,5 @@ using Chickensoft.GodotNodeInterfaces; +using Godot; using System; namespace GameJamDungeon @@ -6,8 +7,17 @@ namespace GameJamDungeon public interface IInventoryItem : INode3D { public Guid ID { get; } - public IGameRepo GameRepo { get; } public InventoryItemStats Info { get; } } + + public interface IUsableItem : IInventoryItem + { + public void Use(); + } + + public interface IThrowableItem : IInventoryItem + { + public void Throw(); + } } diff --git a/src/items/InventoryItemStats.cs b/src/items/InventoryItemStats.cs index b15fe939..8b59fe02 100644 --- a/src/items/InventoryItemStats.cs +++ b/src/items/InventoryItemStats.cs @@ -13,4 +13,6 @@ public partial class InventoryItemStats : Resource [Export(PropertyHint.Range, "0, 1, 0.01")] public float SpawnRate { get; set; } = 0.5f; + + public float ThrowSpeed { get; set; } = 7.0f; } \ No newline at end of file diff --git a/src/items/accessory/Accessory.cs b/src/items/accessory/Accessory.cs index 05ed6387..9ae4e811 100644 --- a/src/items/accessory/Accessory.cs +++ b/src/items/accessory/Accessory.cs @@ -3,16 +3,16 @@ using Chickensoft.Introspection; using GameJamDungeon; using Godot; using System; -using System.Collections.Generic; -using System.Linq; [Meta(typeof(IAutoNode))] -public partial class Accessory : Node3D, IInventoryItem, IEquipable +public partial class Accessory : Node3D, IEquipableItem, IThrowableItem { public override void _Notification(int what) => this.Notify(what); [Dependency] public IGameRepo GameRepo => this.DependOn(); + [Dependency] public IGameEventDepot GameEventDepot => this.DependOn(); + public InventoryItemStats Info => AccessoryStats; [Export] @@ -30,12 +30,17 @@ public partial class Accessory : Node3D, IInventoryItem, IEquipable Pickup.BodyEntered += OnEntered; } - public void Throw() + public void Equip() { - GameRepo.PlayerData.Inventory.Remove(this); + GameEventDepot.OnEquippedAccessory(this); } - public void Drop() + public void Unequip() + { + GameEventDepot.OnUnequippedAccessory(); + } + + public void Throw() { GameRepo.PlayerData.Inventory.Remove(this); } diff --git a/src/items/armor/Armor.cs b/src/items/armor/Armor.cs index be73a940..eacc9c0b 100644 --- a/src/items/armor/Armor.cs +++ b/src/items/armor/Armor.cs @@ -5,12 +5,14 @@ using Godot; using System; [Meta(typeof(IAutoNode))] -public partial class Armor : Node3D, IInventoryItem, IEquipable +public partial class Armor : Node3D, IEquipableItem, IThrowableItem { public override void _Notification(int what) => this.Notify(what); [Dependency] public IGameRepo GameRepo => this.DependOn(); + [Dependency] public IGameEventDepot GameEventDepot => this.DependOn(); + public InventoryItemStats Info => ArmorStats; [Export] @@ -28,6 +30,16 @@ public partial class Armor : Node3D, IInventoryItem, IEquipable Pickup.BodyEntered += OnEntered; } + public void Equip() + { + GameEventDepot.OnEquippedArmor(this); + } + + public void Unequip() + { + GameEventDepot.OnUnequippedArmor(); + } + public void Throw() { GameRepo.PlayerData.Inventory.Remove(this); diff --git a/src/items/consumable/ConsumableItem.cs b/src/items/consumable/ConsumableItem.cs index dea5fd22..cf22e865 100644 --- a/src/items/consumable/ConsumableItem.cs +++ b/src/items/consumable/ConsumableItem.cs @@ -5,11 +5,13 @@ using Godot; using System; [Meta(typeof(IAutoNode))] -public partial class ConsumableItem : Node3D, IInventoryItem +public partial class ConsumableItem : Node3D, IUsableItem, IThrowableItem { public override void _Notification(int what) => this.Notify(what); + [Dependency] public IGame Game => this.DependOn(); [Dependency] public IGameRepo GameRepo => this.DependOn(); + [Dependency] public IGameEventDepot GameEventDepot => this.DependOn(); public InventoryItemStats Info => ConsumableItemInfo; @@ -22,6 +24,21 @@ public partial class ConsumableItem : Node3D, IInventoryItem public Guid ID => Guid.NewGuid(); + public void Use() + { + GameEventDepot.OnHealingItemConsumed(ConsumableItemInfo); + } + + public void Throw() + { + var throwableScene = GD.Load("res://src/items/thrown/ThrownItem.tscn"); + var throwable = throwableScene.Instantiate(); + throwable.ThrownItemStats = ConsumableItemInfo; + Game.AddChild(throwable); + throwable.Throw(); + GameRepo.PlayerData.Inventory.Remove(this); + } + public void OnReady() { Sprite.Texture = ConsumableItemInfo.Texture; diff --git a/src/items/dropped/DroppedItem.cs b/src/items/dropped/DroppedItem.cs new file mode 100644 index 00000000..c905233e --- /dev/null +++ b/src/items/dropped/DroppedItem.cs @@ -0,0 +1,45 @@ +using Chickensoft.AutoInject; +using Chickensoft.Introspection; +using Godot; + +namespace GameJamDungeon +{ + [Meta(typeof(IAutoNode))] + public partial class DroppedItem : RigidBody3D + { + public override void _Notification(int what) => this.Notify(what); + + [Dependency] public IGameRepo GameRepo => this.DependOn(); + + [Dependency] public IGame Game => this.DependOn(); + + [Node] public Sprite3D Sprite { get; set; } = default!; + + public IInventoryItem Item { get; set; } + + public void OnResolved() + { + BodyEntered += DroppedItem_BodyEntered; + GlobalPosition = Game.Player.GlobalPosition + Vector3.Up; + Sprite.Texture = Item.Info.Texture; + AddCollisionExceptionWith((Node)Game.Player); + } + + public async void Drop() + { + ApplyCentralImpulse(-Game.Player.GlobalBasis.Z.Normalized() * 5.0f); + await ToSignal(GetTree().CreateTimer(1.5), "timeout"); + RemoveCollisionExceptionWith((Node)Game.Player); + } + + private void DroppedItem_BodyEntered(Node body) + { + if (body is IPlayer player) + { + var isAdded = GameRepo.PlayerData.Inventory.TryAdd(Item); + if (isAdded) + QueueFree(); + } + } + } +} diff --git a/src/items/dropped/DroppedItem.tscn b/src/items/dropped/DroppedItem.tscn new file mode 100644 index 00000000..102ef949 --- /dev/null +++ b/src/items/dropped/DroppedItem.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=4 format=3 uid="uid://brq11lswpqxei"] + +[ext_resource type="Script" path="res://src/items/dropped/DroppedItem.cs" id="1_67jk4"] +[ext_resource type="Texture2D" uid="uid://mi70lolgtf3n" path="res://src/items/throwable/textures/GEOMANCER-DICE.png" id="2_cu1v3"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_28r8g"] + +[node name="DroppedItem" type="RigidBody3D"] +collision_layer = 4 +axis_lock_angular_x = true +axis_lock_angular_y = true +axis_lock_angular_z = true +mass = 10.0 +contact_monitor = true +max_contacts_reported = 50 +script = ExtResource("1_67jk4") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("SphereShape3D_28r8g") + +[node name="Sprite" type="Sprite3D" parent="."] +unique_name_in_owner = true +pixel_size = 0.0005 +billboard = 2 +texture = ExtResource("2_cu1v3") diff --git a/src/items/throwable/ThrowableItem.cs b/src/items/throwable/ThrowableItem.cs index fd9b2a72..6450abd7 100644 --- a/src/items/throwable/ThrowableItem.cs +++ b/src/items/throwable/ThrowableItem.cs @@ -5,7 +5,7 @@ using Godot; using System; [Meta(typeof(IAutoNode))] -public partial class ThrowableItem : Node3D, IInventoryItem +public partial class ThrowableItem : Node3D, IThrowableItem { public override void _Notification(int what) => this.Notify(what); @@ -32,16 +32,13 @@ public partial class ThrowableItem : Node3D, IInventoryItem Pickup.BodyEntered += OnEntered; } - public void Throw(ThrowableItemStats throwableItemStats) + public void Throw() { - var throwableScene = GD.Load("res://src/items/thrown/ThrownGeometricDice.tscn"); + var throwableScene = GD.Load("res://src/items/thrown/ThrownItem.tscn"); var throwable = throwableScene.Instantiate(); + throwable.ThrownItemStats = ThrowableItemInfo; Game.AddChild(throwable); - throwable.Throw(throwableItemStats); - } - - public void Drop() - { + throwable.Throw(); GameRepo.PlayerData.Inventory.Remove(this); } diff --git a/src/items/thrown/ThrownGeometricDice.tscn b/src/items/thrown/ThrownGeometricDice.tscn deleted file mode 100644 index bb6e4924..00000000 --- a/src/items/thrown/ThrownGeometricDice.tscn +++ /dev/null @@ -1,42 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://b1twcuneob5kt"] - -[ext_resource type="Script" path="res://src/items/thrown/ThrownItem.cs" id="1_ig3yn"] -[ext_resource type="Texture2D" uid="uid://mi70lolgtf3n" path="res://src/items/throwable/textures/GEOMANCER-DICE.png" id="2_ia1qk"] - -[sub_resource type="BoxShape3D" id="BoxShape3D_s4ym5"] -size = Vector3(0.288967, 0.302734, 0.28064) - -[sub_resource type="ViewportTexture" id="ViewportTexture_vebu3"] -viewport_path = NodePath("Sprite3D/SubViewport") - -[node name="Hitbox" type="RigidBody3D"] -collision_layer = 17 -collision_mask = 16 -mass = 0.001 -gravity_scale = 0.0 -contact_monitor = true -max_contacts_reported = 1 -script = ExtResource("1_ig3yn") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00739601, 0.0986328, 0.137878) -shape = SubResource("BoxShape3D_s4ym5") - -[node name="Sprite3D" type="Sprite3D" parent="."] -billboard = 2 -double_sided = false -texture = SubResource("ViewportTexture_vebu3") - -[node name="SubViewport" type="SubViewport" parent="Sprite3D"] -disable_3d = true -transparent_bg = true -handle_input_locally = false -size = Vector2i(100, 100) - -[node name="Sprite" type="Sprite2D" parent="Sprite3D/SubViewport"] -unique_name_in_owner = true -z_index = 100 -scale = Vector2(0.1, 0.1) -texture = ExtResource("2_ia1qk") -centered = false -flip_h = true diff --git a/src/items/thrown/ThrownItem.cs b/src/items/thrown/ThrownItem.cs index 3c7cfe79..a8477258 100644 --- a/src/items/thrown/ThrownItem.cs +++ b/src/items/thrown/ThrownItem.cs @@ -10,27 +10,55 @@ public partial class ThrownItem : RigidBody3D [Dependency] public IGame Game => this.DependOn(); - [Node] public Sprite2D Sprite { get; set; } = default!; + public InventoryItemStats ThrownItemStats; - private int _damage = 0; + [Node] public Sprite3D Sprite { get; set; } = default!; public void OnResolved() { BodyEntered += ThrownItem_BodyEntered; GlobalPosition = Game.Player.GlobalPosition + Vector3.Up; + Sprite.Texture = ThrownItemStats.Texture; AddCollisionExceptionWith((Node)Game.Player); } private void ThrownItem_BodyEntered(Node body) { if (body is IEnemy enemy) - enemy.EnemyLogic.Input(new EnemyLogic.Input.HitByPlayer(_damage)); + { + if (ThrownItemStats is ThrowableItemStats throwableItemStats) + enemy.EnemyLogic.Input(new EnemyLogic.Input.HitByPlayer(throwableItemStats.Damage)); + } QueueFree(); } - public void Throw(ThrowableItemStats throwableItemStats) + public void Throw() { - _damage = throwableItemStats.Damage; - ApplyCentralImpulse(Game.Player.GlobalBasis.Z.Normalized() * -20.0f); + ThrowInternal((dynamic)ThrownItemStats); + } + + private void ThrowInternal(WeaponStats weaponStats) + { + ApplyCentralImpulse(-Game.Player.GlobalBasis.Z.Normalized() * 5.0f); + } + + private void ThrowInternal(ArmorStats armorStats) + { + ApplyCentralImpulse(-Game.Player.GlobalBasis.Z.Normalized() * 5.0f); + } + + private void ThrowInternal(AccessoryStats accessoryStats) + { + ApplyCentralImpulse(-Game.Player.GlobalBasis.Z.Normalized() * 5.0f); + } + + private void ThrowInternal(ConsumableItemStats consumableItemStats) + { + ApplyCentralImpulse(-Game.Player.GlobalBasis.Z.Normalized() * 5.0f); + } + + private void ThrowInternal(ThrowableItemStats throwableItemStats) + { + ApplyCentralImpulse(-Game.Player.GlobalBasis.Z.Normalized() * 20.0f); } } diff --git a/src/items/thrown/ThrownItem.tscn b/src/items/thrown/ThrownItem.tscn new file mode 100644 index 00000000..d8d779c5 --- /dev/null +++ b/src/items/thrown/ThrownItem.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=4 format=3 uid="uid://b1twcuneob5kt"] + +[ext_resource type="Script" path="res://src/items/thrown/ThrownItem.cs" id="1_wlplc"] +[ext_resource type="Texture2D" uid="uid://mi70lolgtf3n" path="res://src/items/throwable/textures/GEOMANCER-DICE.png" id="2_alcjn"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_s4ym5"] +size = Vector3(0.288967, 0.302734, 0.28064) + +[node name="Hitbox" type="RigidBody3D"] +collision_layer = 17 +collision_mask = 16 +mass = 0.001 +gravity_scale = 0.0 +contact_monitor = true +max_contacts_reported = 1 +script = ExtResource("1_wlplc") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00739601, 0.0986328, 0.137878) +shape = SubResource("BoxShape3D_s4ym5") + +[node name="Sprite" type="Sprite3D" parent="."] +unique_name_in_owner = true +pixel_size = 0.001 +billboard = 2 +texture = ExtResource("2_alcjn") diff --git a/src/items/weapons/Weapon.cs b/src/items/weapons/Weapon.cs index 46f30150..b370cee8 100644 --- a/src/items/weapons/Weapon.cs +++ b/src/items/weapons/Weapon.cs @@ -5,7 +5,7 @@ using Godot; using System; [Meta(typeof(IAutoNode))] -public partial class Weapon : Node3D, IInventoryItem, IEquipable +public partial class Weapon : Node3D, IInventoryItem, IEquipableItem { public override void _Notification(int what) => this.Notify(what); @@ -13,6 +13,9 @@ public partial class Weapon : Node3D, IInventoryItem, IEquipable public InventoryItemStats Info => WeaponStats; + [Signal] + public delegate void EquippedItemEventHandler(Weapon equippedWeapon); + [Export] public WeaponStats WeaponStats { get; set; } = new WeaponStats(); @@ -28,6 +31,16 @@ public partial class Weapon : Node3D, IInventoryItem, IEquipable Pickup.BodyEntered += OnEntered; } + public void Equip() + { + EmitSignal(SignalName.EquippedItem, this); + } + + public void Unequip() + { + + } + public void Throw() { GameRepo.PlayerData.Inventory.Remove(this); diff --git a/src/map/dungeon/scenes/BossRoom.tscn b/src/map/dungeon/scenes/BossRoom.tscn index c1da4b43..ab5f3cc3 100644 --- a/src/map/dungeon/scenes/BossRoom.tscn +++ b/src/map/dungeon/scenes/BossRoom.tscn @@ -1511,98 +1511,6 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_233wd") -[sub_resource type="Animation" id="Animation_7vf6o"] -resource_name = "2Action_006" -length = 4.29167 -tracks/0/type = "rotation_3d" -tracks/0/imported = true -tracks/0/enabled = true -tracks/0/path = NodePath("2_001") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = PackedFloat32Array(0, 1, -1.38049e-08, -0.315819, 0.948819, 4.14742e-08, 0.0333333, 1, -1.37797e-08, -0.315244, 0.949011, 4.14826e-08, 0.0666667, 1, -1.37179e-08, -0.313828, 0.94948, 4.15031e-08, 0.1, 1, -1.36202e-08, -0.311595, 0.950215, 4.15352e-08, 0.133333, 1, -1.34878e-08, -0.308565, 0.951203, 4.15784e-08, 0.166667, 1, -1.33214e-08, -0.304759, 0.952429, 4.1632e-08, 0.2, 1, -1.31118e-08, -0.299964, 0.953951, 4.16985e-08, 0.233333, 1, -1.28711e-08, -0.294457, 0.955665, 4.17734e-08, 0.266667, 1, -1.26001e-08, -0.288257, 0.957553, 4.1856e-08, 0.3, 1, -1.22997e-08, -0.281385, 0.959595, 4.19452e-08, 0.333333, 1, -1.19708e-08, -0.27386, 0.96177, 4.20403e-08, 0.366667, 1, -1.16059e-08, -0.265513, 0.964107, 4.21425e-08, 0.4, 1, -1.12153e-08, -0.256576, 0.966524, 4.22481e-08, 0.433333, 1, -1.07997e-08, -0.247069, 0.968998, 4.23562e-08, 0.466667, 1, -1.03601e-08, -0.237013, 0.971507, 4.24659e-08, 0.5, 1, -9.89749e-09, -0.226428, 0.974028, 4.25761e-08, 0.533333, 1, -9.40638e-09, -0.215193, 0.976572, 4.26873e-08, 0.566667, 1, -8.8951e-09, -0.203496, 0.979076, 4.27968e-08, 0.6, 1, -8.36461e-09, -0.19136, 0.98152, 4.29036e-08, 0.633333, 1, -7.81593e-09, -0.178807, 0.983884, 4.30069e-08, 0.666667, 1, -7.25007e-09, -0.165862, 0.986149, 4.31059e-08, 0.7, 1, -6.66386e-09, -0.152451, 0.988311, 4.32004e-08, 0.733333, 1, -6.06365e-09, -0.13872, 0.990332, 4.32888e-08, 0.766667, 1, -5.45054e-09, -0.124694, 0.992195, 4.33702e-08, 0.8, 1, -4.82566e-09, -0.110398, 0.993887, 4.34442e-08, 0.833333, 1, -4.19016e-09, -0.0958597, 0.995395, 4.35101e-08, 0.9, 1, -2.88874e-09, -0.0660866, 0.997814, 4.36158e-08, 1.16667, 1, 2.44911e-09, 0.0560291, 0.998429, 4.36427e-08, 1.2, 1, 3.10603e-09, 0.0710576, 0.997472, 4.36009e-08, 1.23333, 1, 3.75582e-09, 0.0859231, 0.996302, 4.35497e-08, 1.26667, 1, 4.39729e-09, 0.100598, 0.994927, 4.34896e-08, 1.3, 1, 5.02927e-09, 0.115056, 0.993359, 4.34211e-08, 1.33333, 1, 5.6506e-09, 0.129271, 0.991609, 4.33446e-08, 1.36667, 1, 6.25588e-09, 0.143118, 0.989706, 4.32614e-08, 1.4, 1, 6.8472e-09, 0.156646, 0.987655, 4.31718e-08, 1.43333, 1, 7.42348e-09, 0.169829, 0.985474, 4.30764e-08, 1.46667, 1, 7.98365e-09, 0.182645, 0.983179, 4.29761e-08, 1.5, 1, 8.52665e-09, 0.195067, 0.98079, 4.28717e-08, 1.53333, 1, 9.04517e-09, 0.206929, 0.978356, 4.27653e-08, 1.56667, 1, 9.54349e-09, 0.21833, 0.975875, 4.26569e-08, 1.6, 1, 1.00206e-08, 0.229246, 0.973369, 4.25473e-08, 1.63333, 1, 1.04757e-08, 0.239656, 0.970858, 4.24375e-08, 1.66667, 1, 1.09077e-08, 0.249538, 0.968365, 4.23286e-08, 1.7, 1, 1.13074e-08, 0.258683, 0.965962, 4.22236e-08, 1.73333, 1, 1.16812e-08, 0.267236, 0.963631, 4.21217e-08, 1.76667, 1, 1.20284e-08, 0.275177, 0.961394, 4.20238e-08, 1.8, 1, 1.23479e-08, 0.282487, 0.959271, 4.19311e-08, 1.83333, 1, 1.26389e-08, 0.289145, 0.957285, 4.18443e-08, 1.86667, 1, 1.28903e-08, 0.294896, 0.955529, 4.17675e-08, 1.9, 1, 1.31105e-08, 0.299934, 0.95396, 4.16989e-08, 1.93333, 1, 1.32986e-08, 0.304237, 0.952596, 4.16393e-08, 1.96667, 1, 1.34538e-08, 0.307787, 0.951455, 4.15894e-08, 2, 1, 1.3575e-08, 0.31056, 0.950554, 4.155e-08, 2.03333, 1, 1.36492e-08, 0.312258, 0.949998, 4.15257e-08, 2.1, 1, 1.36992e-08, 0.313402, 0.949621, 4.15092e-08, 2.2, 1, 1.36719e-08, 0.312777, 0.949826, 4.15182e-08, 2.23333, 1, 1.36048e-08, 0.311242, 0.950331, 4.15403e-08, 2.26667, 1, 1.3499e-08, 0.308821, 0.95112, 4.15748e-08, 2.3, 1, 1.33555e-08, 0.305538, 0.95218, 4.16211e-08, 2.33333, 1, 1.31754e-08, 0.301417, 0.953492, 4.16785e-08, 2.36667, 1, 1.29486e-08, 0.29623, 0.955117, 4.17495e-08, 2.4, 1, 1.26884e-08, 0.290276, 0.956943, 4.18293e-08, 2.43333, 1, 1.23956e-08, 0.283578, 0.958949, 4.1917e-08, 2.46667, 1, 1.20713e-08, 0.276159, 0.961112, 4.20115e-08, 2.5, 1, 1.17164e-08, 0.268041, 0.963408, 4.21119e-08, 2.53333, 1, 1.13232e-08, 0.259045, 0.965865, 4.22193e-08, 2.56667, 1, 1.09026e-08, 0.249422, 0.968395, 4.23299e-08, 2.6, 1, 1.04555e-08, 0.239193, 0.970972, 4.24425e-08, 2.63333, 1, 9.98299e-09, 0.228384, 0.973571, 4.25561e-08, 2.66667, 1, 9.48615e-09, 0.217018, 0.976168, 4.26696e-08, 2.7, 1, 8.95951e-09, 0.20497, 0.978768, 4.27833e-08, 2.73333, 1, 8.41184e-09, 0.19244, 0.981309, 4.28944e-08, 2.76667, 1, 7.84428e-09, 0.179456, 0.983766, 4.30018e-08, 2.8, 1, 7.25799e-09, 0.166043, 0.986118, 4.31046e-08, 2.83333, 1, 6.65414e-09, 0.152229, 0.988345, 4.32019e-08, 2.86667, 1, 6.02975e-09, 0.137945, 0.99044, 4.32935e-08, 2.9, 1, 5.39145e-09, 0.123342, 0.992364, 4.33776e-08, 2.93333, 1, 4.74051e-09, 0.10845, 0.994102, 4.34536e-08, 2.96667, 1, 4.07823e-09, 0.093299, 0.995638, 4.35207e-08, 3, 1, 3.40592e-09, 0.0779184, 0.99696, 4.35785e-08, 3.1, 1, 1.34047e-09, 0.0306663, 0.99953, 4.36908e-08, 3.26667, 1, -2.14536e-09, -0.04908, 0.998795, 4.36587e-08, 3.33333, 1, -3.51689e-09, -0.080457, 0.996758, 4.35697e-08, 3.36667, 1, -4.18904e-09, -0.0958342, 0.995397, 4.35102e-08, 3.4, 1, -4.85116e-09, -0.110982, 0.993823, 4.34414e-08, 3.43333, 1, -5.5019e-09, -0.125869, 0.992047, 4.33637e-08, 3.46667, 1, -6.13998e-09, -0.140466, 0.990085, 4.3278e-08, 3.5, 1, -6.76414e-09, -0.154745, 0.987954, 4.31849e-08, 3.53333, 1, -7.36773e-09, -0.168554, 0.985692, 4.3086e-08, 3.56667, 1, -7.95376e-09, -0.181961, 0.983306, 4.29817e-08, 3.6, 1, -8.52105e-09, -0.194939, 0.980815, 4.28728e-08, 3.63333, 1, -9.06844e-09, -0.207462, 0.978243, 4.27604e-08, 3.66667, 1, -9.59479e-09, -0.219503, 0.975612, 4.26453e-08, 3.7, 1, -1.00913e-08, -0.230863, 0.972986, 4.25306e-08, 3.73333, 1, -1.05635e-08, -0.241665, 0.97036, 4.24158e-08, 3.76667, 1, -1.10103e-08, -0.251887, 0.967757, 4.2302e-08, 3.8, 1, -1.14307e-08, -0.261504, 0.965203, 4.21903e-08, 3.83333, 1, -1.18236e-08, -0.270493, 0.962722, 4.20819e-08, 3.86667, 1, -1.21782e-08, -0.278606, 0.960406, 4.19807e-08, 3.9, 1, -1.25023e-08, -0.286019, 0.958224, 4.18853e-08, 3.93333, 1, -1.27948e-08, -0.292712, 0.956201, 4.17969e-08, 3.96667, 1, -1.30549e-08, -0.298661, 0.954359, 4.17164e-08, 4, 1, -1.32815e-08, -0.303844, 0.952722, 4.16448e-08, 4.03333, 1, -1.34614e-08, -0.307962, 0.951399, 4.15869e-08, 4.06667, 1, -1.36048e-08, -0.311242, 0.950331, 4.15403e-08, 4.1, 1, -1.37106e-08, -0.313661, 0.949535, 4.15055e-08, 4.13333, 1, -1.37776e-08, -0.315195, 0.949027, 4.14833e-08, 4.29167, 1, -1.38049e-08, -0.315819, 0.948819, 4.14742e-08) -tracks/1/type = "rotation_3d" -tracks/1/imported = true -tracks/1/enabled = true -tracks/1/path = NodePath("2_003") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) -tracks/2/type = "rotation_3d" -tracks/2/imported = true -tracks/2/enabled = true -tracks/2/path = NodePath("2_005") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) -tracks/3/type = "rotation_3d" -tracks/3/imported = true -tracks/3/enabled = true -tracks/3/path = NodePath("2_006") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) -tracks/4/type = "rotation_3d" -tracks/4/imported = true -tracks/4/enabled = true -tracks/4/path = NodePath("2_002") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) -tracks/5/type = "rotation_3d" -tracks/5/imported = true -tracks/5/enabled = true -tracks/5/path = NodePath("2_004") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) - -[sub_resource type="Animation" id="Animation_bandn"] -resource_name = "2_001Action_001" -length = 4.29167 -tracks/0/type = "rotation_3d" -tracks/0/imported = true -tracks/0/enabled = true -tracks/0/path = NodePath("2_002") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = PackedFloat32Array(0, 1, 1.5249e-08, 0.348856, 0.937176, 4.09653e-08, 0.0333333, 1, 1.52153e-08, 0.348086, 0.937463, 4.09778e-08, 0.0666667, 1, 1.51325e-08, 0.346191, 0.938164, 4.10085e-08, 0.1, 1, 1.50018e-08, 0.3432, 0.939262, 4.10565e-08, 0.133333, 1, 1.48243e-08, 0.33914, 0.940736, 4.11209e-08, 0.166667, 1, 1.46013e-08, 0.334038, 0.942559, 4.12006e-08, 0.2, 1, 1.43201e-08, 0.327605, 0.944815, 4.12992e-08, 0.233333, 1, 1.39968e-08, 0.32021, 0.947346, 4.14098e-08, 0.266667, 1, 1.36326e-08, 0.311878, 0.950122, 4.15311e-08, 0.3, 1, 1.32285e-08, 0.302634, 0.953107, 4.16616e-08, 0.333333, 1, 1.27856e-08, 0.2925, 0.956265, 4.17997e-08, 0.366667, 1, 1.22937e-08, 0.281248, 0.959635, 4.1947e-08, 0.4, 1, 1.17665e-08, 0.269186, 0.963088, 4.20979e-08, 0.433333, 1, 1.12051e-08, 0.256342, 0.966586, 4.22508e-08, 0.466667, 1, 1.06106e-08, 0.242742, 0.970091, 4.2404e-08, 0.5, 1, 9.98422e-09, 0.228412, 0.973564, 4.25558e-08, 0.533333, 1, 9.31873e-09, 0.213188, 0.977011, 4.27065e-08, 0.566667, 1, 8.62527e-09, 0.197323, 0.980339, 4.2852e-08, 0.6, 1, 7.9052e-09, 0.18085, 0.983511, 4.29906e-08, 0.633333, 1, 7.15993e-09, 0.1638, 0.986494, 4.3121e-08, 0.666667, 1, 6.39091e-09, 0.146207, 0.989254, 4.32417e-08, 0.7, 1, 5.59387e-09, 0.127973, 0.991778, 4.3352e-08, 0.733333, 1, 4.77757e-09, 0.109298, 0.994009, 4.34495e-08, 0.766667, 1, 3.94363e-09, 0.0902198, 0.995922, 4.35331e-08, 0.8, 1, 3.09372e-09, 0.070776, 0.997492, 4.36018e-08, 0.833333, 1, 2.22954e-09, 0.051006, 0.998698, 4.36545e-08, 0.9, 1, 4.61058e-10, 0.0105478, 0.999944, 4.3709e-08, 1.1, 1, -4.96032e-09, -0.113479, 0.99354, 4.3429e-08, 1.16667, 1, -6.74976e-09, -0.154416, 0.988006, 4.31871e-08, 1.23333, 1, -8.49769e-09, -0.194404, 0.980921, 4.28774e-08, 1.26667, 1, -9.35236e-09, -0.213957, 0.976843, 4.26992e-08, 1.3, 1, -1.0192e-08, -0.233165, 0.972437, 4.25066e-08, 1.33333, 1, -1.10149e-08, -0.251992, 0.967729, 4.23008e-08, 1.36667, 1, -1.18141e-08, -0.270276, 0.962783, 4.20846e-08, 1.4, 1, -1.25924e-08, -0.28808, 0.957606, 4.18583e-08, 1.43333, 1, -1.33482e-08, -0.305372, 0.952233, 4.16234e-08, 1.46667, 1, -1.40805e-08, -0.322123, 0.946698, 4.13815e-08, 1.5, 1, -1.47877e-08, -0.338304, 0.941037, 4.1134e-08, 1.53333, 1, -1.54607e-08, -0.3537, 0.935359, 4.08858e-08, 1.56667, 1, -1.61052e-08, -0.368443, 0.92965, 4.06363e-08, 1.6, 1, -1.672e-08, -0.38251, 0.923952, 4.03872e-08, 1.63333, 1, -1.73043e-08, -0.395877, 0.918304, 4.01403e-08, 1.66667, 1, -1.7857e-08, -0.408522, 0.912749, 3.98975e-08, 1.7, 1, -1.83668e-08, -0.420182, 0.90744, 3.96655e-08, 1.73333, 1, -1.88419e-08, -0.431053, 0.902327, 3.9442e-08, 1.76667, 1, -1.92817e-08, -0.441114, 0.897451, 3.92288e-08, 1.8, 1, -1.96853e-08, -0.450347, 0.892853, 3.90279e-08, 1.83333, 1, -2.00519e-08, -0.458733, 0.888574, 3.88408e-08, 1.86667, 1, -2.03677e-08, -0.465959, 0.884806, 3.86761e-08, 1.9, 1, -2.06437e-08, -0.472274, 0.881452, 3.85295e-08, 1.93333, 1, -2.08791e-08, -0.477657, 0.878546, 3.84025e-08, 1.96667, 1, -2.10728e-08, -0.482089, 0.876122, 3.82965e-08, 2, 1, -2.1224e-08, -0.485549, 0.87421, 3.82129e-08, 2.03333, 1, -2.13164e-08, -0.487663, 0.873032, 3.81614e-08, 2.06667, 1, -2.1363e-08, -0.488729, 0.872436, 3.81354e-08, 2.1, 1, -2.13648e-08, -0.48877, 0.872413, 3.81344e-08, 2.13333, 1, -2.13236e-08, -0.487826, 0.872941, 3.81574e-08, 2.16667, 1, -2.12417e-08, -0.485953, 0.873985, 3.82031e-08, 2.2, 1, -2.11076e-08, -0.482886, 0.875683, 3.82773e-08, 2.23333, 1, -2.09357e-08, -0.478954, 0.87784, 3.83716e-08, 2.26667, 1, -2.07268e-08, -0.474174, 0.880431, 3.84849e-08, 2.3, 1, -2.04816e-08, -0.468564, 0.88343, 3.86159e-08, 2.33333, 1, -2.02008e-08, -0.46214, 0.886807, 3.87636e-08, 2.36667, 1, -1.98746e-08, -0.454678, 0.890656, 3.89318e-08, 2.4, 1, -1.95152e-08, -0.446457, 0.894805, 3.91132e-08, 2.43333, 1, -1.91234e-08, -0.437492, 0.899222, 3.93063e-08, 2.46667, 1, -1.86997e-08, -0.427799, 0.903874, 3.95096e-08, 2.5, 1, -1.82448e-08, -0.417393, 0.908726, 3.97217e-08, 2.53333, 1, -1.7751e-08, -0.406095, 0.913831, 3.99448e-08, 2.56667, 1, -1.72285e-08, -0.394141, 0.91905, 4.01729e-08, 2.6, 1, -1.6678e-08, -0.381548, 0.924349, 4.04046e-08, 2.63333, 1, -1.61005e-08, -0.368336, 0.929693, 4.06382e-08, 2.66667, 1, -1.54967e-08, -0.354522, 0.935048, 4.08722e-08, 2.7, 1, -1.48609e-08, -0.339977, 0.940434, 4.11077e-08, 2.73333, 1, -1.42017e-08, -0.324898, 0.945749, 4.134e-08, 2.76667, 1, -1.35202e-08, -0.309305, 0.950963, 4.15679e-08, 2.8, 1, -1.28172e-08, -0.293224, 0.956044, 4.179e-08, 2.83333, 1, -1.2094e-08, -0.27668, 0.960962, 4.2005e-08, 2.86667, 1, -1.13473e-08, -0.259596, 0.965717, 4.22128e-08, 2.9, 1, -1.05837e-08, -0.242128, 0.970244, 4.24107e-08, 2.93333, 1, -9.8046e-09, -0.224303, 0.974519, 4.25976e-08, 2.96667, 1, -9.01116e-09, -0.206151, 0.97852, 4.27725e-08, 3, 1, -8.20478e-09, -0.187703, 0.982226, 4.29344e-08, 3.1, 1, -5.71906e-09, -0.130837, 0.991404, 4.33356e-08, 3.3, 1, -6.33733e-10, -0.0144981, 0.999895, 4.37068e-08, 3.33333, 1, 2.08187e-10, 0.00476275, 0.999989, 4.37109e-08, 3.4, 1, 1.8663e-09, 0.042696, 0.999088, 4.36715e-08, 3.43333, 1, 2.68101e-09, 0.0613344, 0.998117, 4.36291e-08, 3.46667, 1, 3.4842e-09, 0.0797091, 0.996818, 4.35723e-08, 3.5, 1, 4.27441e-09, 0.0977871, 0.995207, 4.35019e-08, 3.53333, 1, 5.04512e-09, 0.115419, 0.993317, 4.34193e-08, 3.56667, 1, 5.79889e-09, 0.132663, 0.991161, 4.3325e-08, 3.6, 1, 6.5344e-09, 0.14949, 0.988763, 4.32202e-08, 3.63333, 1, 7.25037e-09, 0.165869, 0.986148, 4.31059e-08, 3.66667, 1, 7.94551e-09, 0.181772, 0.983341, 4.29832e-08, 3.7, 1, 8.6112e-09, 0.197001, 0.980403, 4.28548e-08, 3.73333, 1, 9.25256e-09, 0.211674, 0.97734, 4.27209e-08, 3.76667, 1, 9.86847e-09, 0.225764, 0.974182, 4.25828e-08, 3.8, 1, 1.04579e-08, 0.239248, 0.970959, 4.24419e-08, 3.83333, 1, 1.10197e-08, 0.252101, 0.967701, 4.22996e-08, 3.86667, 1, 1.15432e-08, 0.264078, 0.964501, 4.21597e-08, 3.9, 1, 1.20361e-08, 0.275354, 0.961343, 4.20216e-08, 3.93333, 1, 1.24974e-08, 0.285907, 0.958257, 4.18868e-08, 3.96667, 1, 1.29261e-08, 0.295715, 0.955276, 4.17564e-08, 4, 1, 1.33214e-08, 0.304758, 0.95243, 4.1632e-08, 4.03333, 1, 1.36705e-08, 0.312744, 0.949837, 4.15187e-08, 4.06667, 1, 1.39832e-08, 0.319899, 0.947452, 4.14144e-08, 4.1, 1, 1.42587e-08, 0.326202, 0.9453, 4.13204e-08, 4.13333, 1, 1.44961e-08, 0.331632, 0.943409, 4.12377e-08, 4.16667, 1, 1.46943e-08, 0.336167, 0.941802, 4.11675e-08, 4.2, 1, 1.48386e-08, 0.339467, 0.940618, 4.11157e-08, 4.23333, 1, 1.49407e-08, 0.341803, 0.939772, 4.10787e-08, 4.26667, 1, 1.49996e-08, 0.343152, 0.93928, 4.10572e-08, 4.29167, 1, 1.5022e-08, 0.343664, 0.939093, 4.1049e-08) -tracks/1/type = "rotation_3d" -tracks/1/imported = true -tracks/1/enabled = true -tracks/1/path = NodePath("2_003") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) -tracks/2/type = "rotation_3d" -tracks/2/imported = true -tracks/2/enabled = true -tracks/2/path = NodePath("2_001") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) -tracks/3/type = "rotation_3d" -tracks/3/imported = true -tracks/3/enabled = true -tracks/3/path = NodePath("2_005") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) -tracks/4/type = "rotation_3d" -tracks/4/imported = true -tracks/4/enabled = true -tracks/4/path = NodePath("2_006") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) -tracks/5/type = "rotation_3d" -tracks/5/imported = true -tracks/5/enabled = true -tracks/5/path = NodePath("2_004") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) - [sub_resource type="Animation" id="Animation_ayemw"] resource_name = "2Action_003" length = 4.29167 @@ -1649,16 +1557,16 @@ tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) -[sub_resource type="Animation" id="Animation_ary32"] -resource_name = "2_001Action_004" +[sub_resource type="Animation" id="Animation_7vf6o"] +resource_name = "2Action_006" length = 4.29167 tracks/0/type = "rotation_3d" tracks/0/imported = true tracks/0/enabled = true -tracks/0/path = NodePath("2_004") +tracks/0/path = NodePath("2_001") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/keys = PackedFloat32Array(0, 1, 1.5249e-08, 0.348856, 0.937176, 4.09653e-08, 0.0333333, 1, 1.52153e-08, 0.348086, 0.937463, 4.09778e-08, 0.0666667, 1, 1.51325e-08, 0.346191, 0.938164, 4.10085e-08, 0.1, 1, 1.50018e-08, 0.3432, 0.939262, 4.10565e-08, 0.133333, 1, 1.48243e-08, 0.33914, 0.940736, 4.11209e-08, 0.166667, 1, 1.46013e-08, 0.334038, 0.942559, 4.12006e-08, 0.2, 1, 1.43201e-08, 0.327605, 0.944815, 4.12992e-08, 0.233333, 1, 1.39968e-08, 0.32021, 0.947346, 4.14098e-08, 0.266667, 1, 1.36326e-08, 0.311878, 0.950122, 4.15311e-08, 0.3, 1, 1.32285e-08, 0.302634, 0.953107, 4.16616e-08, 0.333333, 1, 1.27856e-08, 0.2925, 0.956265, 4.17997e-08, 0.366667, 1, 1.22937e-08, 0.281248, 0.959635, 4.1947e-08, 0.4, 1, 1.17665e-08, 0.269186, 0.963088, 4.20979e-08, 0.433333, 1, 1.12051e-08, 0.256342, 0.966586, 4.22508e-08, 0.466667, 1, 1.06106e-08, 0.242742, 0.970091, 4.2404e-08, 0.5, 1, 9.98422e-09, 0.228412, 0.973564, 4.25558e-08, 0.533333, 1, 9.31873e-09, 0.213188, 0.977011, 4.27065e-08, 0.566667, 1, 8.62527e-09, 0.197323, 0.980339, 4.2852e-08, 0.6, 1, 7.9052e-09, 0.18085, 0.983511, 4.29906e-08, 0.633333, 1, 7.15993e-09, 0.1638, 0.986494, 4.3121e-08, 0.666667, 1, 6.39091e-09, 0.146207, 0.989254, 4.32417e-08, 0.7, 1, 5.59387e-09, 0.127973, 0.991778, 4.3352e-08, 0.733333, 1, 4.77757e-09, 0.109298, 0.994009, 4.34495e-08, 0.766667, 1, 3.94363e-09, 0.0902198, 0.995922, 4.35331e-08, 0.8, 1, 3.09372e-09, 0.070776, 0.997492, 4.36018e-08, 0.833333, 1, 2.22954e-09, 0.051006, 0.998698, 4.36545e-08, 0.9, 1, 4.61058e-10, 0.0105478, 0.999944, 4.3709e-08, 1.1, 1, -4.96032e-09, -0.113479, 0.99354, 4.3429e-08, 1.16667, 1, -6.74976e-09, -0.154416, 0.988006, 4.31871e-08, 1.23333, 1, -8.49769e-09, -0.194404, 0.980921, 4.28774e-08, 1.26667, 1, -9.35236e-09, -0.213957, 0.976843, 4.26992e-08, 1.3, 1, -1.0192e-08, -0.233165, 0.972437, 4.25066e-08, 1.33333, 1, -1.10149e-08, -0.251992, 0.967729, 4.23008e-08, 1.36667, 1, -1.18141e-08, -0.270276, 0.962783, 4.20846e-08, 1.4, 1, -1.25924e-08, -0.28808, 0.957606, 4.18583e-08, 1.43333, 1, -1.33482e-08, -0.305372, 0.952233, 4.16234e-08, 1.46667, 1, -1.40805e-08, -0.322123, 0.946698, 4.13815e-08, 1.5, 1, -1.47877e-08, -0.338304, 0.941037, 4.1134e-08, 1.53333, 1, -1.54607e-08, -0.3537, 0.935359, 4.08858e-08, 1.56667, 1, -1.61052e-08, -0.368443, 0.92965, 4.06363e-08, 1.6, 1, -1.672e-08, -0.38251, 0.923952, 4.03872e-08, 1.63333, 1, -1.73043e-08, -0.395877, 0.918304, 4.01403e-08, 1.66667, 1, -1.7857e-08, -0.408522, 0.912749, 3.98975e-08, 1.7, 1, -1.83668e-08, -0.420182, 0.90744, 3.96655e-08, 1.73333, 1, -1.88419e-08, -0.431053, 0.902327, 3.9442e-08, 1.76667, 1, -1.92817e-08, -0.441114, 0.897451, 3.92288e-08, 1.8, 1, -1.96853e-08, -0.450347, 0.892853, 3.90279e-08, 1.83333, 1, -2.00519e-08, -0.458733, 0.888574, 3.88408e-08, 1.86667, 1, -2.03677e-08, -0.465959, 0.884806, 3.86761e-08, 1.9, 1, -2.06437e-08, -0.472274, 0.881452, 3.85295e-08, 1.93333, 1, -2.08791e-08, -0.477657, 0.878546, 3.84025e-08, 1.96667, 1, -2.10728e-08, -0.482089, 0.876122, 3.82965e-08, 2, 1, -2.1224e-08, -0.485549, 0.87421, 3.82129e-08, 2.03333, 1, -2.13164e-08, -0.487663, 0.873032, 3.81614e-08, 2.06667, 1, -2.1363e-08, -0.488729, 0.872436, 3.81354e-08, 2.1, 1, -2.13648e-08, -0.48877, 0.872413, 3.81344e-08, 2.13333, 1, -2.13236e-08, -0.487826, 0.872941, 3.81574e-08, 2.16667, 1, -2.12417e-08, -0.485953, 0.873985, 3.82031e-08, 2.2, 1, -2.11076e-08, -0.482886, 0.875683, 3.82773e-08, 2.23333, 1, -2.09357e-08, -0.478954, 0.87784, 3.83716e-08, 2.26667, 1, -2.07268e-08, -0.474174, 0.880431, 3.84849e-08, 2.3, 1, -2.04816e-08, -0.468564, 0.88343, 3.86159e-08, 2.33333, 1, -2.02008e-08, -0.46214, 0.886807, 3.87636e-08, 2.36667, 1, -1.98746e-08, -0.454678, 0.890656, 3.89318e-08, 2.4, 1, -1.95152e-08, -0.446457, 0.894805, 3.91132e-08, 2.43333, 1, -1.91234e-08, -0.437492, 0.899222, 3.93063e-08, 2.46667, 1, -1.86997e-08, -0.427799, 0.903874, 3.95096e-08, 2.5, 1, -1.82448e-08, -0.417393, 0.908726, 3.97217e-08, 2.53333, 1, -1.7751e-08, -0.406095, 0.913831, 3.99448e-08, 2.56667, 1, -1.72285e-08, -0.394141, 0.91905, 4.01729e-08, 2.6, 1, -1.6678e-08, -0.381548, 0.924349, 4.04046e-08, 2.63333, 1, -1.61005e-08, -0.368336, 0.929693, 4.06382e-08, 2.66667, 1, -1.54967e-08, -0.354522, 0.935048, 4.08722e-08, 2.7, 1, -1.48609e-08, -0.339977, 0.940434, 4.11077e-08, 2.73333, 1, -1.42017e-08, -0.324898, 0.945749, 4.134e-08, 2.76667, 1, -1.35202e-08, -0.309305, 0.950963, 4.15679e-08, 2.8, 1, -1.28172e-08, -0.293224, 0.956044, 4.179e-08, 2.83333, 1, -1.2094e-08, -0.27668, 0.960962, 4.2005e-08, 2.86667, 1, -1.13473e-08, -0.259596, 0.965717, 4.22128e-08, 2.9, 1, -1.05837e-08, -0.242128, 0.970244, 4.24107e-08, 2.93333, 1, -9.8046e-09, -0.224303, 0.974519, 4.25976e-08, 2.96667, 1, -9.01116e-09, -0.206151, 0.97852, 4.27725e-08, 3, 1, -8.20478e-09, -0.187703, 0.982226, 4.29344e-08, 3.1, 1, -5.71906e-09, -0.130837, 0.991404, 4.33356e-08, 3.3, 1, -6.33733e-10, -0.0144981, 0.999895, 4.37068e-08, 3.33333, 1, 2.08187e-10, 0.00476275, 0.999989, 4.37109e-08, 3.4, 1, 1.8663e-09, 0.042696, 0.999088, 4.36715e-08, 3.43333, 1, 2.68101e-09, 0.0613344, 0.998117, 4.36291e-08, 3.46667, 1, 3.4842e-09, 0.0797091, 0.996818, 4.35723e-08, 3.5, 1, 4.27441e-09, 0.0977871, 0.995207, 4.35019e-08, 3.53333, 1, 5.04512e-09, 0.115419, 0.993317, 4.34193e-08, 3.56667, 1, 5.79889e-09, 0.132663, 0.991161, 4.3325e-08, 3.6, 1, 6.5344e-09, 0.14949, 0.988763, 4.32202e-08, 3.63333, 1, 7.25037e-09, 0.165869, 0.986148, 4.31059e-08, 3.66667, 1, 7.94551e-09, 0.181772, 0.983341, 4.29832e-08, 3.7, 1, 8.6112e-09, 0.197001, 0.980403, 4.28548e-08, 3.73333, 1, 9.25256e-09, 0.211674, 0.97734, 4.27209e-08, 3.76667, 1, 9.86847e-09, 0.225764, 0.974182, 4.25828e-08, 3.8, 1, 1.04579e-08, 0.239248, 0.970959, 4.24419e-08, 3.83333, 1, 1.10197e-08, 0.252101, 0.967701, 4.22996e-08, 3.86667, 1, 1.15432e-08, 0.264078, 0.964501, 4.21597e-08, 3.9, 1, 1.20361e-08, 0.275354, 0.961343, 4.20216e-08, 3.93333, 1, 1.24974e-08, 0.285907, 0.958257, 4.18868e-08, 3.96667, 1, 1.29261e-08, 0.295715, 0.955276, 4.17564e-08, 4, 1, 1.33214e-08, 0.304758, 0.95243, 4.1632e-08, 4.03333, 1, 1.36705e-08, 0.312744, 0.949837, 4.15187e-08, 4.06667, 1, 1.39832e-08, 0.319899, 0.947452, 4.14144e-08, 4.1, 1, 1.42587e-08, 0.326202, 0.9453, 4.13204e-08, 4.13333, 1, 1.44961e-08, 0.331632, 0.943409, 4.12377e-08, 4.16667, 1, 1.46943e-08, 0.336167, 0.941802, 4.11675e-08, 4.2, 1, 1.48386e-08, 0.339467, 0.940618, 4.11157e-08, 4.23333, 1, 1.49407e-08, 0.341803, 0.939772, 4.10787e-08, 4.26667, 1, 1.49996e-08, 0.343152, 0.93928, 4.10572e-08, 4.29167, 1, 1.5022e-08, 0.343664, 0.939093, 4.1049e-08) +tracks/0/keys = PackedFloat32Array(0, 1, -1.38049e-08, -0.315819, 0.948819, 4.14742e-08, 0.0333333, 1, -1.37797e-08, -0.315244, 0.949011, 4.14826e-08, 0.0666667, 1, -1.37179e-08, -0.313828, 0.94948, 4.15031e-08, 0.1, 1, -1.36202e-08, -0.311595, 0.950215, 4.15352e-08, 0.133333, 1, -1.34878e-08, -0.308565, 0.951203, 4.15784e-08, 0.166667, 1, -1.33214e-08, -0.304759, 0.952429, 4.1632e-08, 0.2, 1, -1.31118e-08, -0.299964, 0.953951, 4.16985e-08, 0.233333, 1, -1.28711e-08, -0.294457, 0.955665, 4.17734e-08, 0.266667, 1, -1.26001e-08, -0.288257, 0.957553, 4.1856e-08, 0.3, 1, -1.22997e-08, -0.281385, 0.959595, 4.19452e-08, 0.333333, 1, -1.19708e-08, -0.27386, 0.96177, 4.20403e-08, 0.366667, 1, -1.16059e-08, -0.265513, 0.964107, 4.21425e-08, 0.4, 1, -1.12153e-08, -0.256576, 0.966524, 4.22481e-08, 0.433333, 1, -1.07997e-08, -0.247069, 0.968998, 4.23562e-08, 0.466667, 1, -1.03601e-08, -0.237013, 0.971507, 4.24659e-08, 0.5, 1, -9.89749e-09, -0.226428, 0.974028, 4.25761e-08, 0.533333, 1, -9.40638e-09, -0.215193, 0.976572, 4.26873e-08, 0.566667, 1, -8.8951e-09, -0.203496, 0.979076, 4.27968e-08, 0.6, 1, -8.36461e-09, -0.19136, 0.98152, 4.29036e-08, 0.633333, 1, -7.81593e-09, -0.178807, 0.983884, 4.30069e-08, 0.666667, 1, -7.25007e-09, -0.165862, 0.986149, 4.31059e-08, 0.7, 1, -6.66386e-09, -0.152451, 0.988311, 4.32004e-08, 0.733333, 1, -6.06365e-09, -0.13872, 0.990332, 4.32888e-08, 0.766667, 1, -5.45054e-09, -0.124694, 0.992195, 4.33702e-08, 0.8, 1, -4.82566e-09, -0.110398, 0.993887, 4.34442e-08, 0.833333, 1, -4.19016e-09, -0.0958597, 0.995395, 4.35101e-08, 0.9, 1, -2.88874e-09, -0.0660866, 0.997814, 4.36158e-08, 1.16667, 1, 2.44911e-09, 0.0560291, 0.998429, 4.36427e-08, 1.2, 1, 3.10603e-09, 0.0710576, 0.997472, 4.36009e-08, 1.23333, 1, 3.75582e-09, 0.0859231, 0.996302, 4.35497e-08, 1.26667, 1, 4.39729e-09, 0.100598, 0.994927, 4.34896e-08, 1.3, 1, 5.02927e-09, 0.115056, 0.993359, 4.34211e-08, 1.33333, 1, 5.6506e-09, 0.129271, 0.991609, 4.33446e-08, 1.36667, 1, 6.25588e-09, 0.143118, 0.989706, 4.32614e-08, 1.4, 1, 6.8472e-09, 0.156646, 0.987655, 4.31718e-08, 1.43333, 1, 7.42348e-09, 0.169829, 0.985474, 4.30764e-08, 1.46667, 1, 7.98365e-09, 0.182645, 0.983179, 4.29761e-08, 1.5, 1, 8.52665e-09, 0.195067, 0.98079, 4.28717e-08, 1.53333, 1, 9.04517e-09, 0.206929, 0.978356, 4.27653e-08, 1.56667, 1, 9.54349e-09, 0.21833, 0.975875, 4.26569e-08, 1.6, 1, 1.00206e-08, 0.229246, 0.973369, 4.25473e-08, 1.63333, 1, 1.04757e-08, 0.239656, 0.970858, 4.24375e-08, 1.66667, 1, 1.09077e-08, 0.249538, 0.968365, 4.23286e-08, 1.7, 1, 1.13074e-08, 0.258683, 0.965962, 4.22236e-08, 1.73333, 1, 1.16812e-08, 0.267236, 0.963631, 4.21217e-08, 1.76667, 1, 1.20284e-08, 0.275177, 0.961394, 4.20238e-08, 1.8, 1, 1.23479e-08, 0.282487, 0.959271, 4.19311e-08, 1.83333, 1, 1.26389e-08, 0.289145, 0.957285, 4.18443e-08, 1.86667, 1, 1.28903e-08, 0.294896, 0.955529, 4.17675e-08, 1.9, 1, 1.31105e-08, 0.299934, 0.95396, 4.16989e-08, 1.93333, 1, 1.32986e-08, 0.304237, 0.952596, 4.16393e-08, 1.96667, 1, 1.34538e-08, 0.307787, 0.951455, 4.15894e-08, 2, 1, 1.3575e-08, 0.31056, 0.950554, 4.155e-08, 2.03333, 1, 1.36492e-08, 0.312258, 0.949998, 4.15257e-08, 2.1, 1, 1.36992e-08, 0.313402, 0.949621, 4.15092e-08, 2.2, 1, 1.36719e-08, 0.312777, 0.949826, 4.15182e-08, 2.23333, 1, 1.36048e-08, 0.311242, 0.950331, 4.15403e-08, 2.26667, 1, 1.3499e-08, 0.308821, 0.95112, 4.15748e-08, 2.3, 1, 1.33555e-08, 0.305538, 0.95218, 4.16211e-08, 2.33333, 1, 1.31754e-08, 0.301417, 0.953492, 4.16785e-08, 2.36667, 1, 1.29486e-08, 0.29623, 0.955117, 4.17495e-08, 2.4, 1, 1.26884e-08, 0.290276, 0.956943, 4.18293e-08, 2.43333, 1, 1.23956e-08, 0.283578, 0.958949, 4.1917e-08, 2.46667, 1, 1.20713e-08, 0.276159, 0.961112, 4.20115e-08, 2.5, 1, 1.17164e-08, 0.268041, 0.963408, 4.21119e-08, 2.53333, 1, 1.13232e-08, 0.259045, 0.965865, 4.22193e-08, 2.56667, 1, 1.09026e-08, 0.249422, 0.968395, 4.23299e-08, 2.6, 1, 1.04555e-08, 0.239193, 0.970972, 4.24425e-08, 2.63333, 1, 9.98299e-09, 0.228384, 0.973571, 4.25561e-08, 2.66667, 1, 9.48615e-09, 0.217018, 0.976168, 4.26696e-08, 2.7, 1, 8.95951e-09, 0.20497, 0.978768, 4.27833e-08, 2.73333, 1, 8.41184e-09, 0.19244, 0.981309, 4.28944e-08, 2.76667, 1, 7.84428e-09, 0.179456, 0.983766, 4.30018e-08, 2.8, 1, 7.25799e-09, 0.166043, 0.986118, 4.31046e-08, 2.83333, 1, 6.65414e-09, 0.152229, 0.988345, 4.32019e-08, 2.86667, 1, 6.02975e-09, 0.137945, 0.99044, 4.32935e-08, 2.9, 1, 5.39145e-09, 0.123342, 0.992364, 4.33776e-08, 2.93333, 1, 4.74051e-09, 0.10845, 0.994102, 4.34536e-08, 2.96667, 1, 4.07823e-09, 0.093299, 0.995638, 4.35207e-08, 3, 1, 3.40592e-09, 0.0779184, 0.99696, 4.35785e-08, 3.1, 1, 1.34047e-09, 0.0306663, 0.99953, 4.36908e-08, 3.26667, 1, -2.14536e-09, -0.04908, 0.998795, 4.36587e-08, 3.33333, 1, -3.51689e-09, -0.080457, 0.996758, 4.35697e-08, 3.36667, 1, -4.18904e-09, -0.0958342, 0.995397, 4.35102e-08, 3.4, 1, -4.85116e-09, -0.110982, 0.993823, 4.34414e-08, 3.43333, 1, -5.5019e-09, -0.125869, 0.992047, 4.33637e-08, 3.46667, 1, -6.13998e-09, -0.140466, 0.990085, 4.3278e-08, 3.5, 1, -6.76414e-09, -0.154745, 0.987954, 4.31849e-08, 3.53333, 1, -7.36773e-09, -0.168554, 0.985692, 4.3086e-08, 3.56667, 1, -7.95376e-09, -0.181961, 0.983306, 4.29817e-08, 3.6, 1, -8.52105e-09, -0.194939, 0.980815, 4.28728e-08, 3.63333, 1, -9.06844e-09, -0.207462, 0.978243, 4.27604e-08, 3.66667, 1, -9.59479e-09, -0.219503, 0.975612, 4.26453e-08, 3.7, 1, -1.00913e-08, -0.230863, 0.972986, 4.25306e-08, 3.73333, 1, -1.05635e-08, -0.241665, 0.97036, 4.24158e-08, 3.76667, 1, -1.10103e-08, -0.251887, 0.967757, 4.2302e-08, 3.8, 1, -1.14307e-08, -0.261504, 0.965203, 4.21903e-08, 3.83333, 1, -1.18236e-08, -0.270493, 0.962722, 4.20819e-08, 3.86667, 1, -1.21782e-08, -0.278606, 0.960406, 4.19807e-08, 3.9, 1, -1.25023e-08, -0.286019, 0.958224, 4.18853e-08, 3.93333, 1, -1.27948e-08, -0.292712, 0.956201, 4.17969e-08, 3.96667, 1, -1.30549e-08, -0.298661, 0.954359, 4.17164e-08, 4, 1, -1.32815e-08, -0.303844, 0.952722, 4.16448e-08, 4.03333, 1, -1.34614e-08, -0.307962, 0.951399, 4.15869e-08, 4.06667, 1, -1.36048e-08, -0.311242, 0.950331, 4.15403e-08, 4.1, 1, -1.37106e-08, -0.313661, 0.949535, 4.15055e-08, 4.13333, 1, -1.37776e-08, -0.315195, 0.949027, 4.14833e-08, 4.29167, 1, -1.38049e-08, -0.315819, 0.948819, 4.14742e-08) tracks/1/type = "rotation_3d" tracks/1/imported = true tracks/1/enabled = true @@ -1669,28 +1577,28 @@ tracks/1/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14 tracks/2/type = "rotation_3d" tracks/2/imported = true tracks/2/enabled = true -tracks/2/path = NodePath("2_001") +tracks/2/path = NodePath("2_005") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) tracks/3/type = "rotation_3d" tracks/3/imported = true tracks/3/enabled = true -tracks/3/path = NodePath("2_005") +tracks/3/path = NodePath("2_006") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) tracks/4/type = "rotation_3d" tracks/4/imported = true tracks/4/enabled = true -tracks/4/path = NodePath("2_006") +tracks/4/path = NodePath("2_002") tracks/4/interp = 1 tracks/4/loop_wrap = true -tracks/4/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/4/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) tracks/5/type = "rotation_3d" tracks/5/imported = true tracks/5/enabled = true -tracks/5/path = NodePath("2_002") +tracks/5/path = NodePath("2_004") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) @@ -1787,6 +1695,98 @@ tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) +[sub_resource type="Animation" id="Animation_bandn"] +resource_name = "2_001Action_001" +length = 4.29167 +tracks/0/type = "rotation_3d" +tracks/0/imported = true +tracks/0/enabled = true +tracks/0/path = NodePath("2_002") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = PackedFloat32Array(0, 1, 1.5249e-08, 0.348856, 0.937176, 4.09653e-08, 0.0333333, 1, 1.52153e-08, 0.348086, 0.937463, 4.09778e-08, 0.0666667, 1, 1.51325e-08, 0.346191, 0.938164, 4.10085e-08, 0.1, 1, 1.50018e-08, 0.3432, 0.939262, 4.10565e-08, 0.133333, 1, 1.48243e-08, 0.33914, 0.940736, 4.11209e-08, 0.166667, 1, 1.46013e-08, 0.334038, 0.942559, 4.12006e-08, 0.2, 1, 1.43201e-08, 0.327605, 0.944815, 4.12992e-08, 0.233333, 1, 1.39968e-08, 0.32021, 0.947346, 4.14098e-08, 0.266667, 1, 1.36326e-08, 0.311878, 0.950122, 4.15311e-08, 0.3, 1, 1.32285e-08, 0.302634, 0.953107, 4.16616e-08, 0.333333, 1, 1.27856e-08, 0.2925, 0.956265, 4.17997e-08, 0.366667, 1, 1.22937e-08, 0.281248, 0.959635, 4.1947e-08, 0.4, 1, 1.17665e-08, 0.269186, 0.963088, 4.20979e-08, 0.433333, 1, 1.12051e-08, 0.256342, 0.966586, 4.22508e-08, 0.466667, 1, 1.06106e-08, 0.242742, 0.970091, 4.2404e-08, 0.5, 1, 9.98422e-09, 0.228412, 0.973564, 4.25558e-08, 0.533333, 1, 9.31873e-09, 0.213188, 0.977011, 4.27065e-08, 0.566667, 1, 8.62527e-09, 0.197323, 0.980339, 4.2852e-08, 0.6, 1, 7.9052e-09, 0.18085, 0.983511, 4.29906e-08, 0.633333, 1, 7.15993e-09, 0.1638, 0.986494, 4.3121e-08, 0.666667, 1, 6.39091e-09, 0.146207, 0.989254, 4.32417e-08, 0.7, 1, 5.59387e-09, 0.127973, 0.991778, 4.3352e-08, 0.733333, 1, 4.77757e-09, 0.109298, 0.994009, 4.34495e-08, 0.766667, 1, 3.94363e-09, 0.0902198, 0.995922, 4.35331e-08, 0.8, 1, 3.09372e-09, 0.070776, 0.997492, 4.36018e-08, 0.833333, 1, 2.22954e-09, 0.051006, 0.998698, 4.36545e-08, 0.9, 1, 4.61058e-10, 0.0105478, 0.999944, 4.3709e-08, 1.1, 1, -4.96032e-09, -0.113479, 0.99354, 4.3429e-08, 1.16667, 1, -6.74976e-09, -0.154416, 0.988006, 4.31871e-08, 1.23333, 1, -8.49769e-09, -0.194404, 0.980921, 4.28774e-08, 1.26667, 1, -9.35236e-09, -0.213957, 0.976843, 4.26992e-08, 1.3, 1, -1.0192e-08, -0.233165, 0.972437, 4.25066e-08, 1.33333, 1, -1.10149e-08, -0.251992, 0.967729, 4.23008e-08, 1.36667, 1, -1.18141e-08, -0.270276, 0.962783, 4.20846e-08, 1.4, 1, -1.25924e-08, -0.28808, 0.957606, 4.18583e-08, 1.43333, 1, -1.33482e-08, -0.305372, 0.952233, 4.16234e-08, 1.46667, 1, -1.40805e-08, -0.322123, 0.946698, 4.13815e-08, 1.5, 1, -1.47877e-08, -0.338304, 0.941037, 4.1134e-08, 1.53333, 1, -1.54607e-08, -0.3537, 0.935359, 4.08858e-08, 1.56667, 1, -1.61052e-08, -0.368443, 0.92965, 4.06363e-08, 1.6, 1, -1.672e-08, -0.38251, 0.923952, 4.03872e-08, 1.63333, 1, -1.73043e-08, -0.395877, 0.918304, 4.01403e-08, 1.66667, 1, -1.7857e-08, -0.408522, 0.912749, 3.98975e-08, 1.7, 1, -1.83668e-08, -0.420182, 0.90744, 3.96655e-08, 1.73333, 1, -1.88419e-08, -0.431053, 0.902327, 3.9442e-08, 1.76667, 1, -1.92817e-08, -0.441114, 0.897451, 3.92288e-08, 1.8, 1, -1.96853e-08, -0.450347, 0.892853, 3.90279e-08, 1.83333, 1, -2.00519e-08, -0.458733, 0.888574, 3.88408e-08, 1.86667, 1, -2.03677e-08, -0.465959, 0.884806, 3.86761e-08, 1.9, 1, -2.06437e-08, -0.472274, 0.881452, 3.85295e-08, 1.93333, 1, -2.08791e-08, -0.477657, 0.878546, 3.84025e-08, 1.96667, 1, -2.10728e-08, -0.482089, 0.876122, 3.82965e-08, 2, 1, -2.1224e-08, -0.485549, 0.87421, 3.82129e-08, 2.03333, 1, -2.13164e-08, -0.487663, 0.873032, 3.81614e-08, 2.06667, 1, -2.1363e-08, -0.488729, 0.872436, 3.81354e-08, 2.1, 1, -2.13648e-08, -0.48877, 0.872413, 3.81344e-08, 2.13333, 1, -2.13236e-08, -0.487826, 0.872941, 3.81574e-08, 2.16667, 1, -2.12417e-08, -0.485953, 0.873985, 3.82031e-08, 2.2, 1, -2.11076e-08, -0.482886, 0.875683, 3.82773e-08, 2.23333, 1, -2.09357e-08, -0.478954, 0.87784, 3.83716e-08, 2.26667, 1, -2.07268e-08, -0.474174, 0.880431, 3.84849e-08, 2.3, 1, -2.04816e-08, -0.468564, 0.88343, 3.86159e-08, 2.33333, 1, -2.02008e-08, -0.46214, 0.886807, 3.87636e-08, 2.36667, 1, -1.98746e-08, -0.454678, 0.890656, 3.89318e-08, 2.4, 1, -1.95152e-08, -0.446457, 0.894805, 3.91132e-08, 2.43333, 1, -1.91234e-08, -0.437492, 0.899222, 3.93063e-08, 2.46667, 1, -1.86997e-08, -0.427799, 0.903874, 3.95096e-08, 2.5, 1, -1.82448e-08, -0.417393, 0.908726, 3.97217e-08, 2.53333, 1, -1.7751e-08, -0.406095, 0.913831, 3.99448e-08, 2.56667, 1, -1.72285e-08, -0.394141, 0.91905, 4.01729e-08, 2.6, 1, -1.6678e-08, -0.381548, 0.924349, 4.04046e-08, 2.63333, 1, -1.61005e-08, -0.368336, 0.929693, 4.06382e-08, 2.66667, 1, -1.54967e-08, -0.354522, 0.935048, 4.08722e-08, 2.7, 1, -1.48609e-08, -0.339977, 0.940434, 4.11077e-08, 2.73333, 1, -1.42017e-08, -0.324898, 0.945749, 4.134e-08, 2.76667, 1, -1.35202e-08, -0.309305, 0.950963, 4.15679e-08, 2.8, 1, -1.28172e-08, -0.293224, 0.956044, 4.179e-08, 2.83333, 1, -1.2094e-08, -0.27668, 0.960962, 4.2005e-08, 2.86667, 1, -1.13473e-08, -0.259596, 0.965717, 4.22128e-08, 2.9, 1, -1.05837e-08, -0.242128, 0.970244, 4.24107e-08, 2.93333, 1, -9.8046e-09, -0.224303, 0.974519, 4.25976e-08, 2.96667, 1, -9.01116e-09, -0.206151, 0.97852, 4.27725e-08, 3, 1, -8.20478e-09, -0.187703, 0.982226, 4.29344e-08, 3.1, 1, -5.71906e-09, -0.130837, 0.991404, 4.33356e-08, 3.3, 1, -6.33733e-10, -0.0144981, 0.999895, 4.37068e-08, 3.33333, 1, 2.08187e-10, 0.00476275, 0.999989, 4.37109e-08, 3.4, 1, 1.8663e-09, 0.042696, 0.999088, 4.36715e-08, 3.43333, 1, 2.68101e-09, 0.0613344, 0.998117, 4.36291e-08, 3.46667, 1, 3.4842e-09, 0.0797091, 0.996818, 4.35723e-08, 3.5, 1, 4.27441e-09, 0.0977871, 0.995207, 4.35019e-08, 3.53333, 1, 5.04512e-09, 0.115419, 0.993317, 4.34193e-08, 3.56667, 1, 5.79889e-09, 0.132663, 0.991161, 4.3325e-08, 3.6, 1, 6.5344e-09, 0.14949, 0.988763, 4.32202e-08, 3.63333, 1, 7.25037e-09, 0.165869, 0.986148, 4.31059e-08, 3.66667, 1, 7.94551e-09, 0.181772, 0.983341, 4.29832e-08, 3.7, 1, 8.6112e-09, 0.197001, 0.980403, 4.28548e-08, 3.73333, 1, 9.25256e-09, 0.211674, 0.97734, 4.27209e-08, 3.76667, 1, 9.86847e-09, 0.225764, 0.974182, 4.25828e-08, 3.8, 1, 1.04579e-08, 0.239248, 0.970959, 4.24419e-08, 3.83333, 1, 1.10197e-08, 0.252101, 0.967701, 4.22996e-08, 3.86667, 1, 1.15432e-08, 0.264078, 0.964501, 4.21597e-08, 3.9, 1, 1.20361e-08, 0.275354, 0.961343, 4.20216e-08, 3.93333, 1, 1.24974e-08, 0.285907, 0.958257, 4.18868e-08, 3.96667, 1, 1.29261e-08, 0.295715, 0.955276, 4.17564e-08, 4, 1, 1.33214e-08, 0.304758, 0.95243, 4.1632e-08, 4.03333, 1, 1.36705e-08, 0.312744, 0.949837, 4.15187e-08, 4.06667, 1, 1.39832e-08, 0.319899, 0.947452, 4.14144e-08, 4.1, 1, 1.42587e-08, 0.326202, 0.9453, 4.13204e-08, 4.13333, 1, 1.44961e-08, 0.331632, 0.943409, 4.12377e-08, 4.16667, 1, 1.46943e-08, 0.336167, 0.941802, 4.11675e-08, 4.2, 1, 1.48386e-08, 0.339467, 0.940618, 4.11157e-08, 4.23333, 1, 1.49407e-08, 0.341803, 0.939772, 4.10787e-08, 4.26667, 1, 1.49996e-08, 0.343152, 0.93928, 4.10572e-08, 4.29167, 1, 1.5022e-08, 0.343664, 0.939093, 4.1049e-08) +tracks/1/type = "rotation_3d" +tracks/1/imported = true +tracks/1/enabled = true +tracks/1/path = NodePath("2_003") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/2/type = "rotation_3d" +tracks/2/imported = true +tracks/2/enabled = true +tracks/2/path = NodePath("2_001") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/3/type = "rotation_3d" +tracks/3/imported = true +tracks/3/enabled = true +tracks/3/path = NodePath("2_005") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/4/type = "rotation_3d" +tracks/4/imported = true +tracks/4/enabled = true +tracks/4/path = NodePath("2_006") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/5/type = "rotation_3d" +tracks/5/imported = true +tracks/5/enabled = true +tracks/5/path = NodePath("2_004") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) + +[sub_resource type="Animation" id="Animation_ary32"] +resource_name = "2_001Action_004" +length = 4.29167 +tracks/0/type = "rotation_3d" +tracks/0/imported = true +tracks/0/enabled = true +tracks/0/path = NodePath("2_004") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = PackedFloat32Array(0, 1, 1.5249e-08, 0.348856, 0.937176, 4.09653e-08, 0.0333333, 1, 1.52153e-08, 0.348086, 0.937463, 4.09778e-08, 0.0666667, 1, 1.51325e-08, 0.346191, 0.938164, 4.10085e-08, 0.1, 1, 1.50018e-08, 0.3432, 0.939262, 4.10565e-08, 0.133333, 1, 1.48243e-08, 0.33914, 0.940736, 4.11209e-08, 0.166667, 1, 1.46013e-08, 0.334038, 0.942559, 4.12006e-08, 0.2, 1, 1.43201e-08, 0.327605, 0.944815, 4.12992e-08, 0.233333, 1, 1.39968e-08, 0.32021, 0.947346, 4.14098e-08, 0.266667, 1, 1.36326e-08, 0.311878, 0.950122, 4.15311e-08, 0.3, 1, 1.32285e-08, 0.302634, 0.953107, 4.16616e-08, 0.333333, 1, 1.27856e-08, 0.2925, 0.956265, 4.17997e-08, 0.366667, 1, 1.22937e-08, 0.281248, 0.959635, 4.1947e-08, 0.4, 1, 1.17665e-08, 0.269186, 0.963088, 4.20979e-08, 0.433333, 1, 1.12051e-08, 0.256342, 0.966586, 4.22508e-08, 0.466667, 1, 1.06106e-08, 0.242742, 0.970091, 4.2404e-08, 0.5, 1, 9.98422e-09, 0.228412, 0.973564, 4.25558e-08, 0.533333, 1, 9.31873e-09, 0.213188, 0.977011, 4.27065e-08, 0.566667, 1, 8.62527e-09, 0.197323, 0.980339, 4.2852e-08, 0.6, 1, 7.9052e-09, 0.18085, 0.983511, 4.29906e-08, 0.633333, 1, 7.15993e-09, 0.1638, 0.986494, 4.3121e-08, 0.666667, 1, 6.39091e-09, 0.146207, 0.989254, 4.32417e-08, 0.7, 1, 5.59387e-09, 0.127973, 0.991778, 4.3352e-08, 0.733333, 1, 4.77757e-09, 0.109298, 0.994009, 4.34495e-08, 0.766667, 1, 3.94363e-09, 0.0902198, 0.995922, 4.35331e-08, 0.8, 1, 3.09372e-09, 0.070776, 0.997492, 4.36018e-08, 0.833333, 1, 2.22954e-09, 0.051006, 0.998698, 4.36545e-08, 0.9, 1, 4.61058e-10, 0.0105478, 0.999944, 4.3709e-08, 1.1, 1, -4.96032e-09, -0.113479, 0.99354, 4.3429e-08, 1.16667, 1, -6.74976e-09, -0.154416, 0.988006, 4.31871e-08, 1.23333, 1, -8.49769e-09, -0.194404, 0.980921, 4.28774e-08, 1.26667, 1, -9.35236e-09, -0.213957, 0.976843, 4.26992e-08, 1.3, 1, -1.0192e-08, -0.233165, 0.972437, 4.25066e-08, 1.33333, 1, -1.10149e-08, -0.251992, 0.967729, 4.23008e-08, 1.36667, 1, -1.18141e-08, -0.270276, 0.962783, 4.20846e-08, 1.4, 1, -1.25924e-08, -0.28808, 0.957606, 4.18583e-08, 1.43333, 1, -1.33482e-08, -0.305372, 0.952233, 4.16234e-08, 1.46667, 1, -1.40805e-08, -0.322123, 0.946698, 4.13815e-08, 1.5, 1, -1.47877e-08, -0.338304, 0.941037, 4.1134e-08, 1.53333, 1, -1.54607e-08, -0.3537, 0.935359, 4.08858e-08, 1.56667, 1, -1.61052e-08, -0.368443, 0.92965, 4.06363e-08, 1.6, 1, -1.672e-08, -0.38251, 0.923952, 4.03872e-08, 1.63333, 1, -1.73043e-08, -0.395877, 0.918304, 4.01403e-08, 1.66667, 1, -1.7857e-08, -0.408522, 0.912749, 3.98975e-08, 1.7, 1, -1.83668e-08, -0.420182, 0.90744, 3.96655e-08, 1.73333, 1, -1.88419e-08, -0.431053, 0.902327, 3.9442e-08, 1.76667, 1, -1.92817e-08, -0.441114, 0.897451, 3.92288e-08, 1.8, 1, -1.96853e-08, -0.450347, 0.892853, 3.90279e-08, 1.83333, 1, -2.00519e-08, -0.458733, 0.888574, 3.88408e-08, 1.86667, 1, -2.03677e-08, -0.465959, 0.884806, 3.86761e-08, 1.9, 1, -2.06437e-08, -0.472274, 0.881452, 3.85295e-08, 1.93333, 1, -2.08791e-08, -0.477657, 0.878546, 3.84025e-08, 1.96667, 1, -2.10728e-08, -0.482089, 0.876122, 3.82965e-08, 2, 1, -2.1224e-08, -0.485549, 0.87421, 3.82129e-08, 2.03333, 1, -2.13164e-08, -0.487663, 0.873032, 3.81614e-08, 2.06667, 1, -2.1363e-08, -0.488729, 0.872436, 3.81354e-08, 2.1, 1, -2.13648e-08, -0.48877, 0.872413, 3.81344e-08, 2.13333, 1, -2.13236e-08, -0.487826, 0.872941, 3.81574e-08, 2.16667, 1, -2.12417e-08, -0.485953, 0.873985, 3.82031e-08, 2.2, 1, -2.11076e-08, -0.482886, 0.875683, 3.82773e-08, 2.23333, 1, -2.09357e-08, -0.478954, 0.87784, 3.83716e-08, 2.26667, 1, -2.07268e-08, -0.474174, 0.880431, 3.84849e-08, 2.3, 1, -2.04816e-08, -0.468564, 0.88343, 3.86159e-08, 2.33333, 1, -2.02008e-08, -0.46214, 0.886807, 3.87636e-08, 2.36667, 1, -1.98746e-08, -0.454678, 0.890656, 3.89318e-08, 2.4, 1, -1.95152e-08, -0.446457, 0.894805, 3.91132e-08, 2.43333, 1, -1.91234e-08, -0.437492, 0.899222, 3.93063e-08, 2.46667, 1, -1.86997e-08, -0.427799, 0.903874, 3.95096e-08, 2.5, 1, -1.82448e-08, -0.417393, 0.908726, 3.97217e-08, 2.53333, 1, -1.7751e-08, -0.406095, 0.913831, 3.99448e-08, 2.56667, 1, -1.72285e-08, -0.394141, 0.91905, 4.01729e-08, 2.6, 1, -1.6678e-08, -0.381548, 0.924349, 4.04046e-08, 2.63333, 1, -1.61005e-08, -0.368336, 0.929693, 4.06382e-08, 2.66667, 1, -1.54967e-08, -0.354522, 0.935048, 4.08722e-08, 2.7, 1, -1.48609e-08, -0.339977, 0.940434, 4.11077e-08, 2.73333, 1, -1.42017e-08, -0.324898, 0.945749, 4.134e-08, 2.76667, 1, -1.35202e-08, -0.309305, 0.950963, 4.15679e-08, 2.8, 1, -1.28172e-08, -0.293224, 0.956044, 4.179e-08, 2.83333, 1, -1.2094e-08, -0.27668, 0.960962, 4.2005e-08, 2.86667, 1, -1.13473e-08, -0.259596, 0.965717, 4.22128e-08, 2.9, 1, -1.05837e-08, -0.242128, 0.970244, 4.24107e-08, 2.93333, 1, -9.8046e-09, -0.224303, 0.974519, 4.25976e-08, 2.96667, 1, -9.01116e-09, -0.206151, 0.97852, 4.27725e-08, 3, 1, -8.20478e-09, -0.187703, 0.982226, 4.29344e-08, 3.1, 1, -5.71906e-09, -0.130837, 0.991404, 4.33356e-08, 3.3, 1, -6.33733e-10, -0.0144981, 0.999895, 4.37068e-08, 3.33333, 1, 2.08187e-10, 0.00476275, 0.999989, 4.37109e-08, 3.4, 1, 1.8663e-09, 0.042696, 0.999088, 4.36715e-08, 3.43333, 1, 2.68101e-09, 0.0613344, 0.998117, 4.36291e-08, 3.46667, 1, 3.4842e-09, 0.0797091, 0.996818, 4.35723e-08, 3.5, 1, 4.27441e-09, 0.0977871, 0.995207, 4.35019e-08, 3.53333, 1, 5.04512e-09, 0.115419, 0.993317, 4.34193e-08, 3.56667, 1, 5.79889e-09, 0.132663, 0.991161, 4.3325e-08, 3.6, 1, 6.5344e-09, 0.14949, 0.988763, 4.32202e-08, 3.63333, 1, 7.25037e-09, 0.165869, 0.986148, 4.31059e-08, 3.66667, 1, 7.94551e-09, 0.181772, 0.983341, 4.29832e-08, 3.7, 1, 8.6112e-09, 0.197001, 0.980403, 4.28548e-08, 3.73333, 1, 9.25256e-09, 0.211674, 0.97734, 4.27209e-08, 3.76667, 1, 9.86847e-09, 0.225764, 0.974182, 4.25828e-08, 3.8, 1, 1.04579e-08, 0.239248, 0.970959, 4.24419e-08, 3.83333, 1, 1.10197e-08, 0.252101, 0.967701, 4.22996e-08, 3.86667, 1, 1.15432e-08, 0.264078, 0.964501, 4.21597e-08, 3.9, 1, 1.20361e-08, 0.275354, 0.961343, 4.20216e-08, 3.93333, 1, 1.24974e-08, 0.285907, 0.958257, 4.18868e-08, 3.96667, 1, 1.29261e-08, 0.295715, 0.955276, 4.17564e-08, 4, 1, 1.33214e-08, 0.304758, 0.95243, 4.1632e-08, 4.03333, 1, 1.36705e-08, 0.312744, 0.949837, 4.15187e-08, 4.06667, 1, 1.39832e-08, 0.319899, 0.947452, 4.14144e-08, 4.1, 1, 1.42587e-08, 0.326202, 0.9453, 4.13204e-08, 4.13333, 1, 1.44961e-08, 0.331632, 0.943409, 4.12377e-08, 4.16667, 1, 1.46943e-08, 0.336167, 0.941802, 4.11675e-08, 4.2, 1, 1.48386e-08, 0.339467, 0.940618, 4.11157e-08, 4.23333, 1, 1.49407e-08, 0.341803, 0.939772, 4.10787e-08, 4.26667, 1, 1.49996e-08, 0.343152, 0.93928, 4.10572e-08, 4.29167, 1, 1.5022e-08, 0.343664, 0.939093, 4.1049e-08) +tracks/1/type = "rotation_3d" +tracks/1/imported = true +tracks/1/enabled = true +tracks/1/path = NodePath("2_003") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/2/type = "rotation_3d" +tracks/2/imported = true +tracks/2/enabled = true +tracks/2/path = NodePath("2_001") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/3/type = "rotation_3d" +tracks/3/imported = true +tracks/3/enabled = true +tracks/3/path = NodePath("2_005") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/4/type = "rotation_3d" +tracks/4/imported = true +tracks/4/enabled = true +tracks/4/path = NodePath("2_006") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = PackedFloat32Array(0, 1, -9.36088e-16, -0.315819, 0.948819, 4.14742e-08) +tracks/5/type = "rotation_3d" +tracks/5/imported = true +tracks/5/enabled = true +tracks/5/path = NodePath("2_002") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = PackedFloat32Array(0, 1, 1.42158e-15, 0.348856, 0.937176, 4.09653e-08) + [sub_resource type="AnimationLibrary" id="AnimationLibrary_ficl2"] _data = { "2Action_003": SubResource("Animation_ayemw"), diff --git a/src/player/state/PlayerLogic.g.puml b/src/player/state/PlayerLogic.g.puml index e2145609..b83413f5 100644 --- a/src/player/state/PlayerLogic.g.puml +++ b/src/player/state/PlayerLogic.g.puml @@ -4,8 +4,8 @@ state "PlayerLogic State" as GameJamDungeon_PlayerLogic_State { state "Attacking" as GameJamDungeon_PlayerLogic_State_Attacking state "Idle" as GameJamDungeon_PlayerLogic_State_Idle } - state "Disabled" as GameJamDungeon_PlayerLogic_State_Disabled state "Dead" as GameJamDungeon_PlayerLogic_State_Dead + state "Disabled" as GameJamDungeon_PlayerLogic_State_Disabled } GameJamDungeon_PlayerLogic_State_Alive --> GameJamDungeon_PlayerLogic_State_Alive : Moved