diff --git a/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs b/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs index eedb4ee3e..dc6d8d9db 100644 --- a/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs +++ b/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs @@ -5,21 +5,21 @@ using Zennysoft.Ma.Adapter.Entity; namespace Zennysoft.Ma.Adapter; public interface IEquipmentComponent : IEntityComponent { - public IAutoProp EquippedWeapon { get; } + public IAutoProp EquippedWeapon { get; } - public IAutoProp EquippedArmor { get; } + public IAutoProp EquippedArmor { get; } - public IAutoProp EquippedAccessory { get; } + public IAutoProp EquippedAccessory { get; } - public IAutoProp EquippedAmmo { get; } + public IAutoProp EquippedAmmo { get; } - public void Equip(EquipableItem equipable); + public void Equip(IEquipableItem equipable); - public void Unequip(EquipableItem equipable); + public void Unequip(IEquipableItem equipable); - public bool IsItemEquipped(InventoryItem item); + public bool IsItemEquipped(IEquipableItem item); - public void UpdateEquipment(EquipableItem equipable); + public void UpdateEquipment(IEquipableItem equipable); public bool AugmentableEquipmentExists(); @@ -35,5 +35,5 @@ public interface IEquipmentComponent : IEntityComponent public ElementalResistanceSet ElementalResistance { get; } - public event Action EquipmentChanged; + public event Action EquipmentChanged; } diff --git a/Zennysoft.Game.Ma.Implementation/Components/IExperiencePointsComponent.cs b/Zennysoft.Game.Ma.Implementation/Components/IExperiencePointsComponent.cs index 09d9a2153..16ccdf399 100644 --- a/Zennysoft.Game.Ma.Implementation/Components/IExperiencePointsComponent.cs +++ b/Zennysoft.Game.Ma.Implementation/Components/IExperiencePointsComponent.cs @@ -16,6 +16,8 @@ public interface IExperiencePointsComponent : IEntityComponent public void Gain(int baseExpGain); + public void GainUnmodified(int flateRateExpGain); + public void LevelUp(); public event Action PlayerLevelUp; diff --git a/Zennysoft.Game.Ma.Implementation/Equipment/Augment.cs b/Zennysoft.Game.Ma.Implementation/Equipment/Augment.cs index ff4824cfb..a9c5e7c62 100644 --- a/Zennysoft.Game.Ma.Implementation/Equipment/Augment.cs +++ b/Zennysoft.Game.Ma.Implementation/Equipment/Augment.cs @@ -13,13 +13,6 @@ public class Augment public IAugmentType AugmentType { get; set; } } -public interface IAugmentType -{ - void Apply(); - - void Remove(); -} - public class HPRecoverySpeedAugment : IAugmentType { private readonly IPlayer _player; diff --git a/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs b/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs deleted file mode 100644 index ea8e19a4a..000000000 --- a/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Chickensoft.Introspection; -using Chickensoft.Serialization; -using Zennysoft.Ma.Adapter.Entity; - -namespace Zennysoft.Ma.Adapter; - -[Meta, Id("equipable_item")] -public abstract partial class EquipableItem : InventoryItem -{ - [Save("bonus_attack_stats")] - public virtual int BonusAttack { get; } - [Save("bonus_defense_stats")] - public virtual int BonusDefense { get; } - [Save("bonus_hp_stats")] - public virtual int BonusHP { get; } - [Save("bonus_vt_stats")] - public virtual int BonusVT { get; } - [Save("bonus_luck_stats")] - public virtual int BonusLuck { get; } - - [Save("equipment_is_glued")] - public bool Glued { get; set; } - - public virtual Augment? Augment { get; set; } - - [Save("bonus_elemental_resist_stats")] - public virtual ElementalResistanceSet ElementalResistance { get; } = new ElementalResistanceSet(0, 0, 0, 0, 0, 0, 0); -} diff --git a/Zennysoft.Game.Ma.Implementation/Equipment/IAugmentType.cs b/Zennysoft.Game.Ma.Implementation/Equipment/IAugmentType.cs new file mode 100644 index 000000000..5c68b4005 --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Equipment/IAugmentType.cs @@ -0,0 +1,6 @@ +public interface IAugmentType +{ + void Apply(); + + void Remove(); +} diff --git a/Zennysoft.Game.Ma.Implementation/Equipment/InventoryItem.cs b/Zennysoft.Game.Ma.Implementation/Equipment/InventoryItem.cs deleted file mode 100644 index b9440a658..000000000 --- a/Zennysoft.Game.Ma.Implementation/Equipment/InventoryItem.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Chickensoft.Introspection; -using Chickensoft.Serialization; -using Godot; - -namespace Zennysoft.Ma.Adapter; - -[Meta, Id("inventory_item")] -public abstract partial class InventoryItem : Node3D -{ - [Save("inventory_item_id")] - public Guid ID => Guid.NewGuid(); - [Save("inventory_item_name")] - public abstract string ItemName { get; } - [Save("inventory_item_description")] - public abstract string Description { get; } - [Save("inventory_item_spawn_rate")] - public abstract float SpawnRate { get; } - [Save("inventory_item_throw_damage")] - public abstract int ThrowDamage { get; } - [Save("inventory_item_throw_speed")] - public abstract float ThrowSpeed { get; } - [Save("inventory_item_tag")] - public abstract ItemTag ItemTag { get; } - - public abstract Texture2D GetTexture(); -} diff --git a/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs b/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs index 5428428ff..80f696a37 100644 --- a/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs +++ b/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs @@ -20,7 +20,7 @@ public interface IGameRepo : IDisposable event Action? DoubleExpTimeEnd; - event Action? RemoveItemFromInventoryEvent; + event Action? RemoveItemFromInventoryEvent; event Action? PlayerAttack; @@ -28,9 +28,9 @@ public interface IGameRepo : IDisposable event Action? PlayerAttackedEnemy; - event Action? EquippedItem; + event Action? EquippedItem; - event Action? UnequippedItem; + event Action? UnequippedItem; event Action? EnemyDied; @@ -48,7 +48,7 @@ public interface IGameRepo : IDisposable public void AnnounceMessageInInventory(string message); - public void RemoveItemFromInventory(InventoryItem item); + public void RemoveItemFromInventory(IBaseInventoryItem item); public void OnPlayerAttack(); @@ -58,9 +58,9 @@ public interface IGameRepo : IDisposable public void GameEnded(); - public void OnEquippedItem(EquipableItem item); + public void OnEquippedItem(IEquipableItem item); - public void OnUnequippedItem(EquipableItem item); + public void OnUnequippedItem(IEquipableItem item); public void OnEnemyDied(IEnemy enemy); @@ -75,12 +75,12 @@ public class GameRepo : IGameRepo public event Action? AnnounceMessageInInventoryEvent; public event Action? DoubleExpTimeStart; public event Action? DoubleExpTimeEnd; - public event Action? RemoveItemFromInventoryEvent; + public event Action? RemoveItemFromInventoryEvent; public event Action? PlayerAttack; public event Action? PlayerAttackedWall; public event Action? PlayerAttackedEnemy; - public event Action? EquippedItem; - public event Action? UnequippedItem; + public event Action? EquippedItem; + public event Action? UnequippedItem; public event Action? EnemyDied; public IAutoProp IsPaused => _isPaused; private readonly AutoProp _isPaused; @@ -131,7 +131,7 @@ public class GameRepo : IGameRepo AnnounceMessageInInventoryEvent?.Invoke(message); } - public void RemoveItemFromInventory(InventoryItem item) + public void RemoveItemFromInventory(IBaseInventoryItem item) { RemoveItemFromInventoryEvent?.Invoke(item); } @@ -151,9 +151,9 @@ public class GameRepo : IGameRepo CloseInventoryEvent?.Invoke(); } - public void OnEquippedItem(EquipableItem item) => EquippedItem?.Invoke(item); + public void OnEquippedItem(IEquipableItem item) => EquippedItem?.Invoke(item); - public void OnUnequippedItem(EquipableItem item) => UnequippedItem?.Invoke(item); + public void OnUnequippedItem(IEquipableItem item) => UnequippedItem?.Invoke(item); public void OnEnemyDied(IEnemy enemy) => EnemyDied?.Invoke(enemy); diff --git a/Zennysoft.Game.Ma.Implementation/Item/IAccessory.cs b/Zennysoft.Game.Ma.Implementation/Item/IAccessory.cs new file mode 100644 index 000000000..6b7f40620 --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Item/IAccessory.cs @@ -0,0 +1,5 @@ +using Zennysoft.Ma.Adapter; + +public interface IAccessory : IEquipableItem, IAugmentableItem +{ +} diff --git a/Zennysoft.Game.Ma.Implementation/Item/IArmor.cs b/Zennysoft.Game.Ma.Implementation/Item/IArmor.cs new file mode 100644 index 000000000..46a0b0b42 --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Item/IArmor.cs @@ -0,0 +1,5 @@ +using Zennysoft.Ma.Adapter; + +public interface IArmor : IEquipableItem, IAugmentableItem +{ +} diff --git a/Zennysoft.Game.Ma.Implementation/Item/IAugmentItem.cs b/Zennysoft.Game.Ma.Implementation/Item/IAugmentItem.cs index e0455f330..1d261d487 100644 --- a/Zennysoft.Game.Ma.Implementation/Item/IAugmentItem.cs +++ b/Zennysoft.Game.Ma.Implementation/Item/IAugmentItem.cs @@ -1,7 +1,5 @@ -namespace Zennysoft.Ma.Adapter +public interface IAugmentItem : IBaseInventoryItem { - public interface IAugmentItem - { - public JewelTags Augment { get; } - } + + public IAugmentType Augment { get; } } diff --git a/Zennysoft.Game.Ma.Implementation/Item/IAugmentableItem.cs b/Zennysoft.Game.Ma.Implementation/Item/IAugmentableItem.cs new file mode 100644 index 000000000..c2985e198 --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Item/IAugmentableItem.cs @@ -0,0 +1,7 @@ +namespace Zennysoft.Ma.Adapter +{ + public interface IAugmentableItem + { + public Augment? Augment { get; } + } +} diff --git a/Zennysoft.Game.Ma.Implementation/Item/IBaseInventoryItem.cs b/Zennysoft.Game.Ma.Implementation/Item/IBaseInventoryItem.cs new file mode 100644 index 000000000..dfd0abe45 --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Item/IBaseInventoryItem.cs @@ -0,0 +1,15 @@ + +using Godot; +using Zennysoft.Ma.Adapter; + +public interface IBaseInventoryItem +{ + public string ItemName { get; } + public string Description { get; } + public float SpawnRate { get; } + public int ThrowDamage { get; } + public float ThrowSpeed { get; } + public ItemTag ItemTag { get; } + + public abstract Texture2D GetTexture(); +} \ No newline at end of file diff --git a/Zennysoft.Game.Ma.Implementation/Item/IDroppedItem.cs b/Zennysoft.Game.Ma.Implementation/Item/IDroppedItem.cs index 451d4450e..3351790bf 100644 --- a/Zennysoft.Game.Ma.Implementation/Item/IDroppedItem.cs +++ b/Zennysoft.Game.Ma.Implementation/Item/IDroppedItem.cs @@ -4,6 +4,6 @@ { void RescueItem(); - public InventoryItem Item { get; } + public IBaseInventoryItem Item { get; } } } diff --git a/Zennysoft.Game.Ma.Implementation/Item/IEquipableItem.cs b/Zennysoft.Game.Ma.Implementation/Item/IEquipableItem.cs new file mode 100644 index 000000000..9ab5dd5d9 --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Item/IEquipableItem.cs @@ -0,0 +1,14 @@ +using Zennysoft.Ma.Adapter.Entity; + +public interface IEquipableItem : IBaseInventoryItem +{ + public int BonusAttack { get; } + public int BonusDefense { get; } + public int BonusHP { get; } + public int BonusVT { get; } + public int BonusLuck { get; } + + public bool Glued { get; set; } + + public ElementalResistanceSet ElementalResistance { get; } +} diff --git a/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs b/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs index 01b6218fe..09ed03437 100644 --- a/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs +++ b/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs @@ -2,17 +2,17 @@ public interface IInventory { - public bool PickUpItem(InventoryItem item); + public bool PickUpItem(IBaseInventoryItem item); - public List Items { get; } + public List Items { get; } - public bool TryAdd(InventoryItem inventoryItem); + public bool TryAdd(IBaseInventoryItem inventoryItem); - public bool TryInsert(InventoryItem inventoryItem, int index); + public bool TryInsert(IBaseInventoryItem inventoryItem, int index); - public void Remove(InventoryItem inventoryItem); + public void Remove(IBaseInventoryItem inventoryItem); - public bool Sort(EquipableItem currentWeapon, EquipableItem currentArmor, EquipableItem currentAccessory, EquipableItem ammo); + public bool Sort(IWeapon currentWeapon, IArmor currentArmor, IAccessory currentAccessory, IEquipableItem ammo); public bool AtCapacity(); diff --git a/Zennysoft.Game.Ma.Implementation/Item/IThrownItem.cs b/Zennysoft.Game.Ma.Implementation/Item/IThrownItem.cs index 18181b2c2..8a8643742 100644 --- a/Zennysoft.Game.Ma.Implementation/Item/IThrownItem.cs +++ b/Zennysoft.Game.Ma.Implementation/Item/IThrownItem.cs @@ -2,5 +2,5 @@ public interface IThrownItem { - public InventoryItem ItemThatIsThrown { get; set; } + public IBaseInventoryItem ItemThatIsThrown { get; set; } } diff --git a/Zennysoft.Game.Ma.Implementation/Item/IWeapon.cs b/Zennysoft.Game.Ma.Implementation/Item/IWeapon.cs new file mode 100644 index 000000000..e85bef537 --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Item/IWeapon.cs @@ -0,0 +1,5 @@ +using Zennysoft.Ma.Adapter; + +public interface IWeapon : IEquipableItem, IAugmentableItem +{ +} diff --git a/Zennysoft.Game.Ma.Implementation/Item/RescuedItemDatabase.cs b/Zennysoft.Game.Ma.Implementation/Item/RescuedItemDatabase.cs index 17864dae7..2fbb225f9 100644 --- a/Zennysoft.Game.Ma.Implementation/Item/RescuedItemDatabase.cs +++ b/Zennysoft.Game.Ma.Implementation/Item/RescuedItemDatabase.cs @@ -7,10 +7,10 @@ namespace Zennysoft.Ma.Adapter; public partial class RescuedItemDatabase { [Save("rescued_item_list")] - public List Items { get; init; } + public List Items { get; init; } public RescuedItemDatabase() { - Items = new List(); + Items = new List(); } } diff --git a/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs b/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs index 798018727..6130ab861 100644 --- a/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs +++ b/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs @@ -20,15 +20,15 @@ public interface IPlayer : IKillable, ICharacterBody3D public void TeleportPlayer((Vector3 Rotation, Vector3 Position) newTransform); - public void Equip(EquipableItem equipable); + public void Equip(IEquipableItem equipable); - public void Unequip(EquipableItem equipable); + public void Unequip(IEquipableItem equipable); public void PlayJumpScareAnimation(); - public void ApplyNewAugment(IAugmentItem jewel, EquipableItem equipableItem); + public void ApplyNewAugment(IAugmentItem jewel, IAugmentableItem equipableItem); - public void IdentifyItem(InventoryItem unidentifiedItem); + public void IdentifyItem(IBaseInventoryItem unidentifiedItem); public IInventory Inventory { get; } @@ -63,5 +63,5 @@ public interface IPlayer : IKillable, ICharacterBody3D public bool AutoIdentifyItems { get; set; } public event Action PlayerDied; - public delegate InventoryItem RerollItem(InventoryItem item); + public delegate IBaseInventoryItem RerollItem(IBaseInventoryItem item); } diff --git a/Zennysoft.Game.Ma.Implementation/UI/InGameUI/InGameUILogic.State.cs b/Zennysoft.Game.Ma.Implementation/UI/InGameUI/InGameUILogic.State.cs index 58410f930..8b7e874fe 100644 --- a/Zennysoft.Game.Ma.Implementation/UI/InGameUI/InGameUILogic.State.cs +++ b/Zennysoft.Game.Ma.Implementation/UI/InGameUI/InGameUILogic.State.cs @@ -38,7 +38,7 @@ public partial class InGameUILogic Output(new Output.AnnounceMessageInInventory(message)); } - private void OnRemoveItemFromInventory(InventoryItem item) => Output(new Output.RemoveItemFromInventory(item)); + private void OnRemoveItemFromInventory(IBaseInventoryItem item) => Output(new Output.RemoveItemFromInventory(item)); } } diff --git a/Zennysoft.Game.Ma.Implementation/UI/InGameUI/state/InGameUILogic.Output.cs b/Zennysoft.Game.Ma.Implementation/UI/InGameUI/state/InGameUILogic.Output.cs index b6b12f272..bad97d001 100644 --- a/Zennysoft.Game.Ma.Implementation/UI/InGameUI/state/InGameUILogic.Output.cs +++ b/Zennysoft.Game.Ma.Implementation/UI/InGameUI/state/InGameUILogic.Output.cs @@ -8,7 +8,7 @@ public partial class InGameUILogic { public readonly record struct AnnounceMessageOnMainScreen(string Message); public readonly record struct AnnounceMessageInInventory(string Message); - public readonly record struct RemoveItemFromInventory(InventoryItem Item); + public readonly record struct RemoveItemFromInventory(IBaseInventoryItem Item); public readonly record struct ShowInventory; public readonly record struct HideInventory; } diff --git a/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs b/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs index 27e6b5a94..497fce284 100644 --- a/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs +++ b/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs @@ -6,23 +6,23 @@ using Zennysoft.Ma.Adapter.Entity; namespace Zennysoft.Game.Ma; public class EquipmentComponent : IEquipmentComponent { - public IAutoProp EquippedWeapon => _equippedWeapon; + public IAutoProp EquippedWeapon => _equippedWeapon; - public IAutoProp EquippedArmor => _equippedArmor; + public IAutoProp EquippedArmor => _equippedArmor; - public IAutoProp EquippedAccessory => _equippedAccessory; + public IAutoProp EquippedAccessory => _equippedAccessory; - public IAutoProp EquippedAmmo => _equippedAmmo; + public IAutoProp EquippedAmmo => _equippedAmmo; - public AutoProp _equippedWeapon; + public AutoProp _equippedWeapon; - public AutoProp _equippedArmor; + public AutoProp _equippedArmor; - public AutoProp _equippedAccessory; + public AutoProp _equippedAccessory; - public AutoProp _equippedAmmo; + public AutoProp _equippedAmmo; - public event Action EquipmentChanged; + public event Action EquipmentChanged; public int BonusAttack => _equippedWeapon.Value.BonusAttack + _equippedArmor.Value.BonusAttack + _equippedAccessory.Value.BonusAttack; @@ -38,10 +38,10 @@ public class EquipmentComponent : IEquipmentComponent public EquipmentComponent() { - _equippedWeapon = new AutoProp(new Weapon()); - _equippedArmor = new AutoProp(new Armor()); - _equippedAccessory = new AutoProp(new Accessory()); - _equippedAmmo = new AutoProp(new Ammo()); + _equippedWeapon = new AutoProp(new Weapon()); + _equippedArmor = new AutoProp(new Armor()); + _equippedAccessory = new AutoProp(new Accessory()); + _equippedAmmo = new AutoProp(new Ammo()); } public void Reset() @@ -52,7 +52,7 @@ public class EquipmentComponent : IEquipmentComponent _equippedAmmo.OnNext(new Ammo()); } - public void Equip(EquipableItem equipable) + public void Equip(IEquipableItem equipable) { if (equipable is Weapon weapon) _equippedWeapon.OnNext(weapon); @@ -65,7 +65,7 @@ public class EquipmentComponent : IEquipmentComponent EquipmentChanged?.Invoke(equipable); } - public void Unequip(EquipableItem equipable) + public void Unequip(IEquipableItem equipable) { if (equipable is Weapon weapon) _equippedWeapon.OnNext(new Weapon()); @@ -78,15 +78,12 @@ public class EquipmentComponent : IEquipmentComponent EquipmentChanged?.Invoke(equipable); } - public bool IsItemEquipped(InventoryItem item) + public bool IsItemEquipped(IEquipableItem item) { - if (item is not EquipableItem) - return false; - return item == _equippedWeapon.Value || item == _equippedArmor.Value || item == _equippedAccessory.Value || item == _equippedAmmo.Value; } - public void UpdateEquipment(EquipableItem equipable) => EquipmentChanged?.Invoke(equipable); + public void UpdateEquipment(IEquipableItem equipable) => EquipmentChanged?.Invoke(equipable); public bool AugmentableEquipmentExists() { diff --git a/Zennysoft.Game.Ma/src/Components/ExperiencePointsComponent.cs b/Zennysoft.Game.Ma/src/Components/ExperiencePointsComponent.cs index 1fee4d89b..17952b3a5 100644 --- a/Zennysoft.Game.Ma/src/Components/ExperiencePointsComponent.cs +++ b/Zennysoft.Game.Ma/src/Components/ExperiencePointsComponent.cs @@ -51,6 +51,16 @@ public class ExperiencePointsComponent : IExperiencePointsComponent var cappedAmount = Math.Min(baseExpGain + _currentExp.Value, _expToNextLevel.Value); _currentExp.OnNext(cappedAmount); } + + public void GainUnmodified(int flatRateExp) + { + var newCurrentExpTotal = flatRateExp + _currentExp.Value; + while (flatRateExp + _currentExp.Value >= _expToNextLevel.Value) + LevelUp(); + var cappedAmount = Math.Min(flatRateExp + _currentExp.Value, _expToNextLevel.Value); + _currentExp.OnNext(cappedAmount); + } + public void ModifyExpGainRate(double newRate) => _expGainRate.OnNext(newRate); public void LevelUp() diff --git a/Zennysoft.Game.Ma/src/app/App.cs b/Zennysoft.Game.Ma/src/app/App.cs index 75afe463e..b9910e44f 100644 --- a/Zennysoft.Game.Ma/src/app/App.cs +++ b/Zennysoft.Game.Ma/src/app/App.cs @@ -146,7 +146,7 @@ public partial class App : Node, IApp }) .Handle((in AppLogic.Output.SetupGameScene _) => { - LoadingScreen.Show(); + LoadingScreen.ShowLoadingScreen(); LoadGame(GAME_SCENE_PATH); }) .Handle((in AppLogic.Output.ShowMainMenu _) => @@ -155,7 +155,7 @@ public partial class App : Node, IApp }) .Handle((in AppLogic.Output.CloseGame _) => { - LoadingScreen.Hide(); + LoadingScreen.HideLoadingScreen(); _game.GameExitRequested -= GameExitRequested; MainMenu.StartGameButton.GrabFocus(); _game.CallDeferred(MethodName.QueueFree, []); @@ -166,13 +166,13 @@ public partial class App : Node, IApp }) .Handle((in AppLogic.Output.EnemyViewerOpened _) => { - LoadingScreen.Show(); + LoadingScreen.ShowLoadingScreen(); MainMenu.Hide(); LoadEnemyViewer(ENEMY_VIEWER_PATH); }) .Handle((in AppLogic.Output.EnemyViewerExited _) => { - LoadingScreen.Hide(); + LoadingScreen.HideLoadingScreen(); if (_enemyViewer != null && _enemyViewer is DataViewer enemyViewer) enemyViewer.CallDeferred(MethodName.QueueFree); MainMenu.Show(); @@ -203,24 +203,22 @@ public partial class App : Node, IApp _game = scene as IGame; _game.GameLoaded += OnGameLoaded; _game.GameExitRequested += GameExitRequested; - await ToSignal(GetTree().CreateTimer(0.8f), "timeout"); CallDeferred(MethodName.AddChild, scene); } - private void OnGameLoaded() => LoadingScreen.Hide(); + private void OnGameLoaded() => LoadingScreen.HideLoadingScreen(); private async void LoadEnemyViewer(string sceneName) { var scene = await LoadSceneInternal(sceneName); _enemyViewer = scene as IDataViewer; - await ToSignal(GetTree().CreateTimer(0.8f), "timeout"); CallDeferred(MethodName.AddChild, scene); - LoadingScreen.Hide(); + LoadingScreen.HideLoadingScreen(); } private async Task LoadSceneInternal(string sceneName) { - LoadingScreen.Show(); + LoadingScreen.ShowLoadingScreen(); LoadingScreen.ProgressBar.Value = 0; var sceneLoader = new SceneLoader(); CallDeferred(MethodName.AddChild, sceneLoader); diff --git a/Zennysoft.Game.Ma/src/app/App.tscn b/Zennysoft.Game.Ma/src/app/App.tscn index d051ef24d..1a5f43e92 100644 --- a/Zennysoft.Game.Ma/src/app/App.tscn +++ b/Zennysoft.Game.Ma/src/app/App.tscn @@ -10,9 +10,16 @@ process_mode = 3 script = ExtResource("1_rt73h") +[node name="ColorRect" type="ColorRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) + [node name="MainMenu" parent="." instance=ExtResource("2_1uiag")] unique_name_in_owner = true -visible = false [node name="OptionsMenu" parent="." instance=ExtResource("2_v0mgf")] unique_name_in_owner = true @@ -24,5 +31,6 @@ visible = false [node name="LoadingScreen" parent="." instance=ExtResource("3_3st5l")] unique_name_in_owner = true +visible = false top_level = true z_index = 999 diff --git a/Zennysoft.Game.Ma/src/audio/SFXDatabase.tscn b/Zennysoft.Game.Ma/src/audio/SFXDatabase.tscn index ca600f796..019d4bf14 100644 --- a/Zennysoft.Game.Ma/src/audio/SFXDatabase.tscn +++ b/Zennysoft.Game.Ma/src/audio/SFXDatabase.tscn @@ -39,6 +39,7 @@ bus = &"SFX" [node name="MoveSound" type="AudioStreamPlayer" parent="UI"] unique_name_in_owner = true stream = ExtResource("6_r16t0") +max_polyphony = 5 bus = &"SFX" [node name="SelectSound" type="AudioStreamPlayer" parent="UI"] diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/Sproingy.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/Sproingy.tscn index 2992adf39..f74fd409a 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/Sproingy.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/Sproingy.tscn @@ -109,7 +109,6 @@ _acquireTargetTime = 2.0 unique_name_in_owner = true avoidance_enabled = true radius = 1.0 -debug_enabled = true [node name="SFX" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0617, 0) diff --git a/Zennysoft.Game.Ma/src/game/Game.cs b/Zennysoft.Game.Ma/src/game/Game.cs index 4438086a5..71962a804 100644 --- a/Zennysoft.Game.Ma/src/game/Game.cs +++ b/Zennysoft.Game.Ma/src/game/Game.cs @@ -7,7 +7,6 @@ using Chickensoft.SaveFileBuilder; using Godot; using System; using System.Text.Json; -using Zennysoft.Game.Abstractions; using Zennysoft.Ma.Adapter; using System.IO; using System.Threading.Tasks; @@ -158,9 +157,7 @@ public partial class Game : Node3D, IGame GameState.Set(_player); GameState.Set(_map); GameState.Set(InGameUI); - GameRepo.Resume(); - InGameUI.Show(); HandleGameLogic(); GameState.Start(); this.Provide(); @@ -189,6 +186,8 @@ public partial class Game : Node3D, IGame GameRepo.IsPaused.Sync += IsPaused_Sync; InGameUI.PlayerInfoUI.Activate(); + InGameUI.Show(); + GameRepo.Resume(); } private void GameRepo_EnemyDied(IEnemy obj) @@ -210,14 +209,13 @@ public partial class Game : Node3D, IGame _effectService = new EffectService(this, _player, _map); _player.Activate(); await _map.LoadFloor(); - GameLoaded?.Invoke(); } public async Task Save() => await SaveFile.Save(); public void FloorExitReached() => GameState.Input(new GameState.Input.FloorExitEntered()); - public async Task UseItem(InventoryItem item) + public async Task UseItem(IBaseInventoryItem item) { if (item.ItemTag == ItemTag.MysteryItem) _effectService.RerollItem(item); @@ -234,13 +232,10 @@ public partial class Game : Node3D, IGame EnactEffectItemEffects(effectItem); break; } - - await ToSignal(GetTree().CreateTimer(0.3f), "timeout"); - RemoveItemOrSubtractFromItemCount(item); } - public void DropItem(InventoryItem item) + public void DropItem(IBaseInventoryItem item) { var droppedScene = GD.Load("res://src/items/dropped/DroppedItem.tscn"); var dropped = droppedScene.Instantiate(); @@ -250,7 +245,7 @@ public partial class Game : Node3D, IGame _player.Inventory.Remove(item); } - public void SetItem(InventoryItem item) + public void SetItem(IBaseInventoryItem item) { var setScene = GD.Load("res://src/items/misc/SetItem.tscn"); var setItem = setScene.Instantiate(); @@ -259,7 +254,7 @@ public partial class Game : Node3D, IGame _player.Inventory.Remove(item); } - public void ThrowItem(InventoryItem item) + public void ThrowItem(IBaseInventoryItem item) { var thrownScene = GD.Load("res://src/items/thrown/ThrownItem.tscn"); var thrown = thrownScene.Instantiate(); @@ -399,7 +394,10 @@ public partial class Game : Node3D, IGame InGameUI.InventoryMenu.SetProcessInput(false); } - private async void LoadLevel() => await _map.LoadFloor(); + private async void LoadLevel() + { + await _map.LoadFloor(); + } private void FloorClearMenu_GoToNextFloor() => GameState.Input(new GameState.Input.LoadNextFloor()); @@ -420,7 +418,6 @@ public partial class Game : Node3D, IGame private void UseTeleportPrompt_TeleportToNextFloor() { - //_player.LookUp(); GameState.Input(new GameState.Input.UseTeleport()); } @@ -459,10 +456,10 @@ public partial class Game : Node3D, IGame _player.Inventory.TryAdd(_effectService.GetRandomItemOfType()); break; case ItemTag.DropTo1HPAndGainRareItem: - _effectService.DropTo1HPAndGainRareItem(); + _effectService.DropTo1HPAndGainRareItem(); break; case ItemTag.TradeAllRandomItems: - var newInventory = _effectService.TradeAllRandomItems(boxItem); + var newInventory = _effectService.TradeAllRandomItems(boxItem); _player.Inventory.Items.Clear(); _player.Inventory.TryAdd(boxItem); foreach (var item in newInventory) @@ -472,7 +469,7 @@ public partial class Game : Node3D, IGame _effectService.GetUnobtainedItem(); break; case ItemTag.ContainsBasicItem: - _effectService.GetBasicItem(); + _effectService.GetBasicItem(); break; case ItemTag.UnequipAllItems: _player.EquipmentComponent.Unequip(_player.EquipmentComponent.EquippedWeapon.Value); @@ -567,7 +564,7 @@ public partial class Game : Node3D, IGame } } - private void RemoveItemOrSubtractFromItemCount(InventoryItem item) + private void RemoveItemOrSubtractFromItemCount(IBaseInventoryItem item) { if (item is IStackable stackableItem && stackableItem.Count.Value > 1) stackableItem.SetCount(stackableItem.Count.Value - 1); @@ -589,6 +586,8 @@ public partial class Game : Node3D, IGame private void OnFloorLoadFinished() { LoadNextLevel.Hide(); + GameLoaded?.Invoke(); + _map.FadeIn(); } private void OnQuit() => GameExitRequested?.Invoke(); diff --git a/Zennysoft.Game.Ma/src/game/Game.tscn b/Zennysoft.Game.Ma/src/game/Game.tscn index cee46c7fb..dd945fa7d 100644 --- a/Zennysoft.Game.Ma/src/game/Game.tscn +++ b/Zennysoft.Game.Ma/src/game/Game.tscn @@ -11,11 +11,11 @@ process_mode = 3 script = ExtResource("1_ytcii") [node name="SubViewportContainer" type="SubViewportContainer" parent="."] -custom_minimum_size = Vector2(1440, 1080) +custom_minimum_size = Vector2(1456, 1080) anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_right = -480.0 +offset_right = -464.0 grow_horizontal = 2 grow_vertical = 2 stretch = true @@ -23,7 +23,7 @@ stretch = true [node name="SubViewport" type="SubViewport" parent="SubViewportContainer"] handle_input_locally = false audio_listener_enable_3d = true -size = Vector2i(1440, 1080) +size = Vector2i(1456, 1080) render_target_update_mode = 4 [node name="PauseContainer" type="Node3D" parent="SubViewportContainer/SubViewport"] diff --git a/Zennysoft.Game.Ma/src/game/IGame.cs b/Zennysoft.Game.Ma/src/game/IGame.cs index 41c859069..6c582da52 100644 --- a/Zennysoft.Game.Ma/src/game/IGame.cs +++ b/Zennysoft.Game.Ma/src/game/IGame.cs @@ -18,13 +18,13 @@ public interface IGame : IProvide, IProvide, IProvide public IDungeonFloor CurrentFloor { get; } - public Task UseItem(InventoryItem item); + public Task UseItem(IBaseInventoryItem item); - public void DropItem(InventoryItem item); + public void DropItem(IBaseInventoryItem item); - public void SetItem(InventoryItem item); + public void SetItem(IBaseInventoryItem item); - public void ThrowItem(InventoryItem item); + public void ThrowItem(IBaseInventoryItem item); public void FloorExitReached(); diff --git a/Zennysoft.Game.Ma/src/items/EffectService.cs b/Zennysoft.Game.Ma/src/items/EffectService.cs index 264870fe5..7b5aa19b4 100644 --- a/Zennysoft.Game.Ma/src/items/EffectService.cs +++ b/Zennysoft.Game.Ma/src/items/EffectService.cs @@ -172,7 +172,11 @@ public class EffectService SfxDatabase.Instance.Play(SoundEffect.IncreaseStat); } - public void RaiseLevel() => _player.LevelUp(); + public void RaiseLevel() + { + var expToNextLevel = _player.ExperiencePointsComponent.ExpToNextLevel.Value - _player.ExperiencePointsComponent.CurrentExp.Value; + _player.ExperiencePointsComponent.GainUnmodified(expToNextLevel); + } public void TeleportToRandomRoom(IEnemy enemy) { @@ -228,14 +232,14 @@ public class EffectService _player.TakeDamage(new AttackData(damage, ElementType.None, true, true)); } - public void RerollItem(InventoryItem itemToReroll) + public void RerollItem(IBaseInventoryItem itemToReroll) { var itemReroller = new ItemReroller(ItemDatabase.Instance); itemReroller.RerollItem(itemToReroll, _player.Inventory); } - public T GetRandomItemOfType(T itemToExclude = null) - where T : InventoryItem => ItemDatabase.Instance.PickItem(itemToExclude); + public T GetRandomItemOfType(params T[] itemsToExclude) + where T : IBaseInventoryItem => ItemDatabase.Instance.PickItem(itemsToExclude); public void RandomSpell() { @@ -243,38 +247,33 @@ public class EffectService } public void DropTo1HPAndGainRareItem() - where T : InventoryItem + where T : IBaseInventoryItem { _player.HealthComponent.SetCurrentHealth(1); _player.Inventory.TryAdd(ItemDatabase.Instance.PickRareItem()); } public void TradeRandomItem(BoxItem box) - where T : InventoryItem + where T : IBaseInventoryItem { - var tradableItems = _player.Inventory.Items.OfType().Where(x => x != box).ToList(); - + var tradableItems = _player.Inventory.Items.OfType().ToList(); var rng = new RandomNumberGenerator(); rng.Randomize(); var randomIndex = rng.RandiRange(0, tradableItems.Count - 1); var randomItem = tradableItems[randomIndex]; - if (randomItem is EquipableItem equipableItem) - { - if (_player.EquipmentComponent.IsItemEquipped(equipableItem)) - _player.Unequip(equipableItem); - } + if (randomItem is IEquipableItem equipableItem && _player.EquipmentComponent.IsItemEquipped(equipableItem)) + _player.Unequip(equipableItem); _player.Inventory.Remove(randomItem); GetRandomItemOfType(); } - public IEnumerable TradeAllRandomItems(BoxItem box) - where T : InventoryItem + public IEnumerable TradeAllRandomItems(BoxItem box) { - var newInventory = new List(); - var items = _player.Inventory.Items.OfType().Where(x => x != box).ToList(); + var newInventory = new List(); + var items = _player.Inventory.Items.ToList(); foreach (var item in items) - newInventory.Add(GetRandomItemOfType()); + newInventory.Add(GetRandomItemOfType()); return newInventory; } @@ -294,7 +293,7 @@ public class EffectService } public void GetBasicItem() - where T : InventoryItem + where T : IBaseInventoryItem { _player.Inventory.TryAdd(ItemDatabase.Instance.PickBasicItem()); } diff --git a/Zennysoft.Game.Ma/src/items/Inventory.cs b/Zennysoft.Game.Ma/src/items/Inventory.cs index 31e8aceb7..c5b682008 100644 --- a/Zennysoft.Game.Ma/src/items/Inventory.cs +++ b/Zennysoft.Game.Ma/src/items/Inventory.cs @@ -27,9 +27,9 @@ public partial class Inventory : Node, IInventory } [Save("inventory_items")] - public List Items { get; private set; } + public List Items { get; private set; } - public bool PickUpItem(InventoryItem item) + public bool PickUpItem(IBaseInventoryItem item) { var isAdded = TryAdd(item); if (isAdded) @@ -43,7 +43,7 @@ public partial class Inventory : Node, IInventory return isAdded; } - public bool TryAdd(InventoryItem inventoryItem) + public bool TryAdd(IBaseInventoryItem inventoryItem) { if (Items.Count >= _maxInventorySize) return false; @@ -55,7 +55,7 @@ public partial class Inventory : Node, IInventory public bool AtCapacity() => Items.Count >= _maxInventorySize; - public bool TryInsert(InventoryItem inventoryItem, int index) + public bool TryInsert(IBaseInventoryItem inventoryItem, int index) { if (Items.Count >= _maxInventorySize || index >= _maxInventorySize || index < 0) return false; @@ -65,20 +65,20 @@ public partial class Inventory : Node, IInventory return true; } - public void Remove(InventoryItem inventoryItem) + public void Remove(IBaseInventoryItem inventoryItem) { Items.Remove(inventoryItem); InventoryChanged?.Invoke(); } - public bool Sort(EquipableItem currentWeapon, EquipableItem currentArmor, EquipableItem currentAccessory, EquipableItem currentAmmo) + public bool Sort(IWeapon currentWeapon, IArmor currentArmor, IAccessory currentAccessory, IEquipableItem currentAmmo) { var initialList = Items; var equippedWeapon = Items.OfType().Where(x => x == currentWeapon); var equippedArmor = Items.OfType().Where(x => x == currentArmor); var equippedAccessory = Items.OfType().Where(x => x == currentAccessory); var equippedAmmo = Items.OfType().Where(x => x == currentAmmo); - var equippedItems = new List(); + var equippedItems = new List(); equippedItems.AddRange(equippedWeapon); equippedItems.AddRange(equippedArmor); equippedItems.AddRange(equippedAccessory); @@ -96,12 +96,12 @@ public partial class Inventory : Node, IInventory Items = [.. equippedItems, .. weapons, .. armor, .. accessories, .. ammo, .. consumables, .. throwables, .. effectItems, .. jewelItems, .. setItems]; var stackableItems = Items.OfType(); - var itemsToStack = stackableItems.GroupBy(x => ((InventoryItem)x).ItemName).Where(x => x.Count() > 1); + var itemsToStack = stackableItems.GroupBy(x => ((IBaseInventoryItem)x).ItemName).Where(x => x.Count() > 1); foreach (var itemStack in itemsToStack) { var firstItem = itemStack.First(); firstItem.SetCount(itemStack.Sum(x => x.Count.Value)); - var itemsToRemove = itemStack.Except([firstItem]).Cast(); + var itemsToRemove = itemStack.Except([firstItem]).Cast(); foreach (var item in itemsToRemove) Remove(item); } diff --git a/Zennysoft.Game.Ma/src/items/ItemDatabase.cs b/Zennysoft.Game.Ma/src/items/ItemDatabase.cs index 7f75da901..6ead35944 100644 --- a/Zennysoft.Game.Ma/src/items/ItemDatabase.cs +++ b/Zennysoft.Game.Ma/src/items/ItemDatabase.cs @@ -14,37 +14,37 @@ public class ItemDatabase public static ItemDatabase Instance { get { return lazy.Value; } } - public ImmutableList Items { get; set; } + public ImmutableList Items { get; set; } - public T PickItem(T itemToExclude = null) - where T : InventoryItem + public T PickItem(params T[] itemsToExclude) + where T : IBaseInventoryItem { var itemsToSelectFrom = Items.OfType(); - return PickItemInternal(itemsToSelectFrom, itemToExclude); + return PickItemInternal(itemsToSelectFrom, itemsToExclude); } - public T PickRareItem(T itemToExclude = null) - where T : InventoryItem + public T PickRareItem(params T[] itemsToExclude) + where T : IBaseInventoryItem { var getRareItems = Items.OfType().Where(x => x.SpawnRate < 0.1f); - return PickItemInternal(getRareItems, itemToExclude); + return PickItemInternal(getRareItems, itemsToExclude); } - public T PickBasicItem(T itemToExclude = null) - where T : InventoryItem + public T PickBasicItem(params T[] itemsToExclude) + where T : IBaseInventoryItem { var getBasicItems = Items.OfType().Where(x => x.SpawnRate > 0.5f); - return PickItemInternal(getBasicItems, itemToExclude); + return PickItemInternal(getBasicItems, itemsToExclude); } - private T PickItemInternal(IEnumerable itemsToSelectFrom, T itemToExclude = null) - where T : InventoryItem + private T PickItemInternal(IEnumerable itemsToSelectFrom, params T[] itemsToExclude) + where T : IBaseInventoryItem { var rng = new RandomNumberGenerator(); rng.Randomize(); - if (itemToExclude is not null) - itemsToSelectFrom = [.. itemsToSelectFrom.Where(x => x.ItemName != itemToExclude.ItemName)]; + if (itemsToExclude.Any()) + itemsToSelectFrom.Except(itemsToExclude); var weights = itemsToSelectFrom.Select(x => x.SpawnRate).ToArray(); var selectedItem = itemsToSelectFrom.ToArray()[rng.RandWeighted(weights)]; @@ -54,7 +54,7 @@ public class ItemDatabase private ItemDatabase() { - var database = new List(); + var database = new List(); var armorResources = DirAccess.GetFilesAt("res://src/items/armor/resources/"); var weaponResources = DirAccess.GetFilesAt("res://src/items/weapons/resources/"); var accessoryResources = DirAccess.GetFilesAt("res://src/items/accessory/resources/"); diff --git a/Zennysoft.Game.Ma/src/items/ItemReroller.cs b/Zennysoft.Game.Ma/src/items/ItemReroller.cs index 82522d47d..797735860 100644 --- a/Zennysoft.Game.Ma/src/items/ItemReroller.cs +++ b/Zennysoft.Game.Ma/src/items/ItemReroller.cs @@ -12,7 +12,7 @@ public class ItemReroller } public T RerollItem(T itemToReroll, IInventory inventory, bool insertIntoInventory = true) - where T : InventoryItem + where T : IBaseInventoryItem { var currentIndex = inventory.Items.IndexOf(itemToReroll); @@ -27,7 +27,7 @@ public class ItemReroller return rolledItem; } - public InventoryItem RerollItemToAny(InventoryItem itemToReroll, IInventory inventory, bool insertIntoInventory = true) + public IBaseInventoryItem RerollItemToAny(IBaseInventoryItem itemToReroll, IInventory inventory, bool insertIntoInventory = true) { var currentIndex = inventory.Items.IndexOf(itemToReroll); diff --git a/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs b/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs index b06ba9dd4..14aa966f0 100644 --- a/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs +++ b/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs @@ -8,7 +8,7 @@ using Zennysoft.Ma.Adapter.Entity; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode)), Id("accessory")] -public partial class Accessory : EquipableItem +public partial class Accessory : Node3D, IAccessory { public override void _Notification(int what) => this.Notify(what); @@ -21,32 +21,32 @@ public partial class Accessory : EquipableItem _bonusDefense = Stats.BonusDefense; _bonusLuck = Stats.BonusLuck; } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; - public override int BonusAttack { get => _bonusDamage; } + public int BonusAttack { get => _bonusDamage; } - public override int BonusDefense { get => _bonusDefense; } + public int BonusDefense { get => _bonusDefense; } - public override int BonusLuck { get => _bonusLuck; } + public int BonusLuck { get => _bonusLuck; } - public override int BonusHP => Stats.BonusHP; + public int BonusHP => Stats.BonusHP; - public override int BonusVT => Stats.BonusVT; + public int BonusVT => Stats.BonusVT; - public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); + public ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); [Save("accessory_tag")] public AccessoryTag AccessoryTag => Stats.AccessoryTag; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; [Save("accessory_bonus_damage")] private int _bonusDamage { get; set; } = 0; @@ -72,6 +72,8 @@ public partial class Accessory : EquipableItem [Export] [Save("accessory_stats")] public AccessoryStats Stats { get; set; } = new AccessoryStats(); + public Augment Augment { get; set; } + public bool Glued { get; set; } - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; } diff --git a/Zennysoft.Game.Ma/src/items/ammo/Ammo.cs b/Zennysoft.Game.Ma/src/items/ammo/Ammo.cs index 342b14d29..bedb6548d 100644 --- a/Zennysoft.Game.Ma/src/items/ammo/Ammo.cs +++ b/Zennysoft.Game.Ma/src/items/ammo/Ammo.cs @@ -6,9 +6,10 @@ using Godot; using Zennysoft.Game.Implementation; using Zennysoft.Game.Ma; using Zennysoft.Ma.Adapter; +using Zennysoft.Ma.Adapter.Entity; [Meta(typeof(IAutoNode)), Id("ammo")] -public partial class Ammo : EquipableItem, IStackable +public partial class Ammo : Node3D, IEquipableItem, IStackable { public override void _Notification(int what) => this.Notify(what); @@ -21,19 +22,19 @@ public partial class Ammo : EquipableItem, IStackable } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; [Save("ammo_item_count")] public AutoProp Count { get; private set; } @@ -46,4 +47,11 @@ public partial class Ammo : EquipableItem, IStackable [Export] [Save("ammo_stats")] public AmmoStats Stats { get; set; } = new AmmoStats(); + public int BonusAttack { get; } + public int BonusDefense { get; } + public int BonusHP { get; } + public int BonusVT { get; } + public int BonusLuck { get; } + public bool Glued { get; set; } + public ElementalResistanceSet ElementalResistance { get; } } diff --git a/Zennysoft.Game.Ma/src/items/armor/Armor.cs b/Zennysoft.Game.Ma/src/items/armor/Armor.cs index efbd3be07..3c3ed414a 100644 --- a/Zennysoft.Game.Ma/src/items/armor/Armor.cs +++ b/Zennysoft.Game.Ma/src/items/armor/Armor.cs @@ -8,7 +8,7 @@ using Zennysoft.Ma.Adapter.Entity; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode)), Id("armor")] -public partial class Armor : EquipableItem +public partial class Armor : Node3D, IArmor { public override void _Notification(int what) => this.Notify(what); @@ -22,21 +22,21 @@ public partial class Armor : EquipableItem _bonusLuck = Stats.BonusLuck; } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; - public override int BonusAttack { get => _bonusDamage; } + public int BonusAttack { get => _bonusDamage; } - public override int BonusDefense { get => _bonusDefense; } + public int BonusDefense { get => _bonusDefense; } - public override int BonusLuck { get => _bonusLuck; } + public int BonusLuck { get => _bonusLuck; } public void IncreaseAttack(int bonus) => _bonusDamage += bonus; @@ -60,14 +60,19 @@ public partial class Armor : EquipableItem [Save("armor_bonus_luck")] private int _bonusLuck { get; set; } = 0; - public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); + public ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); public void IncreaseArmorDefense(int bonus) => _bonusDefense += bonus; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; [Save("armor_stats")] [Export] public ArmorStats Stats { get; set; } = new ArmorStats(); - public override Texture2D GetTexture() => Stats.Texture; + public Augment Augment { get; set; } + public int BonusHP { get; } + public int BonusVT { get; } + public bool Glued { get; set; } + + public Texture2D GetTexture() => Stats.Texture; } diff --git a/Zennysoft.Game.Ma/src/items/box/BoxItem.cs b/Zennysoft.Game.Ma/src/items/box/BoxItem.cs index 8498e062f..5b5b44b7f 100644 --- a/Zennysoft.Game.Ma/src/items/box/BoxItem.cs +++ b/Zennysoft.Game.Ma/src/items/box/BoxItem.cs @@ -6,7 +6,7 @@ using Zennysoft.Game.Ma; using Zennysoft.Ma.Adapter; [Meta(typeof(IAutoNode)), Id("box_item")] -public partial class BoxItem : InventoryItem +public partial class BoxItem : Node3D, IBaseInventoryItem { public override void _Notification(int what) => this.Notify(what); @@ -16,19 +16,19 @@ public partial class BoxItem : InventoryItem [Save("box_stats")] public BoxItemStats Stats { get; set; } = new BoxItemStats(); - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; public void OnReady() { diff --git a/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs b/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs index c62e3501f..06fe741d6 100644 --- a/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs +++ b/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs @@ -7,7 +7,7 @@ using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode)), Id("consumable_item")] -public partial class ConsumableItem : InventoryItem +public partial class ConsumableItem : Node3D, IBaseInventoryItem { public override void _Notification(int what) => this.Notify(what); @@ -15,15 +15,15 @@ public partial class ConsumableItem : InventoryItem public override void _Ready() => _sprite.Texture = Stats.Texture; - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; [Save("consumable_heal_hp")] public int HealHPAmount => Stats.HealHPAmount; @@ -34,10 +34,10 @@ public partial class ConsumableItem : InventoryItem [Save("consumable_increase_vt")] public int RaiseVTAmount => Stats.PermanentRaiseVTAmount; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; [Export] [Save("consumable_item_stats")] public ConsumableItemStats Stats { get; set; } = new ConsumableItemStats(); - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; } diff --git a/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs b/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs index 94a98e124..081a850bd 100644 --- a/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs +++ b/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs @@ -18,7 +18,7 @@ public partial class DroppedItem : RigidBody3D, IDroppedItem [Node] private Area3D Pickup { get; set; } = default!; - public InventoryItem Item { get; set; } + public IBaseInventoryItem Item { get; set; } public void OnResolved() { diff --git a/Zennysoft.Game.Ma/src/items/effect/EffectItem.cs b/Zennysoft.Game.Ma/src/items/effect/EffectItem.cs index 73c71dd24..21908542c 100644 --- a/Zennysoft.Game.Ma/src/items/effect/EffectItem.cs +++ b/Zennysoft.Game.Ma/src/items/effect/EffectItem.cs @@ -7,7 +7,7 @@ using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode)), Id("effect_item")] -public partial class EffectItem : InventoryItem +public partial class EffectItem : Node3D, IBaseInventoryItem { public override void _Notification(int what) => this.Notify(what); @@ -18,20 +18,20 @@ public partial class EffectItem : InventoryItem _sprite.Texture = Stats.Texture; } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; [Save("usable_tag")] public UsableItemTag UsableItemTag => Stats.UsableItemTag; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; public void SetEffectTag(UsableItemTag effect) => Stats.UsableItemTag = effect; @@ -39,5 +39,5 @@ public partial class EffectItem : InventoryItem [Save("effect_item_stats")] public EffectItemStats Stats { get; set; } = new EffectItemStats(); - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; } diff --git a/Zennysoft.Game.Ma/src/items/jewels/Jewel.cs b/Zennysoft.Game.Ma/src/items/jewels/Jewel.cs index d272b82cd..80f04bc0a 100644 --- a/Zennysoft.Game.Ma/src/items/jewels/Jewel.cs +++ b/Zennysoft.Game.Ma/src/items/jewels/Jewel.cs @@ -6,7 +6,7 @@ using Zennysoft.Game.Ma; using Zennysoft.Ma.Adapter; [Meta(typeof(IAutoNode)), Id("jewel")] -public partial class Jewel : InventoryItem, IAugmentItem +public partial class Jewel : Node3D, IAugmentItem { public override void _Notification(int what) => this.Notify(what); @@ -17,23 +17,23 @@ public partial class Jewel : InventoryItem, IAugmentItem _sprite.Texture = Stats.Texture; } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; [Export] [Save("jewel_stats")] public JewelStats Stats { get; set; } = new JewelStats(); - public JewelTags Augment => Stats.JewelTag; + public IAugmentType Augment { get; set; } } diff --git a/Zennysoft.Game.Ma/src/items/misc/Plastique.cs b/Zennysoft.Game.Ma/src/items/misc/Plastique.cs index 291f398a5..4cbff4afe 100644 --- a/Zennysoft.Game.Ma/src/items/misc/Plastique.cs +++ b/Zennysoft.Game.Ma/src/items/misc/Plastique.cs @@ -7,30 +7,30 @@ using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter.Entity; [Meta(typeof(IAutoNode))] -public partial class Plastique : InventoryItem +public partial class Plastique : Node3D, IBaseInventoryItem { public override void _Notification(int what) => this.Notify(what); [Node] private Sprite3D _sprite { get; set; } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; public void OnResolved() { - _sprite.Texture = Stats.Texture; + _sprite.Texture = Stats.Texture; } - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; [Export] [Save("inventory_stats")] diff --git a/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs b/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs index 889590268..7d196af3c 100644 --- a/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs +++ b/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs @@ -9,7 +9,7 @@ using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode)), Id("throwable_item")] -public partial class ThrowableItem : InventoryItem, IStackable +public partial class ThrowableItem : Node3D, IBaseInventoryItem, IStackable { public override void _Notification(int what) => this.Notify(what); @@ -23,15 +23,15 @@ public partial class ThrowableItem : InventoryItem, IStackable Count = new AutoProp(rng.RandiRange(Stats.MinimumCount, Stats.MaximumCount)); } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; [Save("throwable_item_element")] public ElementType ElementType => Stats.ElementType; @@ -40,7 +40,7 @@ public partial class ThrowableItem : InventoryItem, IStackable [Save("throwable_item_heal_vt")] public int HealVTAmount => Stats.HealVTAmount; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; public void SetElementType(ElementType elementType) => Stats.ElementType = elementType; @@ -53,7 +53,7 @@ public partial class ThrowableItem : InventoryItem, IStackable [Save("throwable_item_stats")] public ThrowableItemStats Stats { get; set; } - public override Texture2D GetTexture() => Stats.Texture; + public Texture2D GetTexture() => Stats.Texture; public void SetCount(int count) => Count.OnNext(count); } diff --git a/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs b/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs index 72ddef32b..d35fdcb5a 100644 --- a/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs +++ b/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs @@ -15,7 +15,7 @@ public partial class ThrownItem : RigidBody3D, IThrownItem [Dependency] public IGame Game => this.DependOn(); - public InventoryItem ItemThatIsThrown { get; set; } + public IBaseInventoryItem ItemThatIsThrown { get; set; } private EffectService _effectService; private ItemReroller _itemReroller; diff --git a/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs b/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs index 5f0db1a40..53010d917 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs +++ b/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs @@ -2,14 +2,13 @@ using Chickensoft.AutoInject; using Chickensoft.Introspection; using Chickensoft.Serialization; using Godot; -using System; using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter.Entity; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode)), Id("weapon")] -public partial class Weapon : EquipableItem +public partial class Weapon : Node3D, IWeapon { public override void _Notification(int what) => this.Notify(what); @@ -25,26 +24,26 @@ public partial class Weapon : EquipableItem _bonusLuck = Stats.BonusLuck; } - public override string ItemName => Stats.Name; + public string ItemName => Stats.Name; - public override string Description => Stats.Description; + public string Description => Stats.Description; - public override float SpawnRate => Stats.SpawnRate; + public float SpawnRate => Stats.SpawnRate; - public override int ThrowDamage => Stats.ThrowDamage; + public int ThrowDamage => Stats.ThrowDamage; - public override float ThrowSpeed => Stats.ThrowSpeed; + public float ThrowSpeed => Stats.ThrowSpeed; [Save("weapon_attack_speed")] public double AttackSpeed => Stats.AttackSpeed; [Save("weapon_tag")] public WeaponTag WeaponTag => Stats.WeaponTag; - public override ItemTag ItemTag => Stats.ItemTag; + public ItemTag ItemTag => Stats.ItemTag; [Save("weapon_element")] public ElementType WeaponElement => Stats.WeaponElement; - public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); + public ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance); public void IncreaseAttack(int bonus) => _bonusDamage += bonus; @@ -58,11 +57,15 @@ public partial class Weapon : EquipableItem public void SetLuck(int newBonus) => _bonusLuck = newBonus; - public override int BonusAttack { get => _bonusDamage; } + public int BonusAttack { get => _bonusDamage; } - public override int BonusDefense { get => _bonusDefense; } + public int BonusDefense { get => _bonusDefense; } - public override int BonusLuck { get => _bonusLuck; } + public int BonusLuck { get => _bonusLuck; } + + public int BonusHP { get; } + + public int BonusVT { get; } [Save("weapon_bonus_damage")] private int _bonusDamage { get; set; } = 0; @@ -76,6 +79,9 @@ public partial class Weapon : EquipableItem [Export] [Save("weapon_stats")] public WeaponStats Stats { get; set; } = new WeaponStats(); + public Augment Augment { get; set; } - public override Texture2D GetTexture() => Stats.Texture; + public bool Glued { get; set; } + + public Texture2D GetTexture() => Stats.Texture; } diff --git a/Zennysoft.Game.Ma/src/items/weapons/textures/RONDO.PNG.import b/Zennysoft.Game.Ma/src/items/weapons/textures/RONDO.PNG.import index 947fcd210..0c842ad38 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/textures/RONDO.PNG.import +++ b/Zennysoft.Game.Ma/src/items/weapons/textures/RONDO.PNG.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://c63uufq63qpuy" -path.bptc="res://.godot/imported/RONDO.PNG-77b50e9afaf9eb46f5672e079a5f50bf.bptc.ctex" +path.bptc="res://.godot/imported/Rondo.png-57553b850a093da6dba43a1e1947fcce.bptc.ctex" metadata={ "imported_formats": ["s3tc_bptc"], "vram_texture": true @@ -11,8 +11,8 @@ metadata={ [deps] -source_file="res://src/items/weapons/textures/RONDO.PNG" -dest_files=["res://.godot/imported/RONDO.PNG-77b50e9afaf9eb46f5672e079a5f50bf.bptc.ctex"] +source_file="res://src/items/weapons/textures/Rondo.png" +dest_files=["res://.godot/imported/Rondo.png-57553b850a093da6dba43a1e1947fcce.bptc.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/IMap.cs b/Zennysoft.Game.Ma/src/map/IMap.cs index 5fa9272a9..48dd01271 100644 --- a/Zennysoft.Game.Ma/src/map/IMap.cs +++ b/Zennysoft.Game.Ma/src/map/IMap.cs @@ -20,6 +20,10 @@ public interface IMap : INode3D void InitializeMapData(); + public void FadeIn(); + + public void FadeOut(); + public AutoProp CurrentFloorNumber { get; } public event Action<(Vector3 Rotation, Vector3 Position)> SpawnPointCreated; diff --git a/Zennysoft.Game.Ma/src/map/Map.cs b/Zennysoft.Game.Ma/src/map/Map.cs index 945fab4bf..5b6e92fd4 100644 --- a/Zennysoft.Game.Ma/src/map/Map.cs +++ b/Zennysoft.Game.Ma/src/map/Map.cs @@ -59,9 +59,11 @@ public partial class Map : Node3D, IMap var floor = MapOrder.GetChildren().OfType().ElementAt(CurrentFloorNumber.Value); if (CurrentFloor is DungeonFloor dungeonFloor && floor is DungeonFloorNode dungeonFloorNode) dungeonFloor.SpawnEnemies(dungeonFloorNode); - AnimationPlayer.CallDeferred(AnimationPlayer.MethodName.Play, ("fade_in")); } + public void FadeIn() => AnimationPlayer.Play("fade_in"); + public void FadeOut() => AnimationPlayer.Play("fade_out"); + public void InitializeMapData() { CurrentFloorNumber.OnNext(-1); @@ -89,7 +91,7 @@ public partial class Map : Node3D, IMap public async Task LoadFloor(string sceneName) { - AnimationPlayer.CallDeferred(AnimationPlayer.MethodName.Play, "fade_out"); + CallDeferred(MethodName.FadeOut); _sceneName = sceneName; var dimmableAudio = GetTree().GetNodesInGroup("DimmableAudio").OfType(); foreach (var node in dimmableAudio) diff --git a/Zennysoft.Game.Ma/src/map/Map.tscn b/Zennysoft.Game.Ma/src/map/Map.tscn index d2b1bfdbd..4aa509385 100644 --- a/Zennysoft.Game.Ma/src/map/Map.tscn +++ b/Zennysoft.Game.Ma/src/map/Map.tscn @@ -19,7 +19,22 @@ tracks/0/keys = { "values": [Color(0, 0, 0, 1)] } -[sub_resource type="Animation" id="Animation_g6eui"] +[sub_resource type="Animation" id="Animation_v14r0"] +resource_name = "fade_out" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 1)] +} + +[sub_resource type="Animation" id="Animation_0qcd2"] resource_name = "fade_in" tracks/0/type = "value" tracks/0/imported = false @@ -34,39 +49,16 @@ tracks/0/keys = { "values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0)] } -[sub_resource type="Animation" id="Animation_v14r0"] -resource_name = "fade_out" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("ColorRect:color") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(-0.0666667, 0), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 1)] -} - [sub_resource type="AnimationLibrary" id="AnimationLibrary_00xd7"] _data = { &"RESET": SubResource("Animation_00xd7"), -&"fade_in": SubResource("Animation_g6eui"), +&"fade_in": SubResource("Animation_0qcd2"), &"fade_out": SubResource("Animation_v14r0") } [node name="Map" type="Node3D"] script = ExtResource("1_bw70o") -[node name="ColorRect" type="ColorRect" parent="."] -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -color = Color(0, 0, 0, 1) - [node name="AnimationPlayer" type="AnimationPlayer" parent="."] unique_name_in_owner = true libraries = { @@ -219,3 +211,11 @@ FloorName = 4 [node name="Final Floor" type="Node" parent="MapOrder"] script = ExtResource("3_v14r0") FloorName = 6 + +[node name="ColorRect" type="ColorRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/code/MonsterRoom.cs b/Zennysoft.Game.Ma/src/map/dungeon/code/MonsterRoom.cs index 4647c996b..c4d8ce722 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/code/MonsterRoom.cs +++ b/Zennysoft.Game.Ma/src/map/dungeon/code/MonsterRoom.cs @@ -19,54 +19,54 @@ public partial class MonsterRoom : DungeonRoom public override void _Ready() { - SpawnItems(); + SpawnItems(); } public void SpawnEnemies(Godot.Collections.Dictionary enemyInfo) { - if (enemyInfo == null || !enemyInfo.Any(x => x.Value > 0)) - return; + if (enemyInfo == null || !enemyInfo.Any(x => x.Value > 0)) + return; - var rng = new RandomNumberGenerator(); - rng.Randomize(); - var enemySpawnPoints = EnemySpawnPoints.GetChildren(); - var numberOfEnemiesToSpawn = rng.RandiRange(1, enemySpawnPoints.Count); + var rng = new RandomNumberGenerator(); + rng.Randomize(); + var enemySpawnPoints = EnemySpawnPoints.GetChildren(); + var numberOfEnemiesToSpawn = rng.RandiRange(1, enemySpawnPoints.Count); - foreach (var spawnPoint in enemySpawnPoints.Cast()) - { - if (numberOfEnemiesToSpawn <= 0) - break; - numberOfEnemiesToSpawn--; + foreach (var spawnPoint in enemySpawnPoints.Cast()) + { + if (numberOfEnemiesToSpawn <= 0) + break; + numberOfEnemiesToSpawn--; - var index = rng.RandWeighted([.. enemyInfo.Values]); - var selectedEnemy = enemyInfo.ElementAt((int)index); - var instantiatedEnemy = EnemyTypeToEnemyConverter.Convert(selectedEnemy.Key); - instantiatedEnemy.Position = new Vector3(spawnPoint.Position.X, 0f, spawnPoint.Position.Z); - AddChild(instantiatedEnemy); - } + var index = rng.RandWeighted([.. enemyInfo.Values]); + var selectedEnemy = enemyInfo.ElementAt((int)index); + var instantiatedEnemy = EnemyTypeToEnemyConverter.Convert(selectedEnemy.Key); + instantiatedEnemy.Position = new Vector3(spawnPoint.Position.X, 0f, spawnPoint.Position.Z); + AddChild(instantiatedEnemy); + } } private void SpawnItems() { - if (ItemSpawnPoints == null) - return; + if (ItemSpawnPoints == null) + return; - var itemSpawnPoints = ItemSpawnPoints.GetChildren(); - var rng = new RandomNumberGenerator(); - rng.Randomize(); - var numberOfItemsToSpawn = rng.RandiRange(1, itemSpawnPoints.Count); - itemSpawnPoints.Shuffle(); - var database = ItemDatabase.Instance; - foreach (var spawnPoint in itemSpawnPoints.Cast()) - { - if (numberOfItemsToSpawn <= 0) - break; - numberOfItemsToSpawn--; + var itemSpawnPoints = ItemSpawnPoints.GetChildren(); + var rng = new RandomNumberGenerator(); + rng.Randomize(); + var numberOfItemsToSpawn = rng.RandiRange(1, itemSpawnPoints.Count); + itemSpawnPoints.Shuffle(); + var database = ItemDatabase.Instance; + foreach (var spawnPoint in itemSpawnPoints.Cast()) + { + if (numberOfItemsToSpawn <= 0) + break; + numberOfItemsToSpawn--; - var selectedItem = database.PickItem(); - var duplicated = selectedItem.Duplicate((int)DuplicateFlags.UseInstantiation) as Node3D; - duplicated.Position = new Vector3(spawnPoint.Position.X, 0, spawnPoint.Position.Z); - AddChild(duplicated); - } + var selectedItem = database.PickItem() as Node3D; + var duplicated = selectedItem.Duplicate((int)DuplicateFlags.UseInstantiation) as Node3D; + duplicated.Position = new Vector3(spawnPoint.Position.X, 0, spawnPoint.Position.Z); + AddChild(duplicated); + } } } diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import index 495df45d7..32e69d626 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://cp0er3xxxjkr5" -path="res://.godot/imported/a2-puer_AREA_2_MAIN_222STONE.png-139f243ac630853348798dfe584da1e0.ctex" +path="res://.godot/imported/A2-Puer_AREA_2_MAIN_222STONE.png-992459ef9849c39922a9b9e0c7774a4a.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_AREA_2_MAIN_222STONE.png" -dest_files=["res://.godot/imported/a2-puer_AREA_2_MAIN_222STONE.png-139f243ac630853348798dfe584da1e0.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png" +dest_files=["res://.godot/imported/A2-Puer_AREA_2_MAIN_222STONE.png-992459ef9849c39922a9b9e0c7774a4a.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import index 21e6e0d98..6b7d90a6d 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://5r16swvuqjjg" -path="res://.godot/imported/a2-puer_AREA_2_MAIN_STONE.png-986249227e569ea1e40b4825b7f05c47.ctex" +path="res://.godot/imported/A2-Puer_AREA_2_MAIN_STONE.png-2267bd7e464cdc2e03c8954de01941bf.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_AREA_2_MAIN_STONE.png" -dest_files=["res://.godot/imported/a2-puer_AREA_2_MAIN_STONE.png-986249227e569ea1e40b4825b7f05c47.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png" +dest_files=["res://.godot/imported/A2-Puer_AREA_2_MAIN_STONE.png-2267bd7e464cdc2e03c8954de01941bf.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import index 04bb9e3d9..e762e21b3 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://cvnpxln2mmtkp" -path="res://.godot/imported/a2-puer_COLUMN_WHITE.png-0b80d510851319464b2ef729d8868892.ctex" +path="res://.godot/imported/A2-Puer_COLUMN_WHITE.png-18037c22b966bb159d05cb7acac1bc53.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_COLUMN_WHITE.png" -dest_files=["res://.godot/imported/a2-puer_COLUMN_WHITE.png-0b80d510851319464b2ef729d8868892.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png" +dest_files=["res://.godot/imported/A2-Puer_COLUMN_WHITE.png-18037c22b966bb159d05cb7acac1bc53.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import index 180e28565..9e3842f74 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://tjtjbktl51kd" -path="res://.godot/imported/a2-puer_GREENBIT.png-e1ed395f917a2fe57ed6288185af0729.ctex" +path="res://.godot/imported/A2-Puer_GREENBIT.png-40a9ca6a0efc569a5f329f19b3c3e572.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_GREENBIT.png" -dest_files=["res://.godot/imported/a2-puer_GREENBIT.png-e1ed395f917a2fe57ed6288185af0729.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png" +dest_files=["res://.godot/imported/A2-Puer_GREENBIT.png-40a9ca6a0efc569a5f329f19b3c3e572.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import index 3ebf2724e..9338c9fcb 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://dqfdyguq83bhs" -path="res://.godot/imported/a2-puer_M13_14.png-ed8b29b0af1c2b973bfaee62e57cab14.ctex" +path="res://.godot/imported/A2-Puer_M13_14.png-e781478f15895763a566a64ff37db311.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_M13_14.png" -dest_files=["res://.godot/imported/a2-puer_M13_14.png-ed8b29b0af1c2b973bfaee62e57cab14.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png" +dest_files=["res://.godot/imported/A2-Puer_M13_14.png-e781478f15895763a566a64ff37db311.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import index 4508979cd..80697846d 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://dorqwrqy03rim" -path="res://.godot/imported/a2-puer_M13_49.png-86429b5a3cd80a9159f32ded99a631bc.ctex" +path="res://.godot/imported/A2-Puer_M13_49.png-44faadb5ae300e9ecea145cfe1949536.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_M13_49.png" -dest_files=["res://.godot/imported/a2-puer_M13_49.png-86429b5a3cd80a9159f32ded99a631bc.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png" +dest_files=["res://.godot/imported/A2-Puer_M13_49.png-44faadb5ae300e9ecea145cfe1949536.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import index db04979bf..1d382c04e 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://nl3bwenfa8fi" -path="res://.godot/imported/a2-puer_RUBBLE_1.png-c7185e2aad2613007d1951f1515ef882.ctex" +path="res://.godot/imported/A2-Puer_RUBBLE_1.png-72d7ff861d1df58d800502546da8d607.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_RUBBLE_1.png" -dest_files=["res://.godot/imported/a2-puer_RUBBLE_1.png-c7185e2aad2613007d1951f1515ef882.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png" +dest_files=["res://.godot/imported/A2-Puer_RUBBLE_1.png-72d7ff861d1df58d800502546da8d607.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import index f0fbaffea..09c9a2eaa 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://0p6suo7fpxum" -path="res://.godot/imported/a2-puer_STUCCO_DECAL_BIG.png-882b477f490f6ddbf5bffb3a6f8904e1.ctex" +path="res://.godot/imported/A2-Puer_STUCCO_DECAL_BIG.png-015d9f8dd06372231a1f422979d3604e.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_STUCCO_DECAL_BIG.png" -dest_files=["res://.godot/imported/a2-puer_STUCCO_DECAL_BIG.png-882b477f490f6ddbf5bffb3a6f8904e1.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png" +dest_files=["res://.godot/imported/A2-Puer_STUCCO_DECAL_BIG.png-015d9f8dd06372231a1f422979d3604e.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import index 199806321..24318b1e7 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://ct3mkni0v0y3g" -path="res://.godot/imported/a2-puer_Tile 4.png-9d089a32db3fc38a0c5dee6cdb6d3495.ctex" +path="res://.godot/imported/A2-Puer_Tile 4.png-0cfd085ec5fcea35eb2d1373e4717f77.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_Tile 4.png" -dest_files=["res://.godot/imported/a2-puer_Tile 4.png-9d089a32db3fc38a0c5dee6cdb6d3495.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png" +dest_files=["res://.godot/imported/A2-Puer_Tile 4.png-0cfd085ec5fcea35eb2d1373e4717f77.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import index 64b96d318..a2a510b2b 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://b40fbcriycpp5" -path="res://.godot/imported/a2-puer_imag2esnormal.jpg-d6e063b2785344af34fa3bb45d47aa2f.ctex" +path="res://.godot/imported/A2-Puer_imag2esnormal.jpg-be023c8af9ff59eedfb3ede232c75195.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_imag2esnormal.jpg" -dest_files=["res://.godot/imported/a2-puer_imag2esnormal.jpg-d6e063b2785344af34fa3bb45d47aa2f.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg" +dest_files=["res://.godot/imported/A2-Puer_imag2esnormal.jpg-be023c8af9ff59eedfb3ede232c75195.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import index b8a78e4ab..98a06282f 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://b25r6gysyhu3e" -path="res://.godot/imported/a2-puer_inner_rock2.png-943622742770f7b55d1e40645d07d057.ctex" +path="res://.godot/imported/A2-Puer_inner_rock2.png-7c99975de214e5dddd3507f87212b910.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_inner_rock2.png" -dest_files=["res://.godot/imported/a2-puer_inner_rock2.png-943622742770f7b55d1e40645d07d057.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png" +dest_files=["res://.godot/imported/A2-Puer_inner_rock2.png-7c99975de214e5dddd3507f87212b910.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import index c74c8b3f7..652b45073 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://cw4hq3kofjowa" -path="res://.godot/imported/a2-puer_lime_hand_relief.png-85b73e808337e8b8841453cbda0e78cd.ctex" +path="res://.godot/imported/A2-Puer_lime_hand_relief.png-825857ea33249fe0361c829ba37bbfdb.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_lime_hand_relief.png" -dest_files=["res://.godot/imported/a2-puer_lime_hand_relief.png-85b73e808337e8b8841453cbda0e78cd.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png" +dest_files=["res://.godot/imported/A2-Puer_lime_hand_relief.png-825857ea33249fe0361c829ba37bbfdb.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import index 225a80ba0..daa0c8454 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://bqrsde28o867s" -path="res://.godot/imported/a2-puer_mother_GREEN.png-7bb7d8dd57027953ba1e08ed0c256c8b.ctex" +path="res://.godot/imported/A2-Puer_mother_GREEN.png-ba1f3d21981ed19fc5cc87868e04808c.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_mother_GREEN.png" -dest_files=["res://.godot/imported/a2-puer_mother_GREEN.png-7bb7d8dd57027953ba1e08ed0c256c8b.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png" +dest_files=["res://.godot/imported/A2-Puer_mother_GREEN.png-ba1f3d21981ed19fc5cc87868e04808c.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import index d34c69948..54793d5e9 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://4aq3a26dliyg" -path="res://.godot/imported/a2-puer_swirled_column _AREA222.png-6f90c188eae5b7e81110f39984d5d43f.ctex" +path="res://.godot/imported/A2-Puer_swirled_column _AREA222.png-4842b180cffdbc0274ecb9cbbbbc8221.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_swirled_column _AREA222.png" -dest_files=["res://.godot/imported/a2-puer_swirled_column _AREA222.png-6f90c188eae5b7e81110f39984d5d43f.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png" +dest_files=["res://.godot/imported/A2-Puer_swirled_column _AREA222.png-4842b180cffdbc0274ecb9cbbbbc8221.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/rooms/Set A/11. Long Room.tscn b/Zennysoft.Game.Ma/src/map/dungeon/rooms/Set A/11. Long Room.tscn index 4498152f2..16649b64a 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/rooms/Set A/11. Long Room.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/rooms/Set A/11. Long Room.tscn @@ -244,48 +244,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.992, 0, 0.765) [node name="EnemySpawn1" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) -[node name="EnemySpawn5" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn6" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn7" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn8" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn9" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn10" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn11" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn12" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn13" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn14" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn15" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn16" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn17" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - -[node name="EnemySpawn18" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.266, 0, 6.644) - [node name="EnemySpawn2" type="Marker3D" parent="Spawn Points/EnemySpawnPoints"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.808, 0, -3.291) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_10.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_10.png new file mode 100644 index 000000000..d3b7df02d Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_10.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_10.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_10.png.import new file mode 100644 index 000000000..94f407d38 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_10.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5x02ajrf40hw" +path.bptc="res://.godot/imported/column circle room 2_10.png-2f132ccde0b9a5fb1502fc83cb613b2e.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "a1d2e8cd2320c706dadbc269b6c5a192" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_10.png" +dest_files=["res://.godot/imported/column circle room 2_10.png-2f132ccde0b9a5fb1502fc83cb613b2e.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_2.png new file mode 100644 index 000000000..cd2bd312f Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_2.png.import new file mode 100644 index 000000000..8e8de681e --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cns8qko3ivdgj" +path.bptc="res://.godot/imported/column circle room 2_2.png-d1f75ea0d93c7d13d6c9cb8d6d390b3d.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "231ff561a91024e714767959df574afc" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_2.png" +dest_files=["res://.godot/imported/column circle room 2_2.png-d1f75ea0d93c7d13d6c9cb8d6d390b3d.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_3.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_3.png new file mode 100644 index 000000000..354dcc09f Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_3.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_3.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_3.png.import new file mode 100644 index 000000000..bea70c52b --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_3.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8addg7tv810q" +path.bptc="res://.godot/imported/column circle room 2_3.png-117a4f7a33c04f03888327fdde13dee5.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "f716d9c2cf24da2dd147d2b4c140b40e" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_3.png" +dest_files=["res://.godot/imported/column circle room 2_3.png-117a4f7a33c04f03888327fdde13dee5.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_4.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_4.png new file mode 100644 index 000000000..9b2809c68 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_4.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_4.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_4.png.import new file mode 100644 index 000000000..46bcde124 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_4.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmsi5iwektal2" +path.bptc="res://.godot/imported/column circle room 2_4.png-f891375b3f718485464b1e7c67559109.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d8b89b09f48ac85cee33021597519581" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_4.png" +dest_files=["res://.godot/imported/column circle room 2_4.png-f891375b3f718485464b1e7c67559109.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_5.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_5.png new file mode 100644 index 000000000..a342c01dc Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_5.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_5.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_5.png.import new file mode 100644 index 000000000..632c03634 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_5.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bt5ux7gdg21jr" +path.bptc="res://.godot/imported/column circle room 2_5.png-78aee43711e00299e424383b4dd007bc.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "670fee02d0a4f29f405a7a3073987b05" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_5.png" +dest_files=["res://.godot/imported/column circle room 2_5.png-78aee43711e00299e424383b4dd007bc.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_6.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_6.png new file mode 100644 index 000000000..01e56ad49 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_6.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_6.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_6.png.import new file mode 100644 index 000000000..f7081f1eb --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_6.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqicogefse02s" +path.bptc="res://.godot/imported/column circle room 2_6.png-7213bcb4c2fc590b14a9b8b333eff280.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "7b4fd089ff7f1a39b8e9adeaa6f9ca56" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_6.png" +dest_files=["res://.godot/imported/column circle room 2_6.png-7213bcb4c2fc590b14a9b8b333eff280.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_7.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_7.png new file mode 100644 index 000000000..283df38d5 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_7.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_7.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_7.png.import new file mode 100644 index 000000000..d85df3857 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_7.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhxwkjc1jid82" +path.bptc="res://.godot/imported/column circle room 2_7.png-4cefb84176984e92a9bd1ec6bf1d1ad6.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "8d34efacc2f9a7a99c009078b58010ce" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_7.png" +dest_files=["res://.godot/imported/column circle room 2_7.png-4cefb84176984e92a9bd1ec6bf1d1ad6.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_8.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_8.png new file mode 100644 index 000000000..8512378c2 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_8.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_8.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_8.png.import new file mode 100644 index 000000000..a8a3d47e0 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_8.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pqgfslnwrdjd" +path.bptc="res://.godot/imported/column circle room 2_8.png-a0fbcfc0fec4af0eb27202062938425c.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e7e4a09916308fd7416afd61371c5593" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_8.png" +dest_files=["res://.godot/imported/column circle room 2_8.png-a0fbcfc0fec4af0eb27202062938425c.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_9.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_9.png new file mode 100644 index 000000000..a5dbbfe44 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_9.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_9.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_9.png.import new file mode 100644 index 000000000..42336c838 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_9.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cl5vctbyw2isj" +path.bptc="res://.godot/imported/column circle room 2_9.png-0d5d1105baa7caac655f10681bf3db52.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "f0820bdfcd90a51f14c904dd6b5b4cf4" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_9.png" +dest_files=["res://.godot/imported/column circle room 2_9.png-0d5d1105baa7caac655f10681bf3db52.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED.png new file mode 100644 index 000000000..763d0dee0 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED.png.import new file mode 100644 index 000000000..b45654b9e --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://p3buhacsl5m5" +path.bptc="res://.godot/imported/column circle room 2_AREA2_BLOCKED.png-a98778db0760f41b1db60ebdbe7bc10a.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "1acf4b54983678f4cf4c553acbb09982" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED.png" +dest_files=["res://.godot/imported/column circle room 2_AREA2_BLOCKED.png-a98778db0760f41b1db60ebdbe7bc10a.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED_B.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED_B.png new file mode 100644 index 000000000..bae2568ac Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED_B.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED_B.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED_B.png.import new file mode 100644 index 000000000..e7f882f47 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED_B.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://db0v73jf5ily5" +path.bptc="res://.godot/imported/column circle room 2_AREA2_BLOCKED_B.png-ce696065f37834938ad65250954f398f.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d22ac1d5bf225d03f3a8c84b0181ea3e" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_AREA2_BLOCKED_B.png" +dest_files=["res://.godot/imported/column circle room 2_AREA2_BLOCKED_B.png-ce696065f37834938ad65250954f398f.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_TILE-5.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_TILE-5.png new file mode 100644 index 000000000..f8d7f8e90 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_TILE-5.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_TILE-5.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_TILE-5.png.import new file mode 100644 index 000000000..5fca7484a --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_TILE-5.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2kj16h8fjtjj" +path.bptc="res://.godot/imported/column circle room 2_AREA2_TILE-5.png-85ef671cf88670776ed734e540e63605.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "3593314383003b535dc027755dc49ea7" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_AREA2_TILE-5.png" +dest_files=["res://.godot/imported/column circle room 2_AREA2_TILE-5.png-85ef671cf88670776ed734e540e63605.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_WHITE_CONKRETE.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_WHITE_CONKRETE.png new file mode 100644 index 000000000..00c3a3a5f Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_WHITE_CONKRETE.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_WHITE_CONKRETE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_WHITE_CONKRETE.png.import new file mode 100644 index 000000000..87bf7e6d5 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA2_WHITE_CONKRETE.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hn4ueluylx87" +path.bptc="res://.godot/imported/column circle room 2_AREA2_WHITE_CONKRETE.png-03a539d77ec37c8da134028896f81808.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "307b116080fe0254862e45395c4d4f0b" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_AREA2_WHITE_CONKRETE.png" +dest_files=["res://.godot/imported/column circle room 2_AREA2_WHITE_CONKRETE.png-03a539d77ec37c8da134028896f81808.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_222STONE.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_222STONE.png new file mode 100644 index 000000000..99133879b Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_222STONE.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_222STONE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_222STONE.png.import new file mode 100644 index 000000000..a8909f681 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_222STONE.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c58qr7f410ykc" +path.bptc="res://.godot/imported/column circle room 2_AREA_2_MAIN_222STONE.png-43e722c40f6a9eb0b219e423cfe3e826.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "11027637ea8e7d257bd13c57efd3b5b4" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_222STONE.png" +dest_files=["res://.godot/imported/column circle room 2_AREA_2_MAIN_222STONE.png-43e722c40f6a9eb0b219e423cfe3e826.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STON2E.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STON2E.png new file mode 100644 index 000000000..d05ba3cdd Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STON2E.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STON2E.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STON2E.png.import new file mode 100644 index 000000000..03612f412 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STON2E.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhe75x8ydsmcy" +path.bptc="res://.godot/imported/column circle room 2_AREA_2_MAIN_STON2E.png-3671a8bc52fa1ede9ae1a06680c1fa15.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "139c50444b8c5bb604e01ab7f78d241c" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STON2E.png" +dest_files=["res://.godot/imported/column circle room 2_AREA_2_MAIN_STON2E.png-3671a8bc52fa1ede9ae1a06680c1fa15.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STONE.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STONE.png new file mode 100644 index 000000000..5d7a551bb Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STONE.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STONE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STONE.png.import new file mode 100644 index 000000000..0382bc3ef --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STONE.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba2e75deh8406" +path.bptc="res://.godot/imported/column circle room 2_AREA_2_MAIN_STONE.png-52301e7e604d91a0513039bc72d84044.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "74785e2a002a5145acbed78822e8513a" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_AREA_2_MAIN_STONE.png" +dest_files=["res://.godot/imported/column circle room 2_AREA_2_MAIN_STONE.png-52301e7e604d91a0513039bc72d84044.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Area2Alt_Brick.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Area2Alt_Brick.png new file mode 100644 index 000000000..47048ee21 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Area2Alt_Brick.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Area2Alt_Brick.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Area2Alt_Brick.png.import new file mode 100644 index 000000000..e76e688bb --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Area2Alt_Brick.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bn3j7brskgnpw" +path.bptc="res://.godot/imported/column circle room 2_Area2Alt_Brick.png-dc7b2e0c5251ccc5609e10e541e339dd.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "32b891d8279aa35a682146eeda0c9908" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_Area2Alt_Brick.png" +dest_files=["res://.godot/imported/column circle room 2_Area2Alt_Brick.png-dc7b2e0c5251ccc5609e10e541e339dd.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CEILING_AREA2.jpg b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CEILING_AREA2.jpg new file mode 100644 index 000000000..0561a4a1c Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CEILING_AREA2.jpg differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CEILING_AREA2.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CEILING_AREA2.jpg.import new file mode 100644 index 000000000..eda302045 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CEILING_AREA2.jpg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cg1cg86sa0nre" +path.bptc="res://.godot/imported/column circle room 2_CEILING_AREA2.jpg-8d9328b0f369272fdc314657559cd9f9.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "9addb3d0b9b65c31722bce6151085b82" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_CEILING_AREA2.jpg" +dest_files=["res://.godot/imported/column circle room 2_CEILING_AREA2.jpg-8d9328b0f369272fdc314657559cd9f9.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CHAIN_TEX2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CHAIN_TEX2.png new file mode 100644 index 000000000..1b2276f19 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CHAIN_TEX2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CHAIN_TEX2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CHAIN_TEX2.png.import new file mode 100644 index 000000000..e8b6ecbb0 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CHAIN_TEX2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btbmw7u61de7b" +path.bptc="res://.godot/imported/column circle room 2_CHAIN_TEX2.png-dd8a27db68734911b8657ab16c687804.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "56815d64cc780787090d5b019dc5ece3" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_CHAIN_TEX2.png" +dest_files=["res://.godot/imported/column circle room 2_CHAIN_TEX2.png-dd8a27db68734911b8657ab16c687804.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_COLUMN_WHITE.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_COLUMN_WHITE.png new file mode 100644 index 000000000..21189c196 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_COLUMN_WHITE.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_COLUMN_WHITE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_COLUMN_WHITE.png.import new file mode 100644 index 000000000..98b628632 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_COLUMN_WHITE.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2iyw4qm0o0fc" +path.bptc="res://.godot/imported/column circle room 2_COLUMN_WHITE.png-b6b9bf8e11fb4491bea8585a98af670b.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "0e8fa39a22324fd5345ebb4d3f1deeec" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_COLUMN_WHITE.png" +dest_files=["res://.godot/imported/column circle room 2_COLUMN_WHITE.png-b6b9bf8e11fb4491bea8585a98af670b.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CORRIDOR_PANEL_UPPER.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CORRIDOR_PANEL_UPPER.png new file mode 100644 index 000000000..650ca4eb7 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CORRIDOR_PANEL_UPPER.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CORRIDOR_PANEL_UPPER.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CORRIDOR_PANEL_UPPER.png.import new file mode 100644 index 000000000..20a53fe63 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_CORRIDOR_PANEL_UPPER.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7q86hq27darh" +path.bptc="res://.godot/imported/column circle room 2_CORRIDOR_PANEL_UPPER.png-4fb7c7bb0a3b5075ff09590b7c4b2b31.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "7a00947386bf978ae4a905d05098510a" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_CORRIDOR_PANEL_UPPER.png" +dest_files=["res://.godot/imported/column circle room 2_CORRIDOR_PANEL_UPPER.png-4fb7c7bb0a3b5075ff09590b7c4b2b31.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_DARKER_STONE_AREA_2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_DARKER_STONE_AREA_2.png new file mode 100644 index 000000000..dc1ea73cc Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_DARKER_STONE_AREA_2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_DARKER_STONE_AREA_2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_DARKER_STONE_AREA_2.png.import new file mode 100644 index 000000000..4982d57f0 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_DARKER_STONE_AREA_2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dlvp2rl3jdna" +path.bptc="res://.godot/imported/column circle room 2_DARKER_STONE_AREA_2.png-bb163201b33321877cd0e8b63104614a.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "a571ea9259cd4bdb7a8ab58b7439b400" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_DARKER_STONE_AREA_2.png" +dest_files=["res://.godot/imported/column circle room 2_DARKER_STONE_AREA_2.png-bb163201b33321877cd0e8b63104614a.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT.png new file mode 100644 index 000000000..6629b71bf Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT.png.import new file mode 100644 index 000000000..a6daaaf4c --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://br40e1hm086jc" +path.bptc="res://.godot/imported/column circle room 2_GREENBIT.png-9bec964a29e453c9b639995fb0e86960.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "b50650b90bd9044ba2130271343845b1" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_GREENBIT.png" +dest_files=["res://.godot/imported/column circle room 2_GREENBIT.png-9bec964a29e453c9b639995fb0e86960.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT_48.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT_48.png new file mode 100644 index 000000000..72bb9d572 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT_48.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT_48.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT_48.png.import new file mode 100644 index 000000000..770a027c0 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_GREENBIT_48.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bb8bhqfh7mrbc" +path.bptc="res://.godot/imported/column circle room 2_GREENBIT_48.png-4c5382ff46c766c76d5054bb5eee72b2.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "a144df30f69aec59d6b979094d0a6551" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_GREENBIT_48.png" +dest_files=["res://.godot/imported/column circle room 2_GREENBIT_48.png-4c5382ff46c766c76d5054bb5eee72b2.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_HAND-CYCLE-FLOOR.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_HAND-CYCLE-FLOOR.png new file mode 100644 index 000000000..d7a934f82 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_HAND-CYCLE-FLOOR.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_HAND-CYCLE-FLOOR.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_HAND-CYCLE-FLOOR.png.import new file mode 100644 index 000000000..743ed2638 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_HAND-CYCLE-FLOOR.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wj4p32xvkswv" +path.bptc="res://.godot/imported/column circle room 2_HAND-CYCLE-FLOOR.png-f07de1b3843312c1d23234653a2743b4.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "0c59057675ee2b263ee1d236ad1f27a8" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_HAND-CYCLE-FLOOR.png" +dest_files=["res://.godot/imported/column circle room 2_HAND-CYCLE-FLOOR.png-f07de1b3843312c1d23234653a2743b4.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_14.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_14.png new file mode 100644 index 000000000..fd7146303 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_14.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_14.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_14.png.import new file mode 100644 index 000000000..f7ca7ced9 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_14.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgm8h7hqwo5g1" +path.bptc="res://.godot/imported/column circle room 2_M13_14.png-920af754e263823f8c2e8549c9f6fbba.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "161ac059f7cd3f17c47a3080ee7cae60" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_M13_14.png" +dest_files=["res://.godot/imported/column circle room 2_M13_14.png-920af754e263823f8c2e8549c9f6fbba.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_49.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_49.png new file mode 100644 index 000000000..980cc7b6a Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_49.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_49.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_49.png.import new file mode 100644 index 000000000..7cb3d8282 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_M13_49.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://e5nk8saf0m2" +path.bptc="res://.godot/imported/column circle room 2_M13_49.png-ec3e9fdae45b600fbee12f40a186220f.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "6bc1ff8bfa0634790c964cfe1df3872a" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_M13_49.png" +dest_files=["res://.godot/imported/column circle room 2_M13_49.png-ec3e9fdae45b600fbee12f40a186220f.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_RUBBLE_1.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_RUBBLE_1.png new file mode 100644 index 000000000..25a886293 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_RUBBLE_1.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_RUBBLE_1.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_RUBBLE_1.png.import new file mode 100644 index 000000000..8f072c6bd --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_RUBBLE_1.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ch1hxea03wcit" +path.bptc="res://.godot/imported/column circle room 2_RUBBLE_1.png-bfd3bff1f7a5097edad04113646d9c1a.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "38ef11cea3eaf648a0118ef91b3526c2" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_RUBBLE_1.png" +dest_files=["res://.godot/imported/column circle room 2_RUBBLE_1.png-bfd3bff1f7a5097edad04113646d9c1a.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SD137.jpg b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SD137.jpg new file mode 100644 index 000000000..2323e5c1e Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SD137.jpg differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SD137.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SD137.jpg.import new file mode 100644 index 000000000..b9afd4f59 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SD137.jpg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vjrca5qck1v4" +path.bptc="res://.godot/imported/column circle room 2_SD137.jpg-f31949369320b30ab7e5cc3c73c376d1.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "f7f09a4c0799b488c95cf6389716ac71" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_SD137.jpg" +dest_files=["res://.godot/imported/column circle room 2_SD137.jpg-f31949369320b30ab7e5cc3c73c376d1.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STONE_PANEL_AREA2png.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STONE_PANEL_AREA2png.png new file mode 100644 index 000000000..e7603dfb3 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STONE_PANEL_AREA2png.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STONE_PANEL_AREA2png.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STONE_PANEL_AREA2png.png.import new file mode 100644 index 000000000..226723a85 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STONE_PANEL_AREA2png.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwtdvqnujvoqk" +path.bptc="res://.godot/imported/column circle room 2_STONE_PANEL_AREA2png.png-611224af4a47aa50a7cd7472ad550dde.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "2b320328a359208db4932d4e57f0911b" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_STONE_PANEL_AREA2png.png" +dest_files=["res://.godot/imported/column circle room 2_STONE_PANEL_AREA2png.png-611224af4a47aa50a7cd7472ad550dde.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STUCCO_DECAL_BIG.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STUCCO_DECAL_BIG.png new file mode 100644 index 000000000..349c255b9 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STUCCO_DECAL_BIG.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STUCCO_DECAL_BIG.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STUCCO_DECAL_BIG.png.import new file mode 100644 index 000000000..08b076ea4 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_STUCCO_DECAL_BIG.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjktejr5sp8g2" +path.bptc="res://.godot/imported/column circle room 2_STUCCO_DECAL_BIG.png-813035db80218625641ff936a665c54d.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d40dd58a319867d7b41c94ed96a34d2f" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_STUCCO_DECAL_BIG.png" +dest_files=["res://.godot/imported/column circle room 2_STUCCO_DECAL_BIG.png-813035db80218625641ff936a665c54d.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SUNFLOWER.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SUNFLOWER.png new file mode 100644 index 000000000..56da7e3ea Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SUNFLOWER.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SUNFLOWER.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SUNFLOWER.png.import new file mode 100644 index 000000000..d13f500d0 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_SUNFLOWER.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvipbiufobvps" +path.bptc="res://.godot/imported/column circle room 2_SUNFLOWER.png-4fa116e48f0bbb66c4ae5002b2ffa40f.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "59b3bc95d08747f38018f3e0f2fed88c" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_SUNFLOWER.png" +dest_files=["res://.godot/imported/column circle room 2_SUNFLOWER.png-4fa116e48f0bbb66c4ae5002b2ffa40f.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Tile 4.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Tile 4.png new file mode 100644 index 000000000..c2ff2720b Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Tile 4.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Tile 4.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Tile 4.png.import new file mode 100644 index 000000000..457cb481d --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_Tile 4.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1gbtkbc2wmj0" +path.bptc="res://.godot/imported/column circle room 2_Tile 4.png-5e125643e0a6e20f725150a61992d4a0.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "9d872ae5021bb8fb1d780619d49f1db8" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_Tile 4.png" +dest_files=["res://.godot/imported/column circle room 2_Tile 4.png-5e125643e0a6e20f725150a61992d4a0.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_TILE2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_TILE2.png new file mode 100644 index 000000000..8e46a15d6 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_TILE2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_TILE2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_TILE2.png.import new file mode 100644 index 000000000..97f17d71e --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_TILE2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxxu5idr8136r" +path.bptc="res://.godot/imported/column circle room 2_WHITE_TILE2.png-180aa407976c5ab7cc464a5983c8089f.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "c01abbdce6f043b60cd28e6f386bf90d" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_WHITE_TILE2.png" +dest_files=["res://.godot/imported/column circle room 2_WHITE_TILE2.png-180aa407976c5ab7cc464a5983c8089f.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_floor.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_floor.png new file mode 100644 index 000000000..d68f62388 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_floor.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_floor.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_floor.png.import new file mode 100644 index 000000000..8d760c90d --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_floor.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pv0q543l0akl" +path.bptc="res://.godot/imported/column circle room 2_WHITE_floor.png-db5a165533d8c3b3fc7da8974b2615aa.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "67f0faf24a06a85088c0ff02c398e755" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_WHITE_floor.png" +dest_files=["res://.godot/imported/column circle room 2_WHITE_floor.png-db5a165533d8c3b3fc7da8974b2615aa.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_layer_brick1.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_layer_brick1.png new file mode 100644 index 000000000..83d81c6ee Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_layer_brick1.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_layer_brick1.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_layer_brick1.png.import new file mode 100644 index 000000000..8826d1160 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_WHITE_layer_brick1.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfys1apjyp3yf" +path.bptc="res://.godot/imported/column circle room 2_WHITE_layer_brick1.png-e67305b07e37b27b1f0e8094071421b3.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e5a6977947c858572c0564e939e8513c" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_WHITE_layer_brick1.png" +dest_files=["res://.godot/imported/column circle room 2_WHITE_layer_brick1.png-e67305b07e37b27b1f0e8094071421b3.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area2_darker_brick.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area2_darker_brick.png new file mode 100644 index 000000000..4bba6d86a Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area2_darker_brick.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area2_darker_brick.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area2_darker_brick.png.import new file mode 100644 index 000000000..08d25aa20 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area2_darker_brick.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdvxlmp1mc30i" +path.bptc="res://.godot/imported/column circle room 2_area2_darker_brick.png-bf4f94641d1aaa845be6869f64c152e0.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "814ddc2f3a61f533fa927c9046be7c8b" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_area2_darker_brick.png" +dest_files=["res://.godot/imported/column circle room 2_area2_darker_brick.png-bf4f94641d1aaa845be6869f64c152e0.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_big_tile.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_big_tile.png new file mode 100644 index 000000000..323707857 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_big_tile.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_big_tile.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_big_tile.png.import new file mode 100644 index 000000000..1d430baf9 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_big_tile.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dlwr4jvneik00" +path.bptc="res://.godot/imported/column circle room 2_area_2_big_tile.png-c226d8885fd11970df31f887fdf26ebc.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "0c25630c903927ac616a7b2238fa2766" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_area_2_big_tile.png" +dest_files=["res://.godot/imported/column circle room 2_area_2_big_tile.png-c226d8885fd11970df31f887fdf26ebc.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_exposed_brick.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_exposed_brick.png new file mode 100644 index 000000000..451e15f92 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_exposed_brick.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_exposed_brick.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_exposed_brick.png.import new file mode 100644 index 000000000..4ede73593 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_exposed_brick.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cd50dlmhnkerf" +path.bptc="res://.godot/imported/column circle room 2_area_2_exposed_brick.png-aea2d83e8f570863dcfeb8750c6ebb86.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d084af10f5fb330bd75b75603b249591" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_area_2_exposed_brick.png" +dest_files=["res://.godot/imported/column circle room 2_area_2_exposed_brick.png-aea2d83e8f570863dcfeb8750c6ebb86.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_3.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_3.png new file mode 100644 index 000000000..f479712e4 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_3.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_3.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_3.png.import new file mode 100644 index 000000000..0022e8746 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_3.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gxmnhpwl164m" +path.bptc="res://.godot/imported/column circle room 2_area_2_tile_3.png-23b4c43d24d1dce98df1e3be28e8ee9d.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "819a5d534963bc6ec1b5baf551805ca8" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_area_2_tile_3.png" +dest_files=["res://.godot/imported/column circle room 2_area_2_tile_3.png-23b4c43d24d1dce98df1e3be28e8ee9d.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_stained_2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_stained_2.png new file mode 100644 index 000000000..4df5bfa05 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_stained_2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_stained_2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_stained_2.png.import new file mode 100644 index 000000000..d3f6864e9 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_area_2_tile_stained_2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://s7dlumseu0yo" +path.bptc="res://.godot/imported/column circle room 2_area_2_tile_stained_2.png-91526ae11eb5f7138c5c58f31317378b.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "1e3bab1819b9a3e1f68269b8dd31f358" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_area_2_tile_stained_2.png" +dest_files=["res://.godot/imported/column circle room 2_area_2_tile_stained_2.png-91526ae11eb5f7138c5c58f31317378b.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_asdasd.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_asdasd.png new file mode 100644 index 000000000..56208f7f8 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_asdasd.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_asdasd.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_asdasd.png.import new file mode 100644 index 000000000..caa9c5a68 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_asdasd.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ca0d4lof0ngkx" +path.bptc="res://.godot/imported/column circle room 2_asdasd.png-8a70e597e59b544b841f74531575cd51.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "93d8e2fc7667d44e06b16151fddeec6f" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_asdasd.png" +dest_files=["res://.godot/imported/column circle room 2_asdasd.png-8a70e597e59b544b841f74531575cd51.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block2.png new file mode 100644 index 000000000..bf52aed5c Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block2.png.import new file mode 100644 index 000000000..4ca730464 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8q0hewldmh6x" +path.bptc="res://.godot/imported/column circle room 2_block2.png-14b9551a16f81d9328ff978980f3580b.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d1e467ed11c1033c043e22eeefb67920" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_block2.png" +dest_files=["res://.godot/imported/column circle room 2_block2.png-14b9551a16f81d9328ff978980f3580b.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block3.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block3.png new file mode 100644 index 000000000..8994cd19b Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block3.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block3.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block3.png.import new file mode 100644 index 000000000..1426c93c9 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block3.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctnr67fxeo0t0" +path.bptc="res://.godot/imported/column circle room 2_block3.png-7448953ccc7f63aff957ede8857ac7bd.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "8bfb76924d5585ed4ac9960d6072ff2f" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_block3.png" +dest_files=["res://.godot/imported/column circle room 2_block3.png-7448953ccc7f63aff957ede8857ac7bd.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block4.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block4.png new file mode 100644 index 000000000..f9d88414d Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block4.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block4.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block4.png.import new file mode 100644 index 000000000..f2b91d351 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_block4.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8oay7x6qoaql" +path.bptc="res://.godot/imported/column circle room 2_block4.png-9c5a96e1c6148c40e5c27c2b0583615c.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "861fb6d8a76f3d19b76d38e6eb83e58b" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_block4.png" +dest_files=["res://.godot/imported/column circle room 2_block4.png-9c5a96e1c6148c40e5c27c2b0583615c.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae.png new file mode 100644 index 000000000..57085b82f Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae.png.import new file mode 100644 index 000000000..6f4f8884d --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyhax6txcd5ce" +path.bptc="res://.godot/imported/column circle room 2_drae.png-b4bada17067ef05e8b67bbdbd74b2c29.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "5d06f219771bb8f1df6212d307e16d11" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_drae.png" +dest_files=["res://.godot/imported/column circle room 2_drae.png-b4bada17067ef05e8b67bbdbd74b2c29.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae2.png new file mode 100644 index 000000000..d0b3cc00b Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae2.png.import new file mode 100644 index 000000000..f543444f2 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_drae2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ieo3ecoanxn5" +path.bptc="res://.godot/imported/column circle room 2_drae2.png-e996dfbf22c053cacb63d12c8235612a.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "6d4fbfe60e16ffebbcbef46cc9993c9e" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_drae2.png" +dest_files=["res://.godot/imported/column circle room 2_drae2.png-e996dfbf22c053cacb63d12c8235612a.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_eyeblock.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_eyeblock.png new file mode 100644 index 000000000..66dc9b8c5 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_eyeblock.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_eyeblock.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_eyeblock.png.import new file mode 100644 index 000000000..8adfe5abc --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_eyeblock.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6kd8htb571wl" +path.bptc="res://.godot/imported/column circle room 2_eyeblock.png-7f91ff11e6541d6e8b091e404bec6aef.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "1d8d5be55287e08889d4d3f61a5e6472" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_eyeblock.png" +dest_files=["res://.godot/imported/column circle room 2_eyeblock.png-7f91ff11e6541d6e8b091e404bec6aef.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_floral_single_tile.jpg b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_floral_single_tile.jpg new file mode 100644 index 000000000..d32645668 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_floral_single_tile.jpg differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_floral_single_tile.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_floral_single_tile.jpg.import new file mode 100644 index 000000000..8732867b6 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_floral_single_tile.jpg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfjo5urkg5u73" +path.bptc="res://.godot/imported/column circle room 2_floral_single_tile.jpg-01211203fd42029f7e68c33472ff0caf.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "c887e8428ade4b351942da4003d1076d" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_floral_single_tile.jpg" +dest_files=["res://.godot/imported/column circle room 2_floral_single_tile.jpg-01211203fd42029f7e68c33472ff0caf.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_flowers-in-water.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_flowers-in-water.png new file mode 100644 index 000000000..2de1e9c59 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_flowers-in-water.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_flowers-in-water.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_flowers-in-water.png.import new file mode 100644 index 000000000..839e085d7 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_flowers-in-water.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ma4uc1p8s0jr" +path.bptc="res://.godot/imported/column circle room 2_flowers-in-water.png-a31cdd87d1fb2a9ea66c9f0d034d171a.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "931fa95b60ac6d87503a38e6c380d717" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_flowers-in-water.png" +dest_files=["res://.godot/imported/column circle room 2_flowers-in-water.png-a31cdd87d1fb2a9ea66c9f0d034d171a.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_greenery_!.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_greenery_!.png new file mode 100644 index 000000000..29ccc9457 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_greenery_!.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_greenery_!.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_greenery_!.png.import new file mode 100644 index 000000000..54535e655 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_greenery_!.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://km1gedd8lw0e" +path.bptc="res://.godot/imported/column circle room 2_greenery_!.png-e4891c7a4bf4f4352c8132112d62303d.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "2c7cbfb6f06f97da081f7e602845bd77" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_greenery_!.png" +dest_files=["res://.godot/imported/column circle room 2_greenery_!.png-e4891c7a4bf4f4352c8132112d62303d.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imag2esnormal.jpg b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imag2esnormal.jpg new file mode 100644 index 000000000..a81ceb4c1 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imag2esnormal.jpg differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imag2esnormal.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imag2esnormal.jpg.import new file mode 100644 index 000000000..541838c4d --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imag2esnormal.jpg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://o1nxml12l0m4" +path.bptc="res://.godot/imported/column circle room 2_imag2esnormal.jpg-bdebed335b451c972a0a15e577d82c38.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "12640cd31202859f53cac01183bd9a66" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_imag2esnormal.jpg" +dest_files=["res://.godot/imported/column circle room 2_imag2esnormal.jpg-bdebed335b451c972a0a15e577d82c38.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg new file mode 100644 index 000000000..96756450c Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg.import new file mode 100644 index 000000000..c7d817fbb --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8udg18wxoy64" +path.bptc="res://.godot/imported/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg-0d51646a68cf8f082ec5815cdecc9ea3.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "9bf65998b727acdcdc77607fce2d8c49" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg" +dest_files=["res://.godot/imported/column circle room 2_imgonline-com-ua-TextureSeamless-WI4C0zx4dE76nh60.jpg-0d51646a68cf8f082ec5815cdecc9ea3.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock2.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock2.png new file mode 100644 index 000000000..0d0c94776 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock2.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock2.png.import new file mode 100644 index 000000000..3c0da09b1 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock2.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvjey5d0khadc" +path.bptc="res://.godot/imported/column circle room 2_inner_rock2.png-58a21d5e979924b740d13d13cf77b043.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e04fec2dfd0084e844b8f42edb103b4a" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_inner_rock2.png" +dest_files=["res://.godot/imported/column circle room 2_inner_rock2.png-58a21d5e979924b740d13d13cf77b043.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock_3.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock_3.png new file mode 100644 index 000000000..3d9798613 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock_3.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock_3.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock_3.png.import new file mode 100644 index 000000000..a0781ef77 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_inner_rock_3.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvx6xohvrpnvf" +path.bptc="res://.godot/imported/column circle room 2_inner_rock_3.png-705051923d9f179ee38680db576530c6.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "e0c51743dfd0b456efca004528133fe5" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_inner_rock_3.png" +dest_files=["res://.godot/imported/column circle room 2_inner_rock_3.png-705051923d9f179ee38680db576530c6.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_lime_hand_relief.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_lime_hand_relief.png new file mode 100644 index 000000000..04fef0894 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_lime_hand_relief.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_lime_hand_relief.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_lime_hand_relief.png.import new file mode 100644 index 000000000..e616fb330 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_lime_hand_relief.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsg3pm35ave8e" +path.bptc="res://.godot/imported/column circle room 2_lime_hand_relief.png-4766283372974a622608453ec8583500.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "1493c571147fcafccb4754b97c33ad1f" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_lime_hand_relief.png" +dest_files=["res://.godot/imported/column circle room 2_lime_hand_relief.png-4766283372974a622608453ec8583500.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_motapo.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_motapo.png new file mode 100644 index 000000000..521d1584d Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_motapo.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_motapo.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_motapo.png.import new file mode 100644 index 000000000..3d31a47d6 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_motapo.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5qdp8ts065p4" +path.bptc="res://.godot/imported/column circle room 2_motapo.png-0ed797b24be8dc3f50343c3df004f5b9.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "50776c4f461a0f8f9e866ff539840adb" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_motapo.png" +dest_files=["res://.godot/imported/column circle room 2_motapo.png-0ed797b24be8dc3f50343c3df004f5b9.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GOLD.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GOLD.png new file mode 100644 index 000000000..58cd53236 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GOLD.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GOLD.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GOLD.png.import new file mode 100644 index 000000000..ef2e629aa --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GOLD.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7sxa6embqm4c" +path.bptc="res://.godot/imported/column circle room 2_mother_GOLD.png-37bb9f962e1d81bc7f2462c77424e0c1.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "90f0f5e6f0fd9cd00e8f16c0acae0e3d" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_mother_GOLD.png" +dest_files=["res://.godot/imported/column circle room 2_mother_GOLD.png-37bb9f962e1d81bc7f2462c77424e0c1.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GREEN.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GREEN.png new file mode 100644 index 000000000..bd946f469 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GREEN.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GREEN.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GREEN.png.import new file mode 100644 index 000000000..adaa2e52e --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mother_GREEN.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwvnrw7nfpofh" +path.bptc="res://.godot/imported/column circle room 2_mother_GREEN.png-63528bbfdc5ae3bbd102aa02e2775855.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "4f403b2391e8c60a51fd200a778b6210" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_mother_GREEN.png" +dest_files=["res://.godot/imported/column circle room 2_mother_GREEN.png-63528bbfdc5ae3bbd102aa02e2775855.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mottled.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mottled.png new file mode 100644 index 000000000..a05628ba0 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mottled.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mottled.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mottled.png.import new file mode 100644 index 000000000..c9ade52bf --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_mottled.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqnbrx5otjswr" +path.bptc="res://.godot/imported/column circle room 2_mottled.png-f7160e3012534f2526464670bf485f15.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "54f201920cc39079cdcde8f0880ce398" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_mottled.png" +dest_files=["res://.godot/imported/column circle room 2_mottled.png-f7160e3012534f2526464670bf485f15.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_others_0020_color_1k.jpg b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_others_0020_color_1k.jpg new file mode 100644 index 000000000..a1321c5dd Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_others_0020_color_1k.jpg differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_others_0020_color_1k.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_others_0020_color_1k.jpg.import new file mode 100644 index 000000000..110b39586 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_others_0020_color_1k.jpg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cl87gyj8lorf" +path.bptc="res://.godot/imported/column circle room 2_others_0020_color_1k.jpg-a7922a649faf13b52929c1a2318555e4.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "bc10b1bf1afc3cf8ad751a4e3f504389" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_others_0020_color_1k.jpg" +dest_files=["res://.godot/imported/column circle room 2_others_0020_color_1k.jpg-a7922a649faf13b52929c1a2318555e4.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_railing-2_billboard.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_railing-2_billboard.png new file mode 100644 index 000000000..d203d1272 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_railing-2_billboard.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_railing-2_billboard.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_railing-2_billboard.png.import new file mode 100644 index 000000000..0ff85412a --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_railing-2_billboard.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://iyo0uaqds3jh" +path.bptc="res://.godot/imported/column circle room 2_railing-2_billboard.png-812880dd119ea0f3db3ce5770efdbf39.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "4ea4d247ba36778cd7dc8d5f011f9cf0" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_railing-2_billboard.png" +dest_files=["res://.godot/imported/column circle room 2_railing-2_billboard.png-812880dd119ea0f3db3ce5770efdbf39.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_red-petals.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_red-petals.png new file mode 100644 index 000000000..cfb500ad9 Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_red-petals.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_red-petals.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_red-petals.png.import new file mode 100644 index 000000000..7c2795b98 --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_red-petals.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3ro7wrov7052" +path.bptc="res://.godot/imported/column circle room 2_red-petals.png-824dc8302378424f966aa714b68152f9.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "8cf756df17bc1157f235f6c62668f055" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_red-petals.png" +dest_files=["res://.godot/imported/column circle room 2_red-petals.png-824dc8302378424f966aa714b68152f9.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_swirled_column _AREA222.png b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_swirled_column _AREA222.png new file mode 100644 index 000000000..de341d65a Binary files /dev/null and b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_swirled_column _AREA222.png differ diff --git a/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_swirled_column _AREA222.png.import b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_swirled_column _AREA222.png.import new file mode 100644 index 000000000..1d39e13bf --- /dev/null +++ b/Zennysoft.Game.Ma/src/map/dungeon/special collision models/column circle room 2_swirled_column _AREA222.png.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bgo0nn3vkp0sl" +path.bptc="res://.godot/imported/column circle room 2_swirled_column _AREA222.png-2c3430757050266b1f0efdfd4c2fcc0b.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "eb893a496c2c6a9fff5bfa9e12d7e83f" +} + +[deps] + +source_file="res://src/map/dungeon/special collision models/column circle room 2_swirled_column _AREA222.png" +dest_files=["res://.godot/imported/column circle room 2_swirled_column _AREA222.png-2c3430757050266b1f0efdfd4c2fcc0b.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=true +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Zennysoft.Game.Ma/src/menu/LoadingScreen.cs b/Zennysoft.Game.Ma/src/menu/LoadingScreen.cs index ca1547d03..fbadef58d 100644 --- a/Zennysoft.Game.Ma/src/menu/LoadingScreen.cs +++ b/Zennysoft.Game.Ma/src/menu/LoadingScreen.cs @@ -7,6 +7,28 @@ public partial class LoadingScreen : Control { public override void _Notification(int what) => this.Notify(what); - [Node] - public ProgressBar ProgressBar { get; set; } = default!; + [Node] public ProgressBar ProgressBar { get; set; } = default!; + + [Node] public AnimationPlayer AnimationPlayer { get; set; } = default!; + + public void OnResolved() + { + AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished; + } + + private void AnimationPlayer_AnimationFinished(StringName animName) + { + if (animName == "fade_out") + Hide(); + } + + public void ShowLoadingScreen() + { + Show(); + } + + public void HideLoadingScreen() + { + AnimationPlayer.Play("fade_out"); + } } diff --git a/Zennysoft.Game.Ma/src/menu/LoadingScreen.tscn b/Zennysoft.Game.Ma/src/menu/LoadingScreen.tscn index 2b17c42e2..b60baf621 100644 --- a/Zennysoft.Game.Ma/src/menu/LoadingScreen.tscn +++ b/Zennysoft.Game.Ma/src/menu/LoadingScreen.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://cpjlj7kxdhv16"] +[gd_scene load_steps=9 format=3 uid="uid://cpjlj7kxdhv16"] [ext_resource type="Script" uid="uid://b07ueredevhr3" path="res://src/menu/LoadingScreen.cs" id="1_5uxhf"] [ext_resource type="Texture2D" uid="uid://d2krh4u2v06k5" path="res://src/ui/rendered_assets/SCREEN_RENDERS_Loading_720_16_9.png" id="2_xfkmi"] @@ -8,8 +8,61 @@ [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xfkmi"] bg_color = Color(0.804743, 0.804743, 0.804743, 1) +[sub_resource type="Animation" id="Animation_xfkmi"] +resource_name = "fade_in" +length = 0.500003 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_6i7rn"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0, 0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_jrbvh"] +resource_name = "fade_out" +length = 1.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_jrbvh"] +_data = { +&"RESET": SubResource("Animation_6i7rn"), +&"fade_in": SubResource("Animation_xfkmi"), +&"fade_out": SubResource("Animation_jrbvh") +} + [node name="LoadingScreen" type="Control"] -visible = false layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -48,3 +101,18 @@ offset_bottom = 981.0 theme_override_styles/background = SubResource("StyleBoxTexture_xfkmi") theme_override_styles/fill = SubResource("StyleBoxFlat_xfkmi") show_percentage = false + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +&"": SubResource("AnimationLibrary_jrbvh") +} diff --git a/Zennysoft.Game.Ma/src/menu/MainMenu.tscn b/Zennysoft.Game.Ma/src/menu/MainMenu.tscn index aba6810fe..1af5c8460 100644 --- a/Zennysoft.Game.Ma/src/menu/MainMenu.tscn +++ b/Zennysoft.Game.Ma/src/menu/MainMenu.tscn @@ -1,7 +1,10 @@ -[gd_scene load_steps=3 format=3 uid="uid://rfvnddfqufho"] +[gd_scene load_steps=6 format=3 uid="uid://rfvnddfqufho"] [ext_resource type="Script" uid="uid://14b7o2c6cgry" path="res://src/menu/MainMenu.cs" id="1_y6722"] +[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="2_2ijnm"] [ext_resource type="Shortcut" uid="uid://dumkrjur22k2a" path="res://src/ui/ButtonShortcut.tres" id="2_7fwjx"] +[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="2_dftre"] +[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="3_dftre"] [node name="MainMenu" type="Control"] layout_mode = 3 @@ -19,45 +22,78 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -color = Color(0.137255, 0.121569, 0.12549, 1) +color = Color(0.0962047, 0.0962048, 0.0962047, 1) [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 anchor_bottom = 1.0 +offset_left = -59.0 +offset_top = -171.0 +offset_right = 59.0 grow_horizontal = 2 -grow_vertical = 2 -theme_override_constants/margin_left = 100 -theme_override_constants/margin_top = 100 -theme_override_constants/margin_right = 100 -theme_override_constants/margin_bottom = 100 +grow_vertical = 0 +theme_override_constants/margin_bottom = 200 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +[node name="CenterContainer" type="CenterContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/CenterContainer"] layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 -[node name="StartGameButton" type="Button" parent="MarginContainer/VBoxContainer"] +[node name="StartGameButton" type="Button" parent="MarginContainer/CenterContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 focus_neighbor_bottom = NodePath("../EnemyViewerButton") focus_next = NodePath("../EnemyViewerButton") theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1) +theme_override_fonts/font = ExtResource("2_dftre") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("2_2ijnm") +theme_override_styles/disabled_mirrored = ExtResource("3_dftre") +theme_override_styles/disabled = ExtResource("3_dftre") +theme_override_styles/hover_pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/hover_pressed = ExtResource("3_dftre") +theme_override_styles/hover_mirrored = ExtResource("3_dftre") +theme_override_styles/hover = ExtResource("3_dftre") +theme_override_styles/pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/pressed = ExtResource("3_dftre") +theme_override_styles/normal_mirrored = ExtResource("3_dftre") +theme_override_styles/normal = ExtResource("3_dftre") shortcut = ExtResource("2_7fwjx") text = "Start Game" +alignment = 0 -[node name="EnemyViewerButton" type="Button" parent="MarginContainer/VBoxContainer"] +[node name="EnemyViewerButton" type="Button" parent="MarginContainer/CenterContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 focus_neighbor_bottom = NodePath("../GalleryButton") focus_next = NodePath("../GalleryButton") focus_previous = NodePath("../StartGameButton") theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1) +theme_override_fonts/font = ExtResource("2_dftre") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("2_2ijnm") +theme_override_styles/disabled_mirrored = ExtResource("3_dftre") +theme_override_styles/disabled = ExtResource("3_dftre") +theme_override_styles/hover_pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/hover_pressed = ExtResource("3_dftre") +theme_override_styles/hover_mirrored = ExtResource("3_dftre") +theme_override_styles/hover = ExtResource("3_dftre") +theme_override_styles/pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/pressed = ExtResource("3_dftre") +theme_override_styles/normal_mirrored = ExtResource("3_dftre") +theme_override_styles/normal = ExtResource("3_dftre") shortcut = ExtResource("2_7fwjx") text = "Enemy Viewer" +alignment = 0 -[node name="GalleryButton" type="Button" parent="MarginContainer/VBoxContainer"] +[node name="GalleryButton" type="Button" parent="MarginContainer/CenterContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 focus_neighbor_top = NodePath("../EnemyViewerButton") @@ -65,10 +101,24 @@ focus_neighbor_bottom = NodePath("../OptionsButton") focus_next = NodePath("../OptionsButton") focus_previous = NodePath("../EnemyViewerButton") theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1) +theme_override_fonts/font = ExtResource("2_dftre") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("2_2ijnm") +theme_override_styles/disabled_mirrored = ExtResource("3_dftre") +theme_override_styles/disabled = ExtResource("3_dftre") +theme_override_styles/hover_pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/hover_pressed = ExtResource("3_dftre") +theme_override_styles/hover_mirrored = ExtResource("3_dftre") +theme_override_styles/hover = ExtResource("3_dftre") +theme_override_styles/pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/pressed = ExtResource("3_dftre") +theme_override_styles/normal_mirrored = ExtResource("3_dftre") +theme_override_styles/normal = ExtResource("3_dftre") shortcut = ExtResource("2_7fwjx") text = "Gallery" +alignment = 0 -[node name="OptionsButton" type="Button" parent="MarginContainer/VBoxContainer"] +[node name="OptionsButton" type="Button" parent="MarginContainer/CenterContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 focus_neighbor_top = NodePath("../GalleryButton") @@ -76,10 +126,24 @@ focus_neighbor_bottom = NodePath("../QuitButton") focus_next = NodePath("../QuitButton") focus_previous = NodePath("../GalleryButton") theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1) +theme_override_fonts/font = ExtResource("2_dftre") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("2_2ijnm") +theme_override_styles/disabled_mirrored = ExtResource("3_dftre") +theme_override_styles/disabled = ExtResource("3_dftre") +theme_override_styles/hover_pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/hover_pressed = ExtResource("3_dftre") +theme_override_styles/hover_mirrored = ExtResource("3_dftre") +theme_override_styles/hover = ExtResource("3_dftre") +theme_override_styles/pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/pressed = ExtResource("3_dftre") +theme_override_styles/normal_mirrored = ExtResource("3_dftre") +theme_override_styles/normal = ExtResource("3_dftre") shortcut = ExtResource("2_7fwjx") text = "Options" +alignment = 0 -[node name="QuitButton" type="Button" parent="MarginContainer/VBoxContainer"] +[node name="QuitButton" type="Button" parent="MarginContainer/CenterContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 focus_neighbor_top = NodePath("../OptionsButton") @@ -87,6 +151,20 @@ focus_neighbor_bottom = NodePath(".") focus_next = NodePath(".") focus_previous = NodePath("../OptionsButton") theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1) +theme_override_fonts/font = ExtResource("2_dftre") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("2_2ijnm") +theme_override_styles/disabled_mirrored = ExtResource("3_dftre") +theme_override_styles/disabled = ExtResource("3_dftre") +theme_override_styles/hover_pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/hover_pressed = ExtResource("3_dftre") +theme_override_styles/hover_mirrored = ExtResource("3_dftre") +theme_override_styles/hover = ExtResource("3_dftre") +theme_override_styles/pressed_mirrored = ExtResource("3_dftre") +theme_override_styles/pressed = ExtResource("3_dftre") +theme_override_styles/normal_mirrored = ExtResource("3_dftre") +theme_override_styles/normal = ExtResource("3_dftre") shortcut = ExtResource("2_7fwjx") text = "Quit " +alignment = 0 diff --git a/Zennysoft.Game.Ma/src/menu/splash/Splash.tscn b/Zennysoft.Game.Ma/src/menu/splash/Splash.tscn index bded16df1..89e70ded5 100644 --- a/Zennysoft.Game.Ma/src/menu/splash/Splash.tscn +++ b/Zennysoft.Game.Ma/src/menu/splash/Splash.tscn @@ -61,4 +61,3 @@ unique_name_in_owner = true libraries = { &"": SubResource("AnimationLibrary_jiqgw") } -autoplay = "intro" diff --git a/Zennysoft.Game.Ma/src/minimap/Minimap.tscn b/Zennysoft.Game.Ma/src/minimap/Minimap.tscn index 86fffa658..935f9f23e 100644 --- a/Zennysoft.Game.Ma/src/minimap/Minimap.tscn +++ b/Zennysoft.Game.Ma/src/minimap/Minimap.tscn @@ -55,6 +55,7 @@ grow_vertical = 2 script = ExtResource("1_yn75n") [node name="CenterContainer" type="CenterContainer" parent="."] +custom_minimum_size = Vector2(400, 400) layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -63,13 +64,13 @@ grow_horizontal = 2 grow_vertical = 2 [node name="SubViewportContainer" type="SubViewportContainer" parent="CenterContainer"] -custom_minimum_size = Vector2(350, 300) +custom_minimum_size = Vector2(450, 400) layout_mode = 2 [node name="SubViewport" type="SubViewport" parent="CenterContainer/SubViewportContainer"] transparent_bg = true handle_input_locally = false -size = Vector2i(350, 300) +size = Vector2i(400, 350) render_target_update_mode = 4 [node name="MinimapCamera" type="Camera3D" parent="CenterContainer/SubViewportContainer/SubViewport"] @@ -84,24 +85,26 @@ size = 100.0 near = 0.001 [node name="MarginContainer" type="MarginContainer" parent="CenterContainer/SubViewportContainer/SubViewport"] -anchors_preset = 15 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -theme_override_constants/margin_left = 200 -theme_override_constants/margin_top = 200 +offset_left = -190.0 +offset_top = -48.0 +grow_horizontal = 0 +grow_vertical = 0 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 -[node name="Control" type="Control" parent="CenterContainer/SubViewportContainer/SubViewport/MarginContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/SubViewportContainer/SubViewport/MarginContainer"] layout_mode = 2 -[node name="LayerText" type="Label" parent="CenterContainer/SubViewportContainer/SubViewport/MarginContainer/Control"] +[node name="LayerText" type="Label" parent="CenterContainer/SubViewportContainer/SubViewport/MarginContainer/HBoxContainer"] custom_minimum_size = Vector2(80, 15) layout_mode = 2 -offset_left = -14.0 -offset_top = 26.0 -offset_right = 136.0 -offset_bottom = 68.0 size_flags_vertical = 6 theme = SubResource("Theme_75ec6") theme_override_colors/font_color = Color(0.792157, 0.698039, 0.643137, 1) @@ -114,14 +117,10 @@ text = "LAYER" label_settings = SubResource("LabelSettings_yn75n") vertical_alignment = 2 -[node name="LayerNumberText" type="Label" parent="CenterContainer/SubViewportContainer/SubViewport/MarginContainer/Control"] +[node name="LayerNumberText" type="Label" parent="CenterContainer/SubViewportContainer/SubViewport/MarginContainer/HBoxContainer"] unique_name_in_owner = true custom_minimum_size = Vector2(80, 15) layout_mode = 2 -offset_left = 79.0 -offset_top = 22.0 -offset_right = 159.0 -offset_bottom = 74.0 theme = SubResource("Theme_qgswn") theme_override_colors/font_color = Color(1, 1, 1, 1) theme_override_colors/font_shadow_color = Color(1, 1, 1, 0.027451) diff --git a/Zennysoft.Game.Ma/src/player/Player.cs b/Zennysoft.Game.Ma/src/player/Player.cs index 5f23e6cdf..950f62947 100644 --- a/Zennysoft.Game.Ma/src/player/Player.cs +++ b/Zennysoft.Game.Ma/src/player/Player.cs @@ -257,7 +257,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide public void PlayJumpScareAnimation() => PlayerFXAnimations.Play("jump_scare"); - public void IdentifyItem(InventoryItem unidentifiedItem) => _itemReroller.RerollItem(unidentifiedItem, Inventory); + public void IdentifyItem(IBaseInventoryItem unidentifiedItem) => _itemReroller.RerollItem(unidentifiedItem, Inventory); public int TotalAttack => AttackComponent.CurrentAttack.Value + EquipmentComponent.BonusAttack; @@ -298,7 +298,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta)); } - public void Equip(EquipableItem equipable) + public void Equip(IEquipableItem equipable) { if (equipable.ItemTag == ItemTag.MysteryItem) { @@ -310,8 +310,9 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide HealthComponent.RaiseMaximumHP(equipable.BonusHP, false); VTComponent.RaiseMaximumVT(equipable.BonusVT, false); - if (equipable.Augment != null) - equipable.Augment.AugmentType.Apply(); + if (equipable is IAugmentableItem augmentable) + if (augmentable.Augment != null) + augmentable.Augment.AugmentType.Apply(); EquipmentComponent.Equip(equipable); SfxDatabase.Instance.Play(SoundEffect.Equip); @@ -320,13 +321,13 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide PersuaderCrosshair.Show(); } - public void Unequip(EquipableItem equipable) + public void Unequip(IEquipableItem equipable) { HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP); VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT); - if (equipable.Augment != null) - equipable.Augment.AugmentType.Remove(); + if (equipable is IAugmentableItem augmentItem && augmentItem.Augment != null) + augmentItem.Augment.AugmentType.Remove(); EquipmentComponent.Unequip(equipable); SfxDatabase.Instance.Play(SoundEffect.Unequip); @@ -335,15 +336,14 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide PersuaderCrosshair.Hide(); } - public void ApplyNewAugment(IAugmentItem augmentItem, EquipableItem equipableItem) + public void ApplyNewAugment(IAugmentItem jewel, IAugmentableItem augmentableItem) { - var jewel = augmentItem as Jewel; Inventory.Remove(jewel); - ApplyNewAugment((dynamic)equipableItem, jewel.Augment); + ApplyNewAugment((dynamic)augmentableItem, (jewel as Jewel).Stats.JewelTag); - if (EquipmentComponent.IsItemEquipped(equipableItem)) - equipableItem.Augment.AugmentType.Apply(); + if (augmentableItem is IEquipableItem equipable && EquipmentComponent.IsItemEquipped(equipable)) + augmentableItem.Augment.AugmentType.Apply(); } private void ApplyNewAugment(Weapon weapon, JewelTags tag) @@ -772,11 +772,11 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide private async void CollisionDetector_AreaEntered(Area3D area) { - if (area.GetParent() is InventoryItem inventoryItem) + if (area.GetParent() is IBaseInventoryItem inventoryItem) { var isAdded = Inventory.PickUpItem(inventoryItem); if (isAdded) - inventoryItem.QueueFree(); + ((Node3D)inventoryItem).QueueFree(); } if (area.GetParent() is DroppedItem droppedItem) { diff --git a/Zennysoft.Game.Ma/src/player/Player.tscn b/Zennysoft.Game.Ma/src/player/Player.tscn index 6e875f8c7..b588b22f5 100644 --- a/Zennysoft.Game.Ma/src/player/Player.tscn +++ b/Zennysoft.Game.Ma/src/player/Player.tscn @@ -10340,8 +10340,6 @@ animations = [{ collision_layer = 802 collision_mask = 775 script = ExtResource("1_xcol5") -HealthTimerIsActive = true -AutoRevive = true [node name="MainCollision" type="CollisionShape3D" parent="."] unique_name_in_owner = true diff --git a/Zennysoft.Game.Ma/src/ui/in_game_ui/InGameUI.tscn b/Zennysoft.Game.Ma/src/ui/in_game_ui/InGameUI.tscn index 49e652a45..15d1bd22d 100644 --- a/Zennysoft.Game.Ma/src/ui/in_game_ui/InGameUI.tscn +++ b/Zennysoft.Game.Ma/src/ui/in_game_ui/InGameUI.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://b1muxus5qdbeu"] +[gd_scene load_steps=12 format=3 uid="uid://b8tclvmc7j7dl"] [ext_resource type="Script" uid="uid://dlq2mkhl4pe7a" path="res://src/ui/in_game_ui/InGameUI.cs" id="1_sc13i"] [ext_resource type="PackedScene" uid="uid://bwbofurcvf3yh" path="res://src/minimap/Minimap.tscn" id="2_6sfje"] @@ -6,13 +6,12 @@ [ext_resource type="PackedScene" uid="uid://dxl8il8f13c2x" path="res://src/ui/player_ui/PlayerInfoUI.tscn" id="4_46s5l"] [ext_resource type="PackedScene" uid="uid://bea2waybmgd6u" path="res://src/ui/teleport_prompt/UseTeleportPrompt.tscn" id="5_h1hgq"] [ext_resource type="PackedScene" uid="uid://x0f1ol50nnp3" path="res://src/ui/in_game_ui/InventoryMessageUI.tscn" id="6_y26qy"] -[ext_resource type="Texture2D" uid="uid://dnt8myee0ju3v" path="res://src/ui/UI Front with Transparency.png" id="7_higkc"] [ext_resource type="PackedScene" uid="uid://8f3dk16nj0dn" path="res://src/menu/DebugMenu.tscn" id="7_llomk"] -[ext_resource type="PackedScene" uid="uid://c3e6hbctay1us" path="res://src/ui/inventory_menu/InventoryMenu2.tscn" id="9_ur8ag"] +[ext_resource type="Texture2D" uid="uid://dnt8myee0ju3v" path="res://src/ui/UI Front with Transparency.png" id="9_f46co"] +[ext_resource type="PackedScene" uid="uid://cbxw70qa7gifp" path="res://src/ui/inventory_menu/InventoryMenu.tscn" id="9_ur8ag"] [ext_resource type="PackedScene" uid="uid://dwa7o6hkkwjg1" path="res://src/ui/inventory_menu/ItemRescueMenu.tscn" id="10_higkc"] -[sub_resource type="StyleBoxLine" id="StyleBoxLine_ur8ag"] -color = Color(0.792157, 0.698039, 0.643137, 1) +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_higkc"] [node name="InGameUI" type="Control"] process_mode = 3 @@ -76,18 +75,36 @@ visible = false custom_minimum_size = Vector2(1440, 1080) layout_mode = 2 -[node name="Panel" type="ColorRect" parent="HBoxContainer"] -custom_minimum_size = Vector2(480, 0) -layout_mode = 2 -color = Color(0, 0, 0, 1) +[node name="InventoryMenu" parent="." instance=ExtResource("9_ur8ag")] +unique_name_in_owner = true +layout_mode = 1 -[node name="MinimapZone" type="Panel" parent="HBoxContainer/Panel"] -layout_mode = 2 -offset_top = 14.0 -offset_right = 480.0 -offset_bottom = 14.0 +[node name="ItemRescueMenu" parent="." instance=ExtResource("10_higkc")] +unique_name_in_owner = true +visible = false +layout_mode = 1 -[node name="MiniMap" parent="HBoxContainer/Panel/MinimapZone" instance=ExtResource("2_6sfje")] +[node name="Sidebar Container" type="PanelContainer" parent="."] +custom_minimum_size = Vector2(459, 0) +layout_mode = 1 +anchors_preset = 11 +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 0 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_higkc") + +[node name="MinimapContainer" type="MarginContainer" parent="Sidebar Container"] +layout_mode = 2 +theme_override_constants/margin_left = 15 +theme_override_constants/margin_top = 0 + +[node name="MinimapZone" type="Panel" parent="Sidebar Container/MinimapContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="MiniMap" parent="Sidebar Container/MinimapContainer/MinimapZone" instance=ExtResource("2_6sfje")] unique_name_in_owner = true custom_minimum_size = Vector2(50, 50) layout_mode = 2 @@ -101,48 +118,26 @@ offset_top = 354.0 offset_right = 423.0 offset_bottom = 620.0 -[node name="TextureRect" type="TextureRect" parent="HBoxContainer/Panel"] -texture_filter = 2 -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_bottom = 1072.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = ExtResource("7_higkc") -stretch_mode = 4 +[node name="Sidebar Texture" type="TextureRect" parent="Sidebar Container"] +layout_mode = 2 +texture = ExtResource("9_f46co") -[node name="PlayerInfoUI" parent="HBoxContainer/Panel" instance=ExtResource("4_46s5l")] +[node name="PlayerInfoContainer" type="MarginContainer" parent="Sidebar Container"] +layout_mode = 2 +theme_override_constants/margin_left = 50 +theme_override_constants/margin_top = 200 + +[node name="PlayerInfoUI" parent="Sidebar Container/PlayerInfoContainer" instance=ExtResource("4_46s5l")] unique_name_in_owner = true layout_mode = 2 -anchors_preset = 0 -offset_left = 29.0 -offset_top = 197.0 -offset_right = 29.0 -offset_bottom = -746.0 - -[node name="HSeparator" type="HSeparator" parent="HBoxContainer/Panel"] -layout_mode = 2 -offset_left = 99.0 -offset_top = 326.0 -offset_right = 391.0 -offset_bottom = 332.0 -theme_override_styles/separator = SubResource("StyleBoxLine_ur8ag") - -[node name="Sigil Marker" type="ReferenceRect" parent="HBoxContainer/Panel"] -layout_mode = 2 -offset_left = 75.0 -offset_top = 813.0 -offset_right = 267.0 -offset_bottom = 1004.0 size_flags_vertical = 3 -[node name="InventoryMenu" parent="." instance=ExtResource("9_ur8ag")] -unique_name_in_owner = true -layout_mode = 1 +[node name="SigilContainer" type="MarginContainer" parent="Sidebar Container"] +layout_mode = 2 +theme_override_constants/margin_left = 50 +theme_override_constants/margin_top = 800 +theme_override_constants/margin_right = 175 +theme_override_constants/margin_bottom = 50 -[node name="ItemRescueMenu" parent="." instance=ExtResource("10_higkc")] -unique_name_in_owner = true -visible = false -layout_mode = 1 +[node name="ReferenceRect" type="ReferenceRect" parent="Sidebar Container/SigilContainer"] +layout_mode = 2 diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.cs b/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.cs new file mode 100644 index 000000000..6e85cdc21 --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.cs @@ -0,0 +1,165 @@ +using Chickensoft.AutoInject; +using Chickensoft.Introspection; +using Godot; +using System; +using Zennysoft.Game.Ma; +using Zennysoft.Ma.Adapter; + +[Meta(typeof(IAutoNode))] +public partial class ActionPanel : Panel +{ + public override void _Notification(int what) => this.Notify(what); + + private IBaseInventoryItem _currentlySelected; + + [Dependency] private IPlayer _player => this.DependOn(); + + [Dependency] private IGame _game => this.DependOn(); + + [Node] public Button InteractButton { get; set; } + + [Node] public Button ThrowButton { get; set; } + + [Node] public Button DropButton { get; set; } + + public event Action ActionPanelClosing; + + public event Action ReturnToGameAction; + + public event Action AugmentMenuRequested; + + public void OnResolved() + { + InteractButton.Pressed += InteractButton_Pressed; + ThrowButton.Pressed += ThrowButton_Pressed; + DropButton.Pressed += DropButton_Pressed; + } + + public void ShowPanel(IBaseInventoryItem selectedItem) + { + _currentlySelected = selectedItem; + SetOptions(selectedItem); + Show(); + } + + public void FocusActionPanel() + { + InteractButton.GrabFocus(); + } + + public void HideActionPanel() + { + InteractButton.Disabled = false; + ThrowButton.Disabled = false; + DropButton.Disabled = false; + ThrowButton.FocusMode = FocusModeEnum.All; + DropButton.FocusMode = FocusModeEnum.All; + ActionPanelClosing?.Invoke(); + } + + public override void _Input(InputEvent @event) + { + if (Visible && Input.IsActionJustPressed(GameInputs.Interact)) + { + GetViewport().SetInputAsHandled(); + HideActionPanel(); + } + } + + private void InteractButton_Pressed() + { + PerformAction((dynamic)_currentlySelected); + } + + private void ThrowButton_Pressed() + { + _game.ThrowItem(_currentlySelected); + _currentlySelected = null; + ActionPanelClosing?.Invoke(); + ReturnToGameAction?.Invoke(); + } + + private void DropButton_Pressed() + { + _game.DropItem(_currentlySelected); + _currentlySelected = null; + ActionPanelClosing?.Invoke(); + ReturnToGameAction?.Invoke(); + } + + private void SetOptions(IBaseInventoryItem item) + { + SetOptionsInternal((dynamic)item); + } + + private void ResetActionPanel() + { + InteractButton.Disabled = false; + ThrowButton.Disabled = false; + DropButton.Disabled = false; + ThrowButton.FocusMode = FocusModeEnum.All; + DropButton.FocusMode = FocusModeEnum.All; + } + + private void SetOptionsInternal(IEquipableItem equipable) + { + var isItemEquipped = _player.EquipmentComponent.IsItemEquipped(equipable); + InteractButton.Text = isItemEquipped ? "Unequip" : "Equip"; + InteractButton.Disabled = equipable.Glued; + ThrowButton.Disabled = equipable.Glued || isItemEquipped; + DropButton.Disabled = equipable.Glued || isItemEquipped; + ThrowButton.FocusMode = ThrowButton.Disabled ? FocusModeEnum.None : FocusModeEnum.All; + DropButton.FocusMode = DropButton.Disabled ? FocusModeEnum.None : FocusModeEnum.All; + } + + private void SetOptionsInternal(IAugmentItem equipable) + { + InteractButton.Text = "Augment"; + } + + private void SetOptionsInternal(IBaseInventoryItem baseItem) + { + InteractButton.Text = "Use"; + } + + private void PerformAction(IEquipableItem equipable) + { + if (_player.EquipmentComponent.IsItemEquipped(equipable)) + { + _player.EquipmentComponent.Unequip(equipable); + SfxDatabase.Instance.Play(SoundEffect.Unequip); + } + else + { + _player.EquipmentComponent.Equip(equipable); + SfxDatabase.Instance.Play(SoundEffect.Equip); + } + + _currentlySelected = null; + ActionPanelClosing?.Invoke(); + } + + private void PerformAction(Plastique plastique) + { + SfxDatabase.Instance.Play(SoundEffect.SelectUI); + _game.SetItem(plastique); + _currentlySelected = null; + ActionPanelClosing?.Invoke(); + ReturnToGameAction?.Invoke(); + } + + private void PerformAction(Jewel jewel) + { + SfxDatabase.Instance.Play(SoundEffect.SelectUI); + ActionPanelClosing?.Invoke(); + AugmentMenuRequested?.Invoke(); + } + + private void PerformAction(IBaseInventoryItem item) + { + SfxDatabase.Instance.Play(SoundEffect.SelectUI); + _game.UseItem(item); + _currentlySelected = null; + ActionPanelClosing?.Invoke(); + } +} diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.cs.uid b/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.cs.uid new file mode 100644 index 000000000..257ff35db --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.cs.uid @@ -0,0 +1 @@ +uid://dmbykkr6oev1q diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.tscn b/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.tscn new file mode 100644 index 000000000..37678bf80 --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/ActionPanel.tscn @@ -0,0 +1,113 @@ +[gd_scene load_steps=5 format=3 uid="uid://b648lhohtue70"] + +[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="1_kxuil"] +[ext_resource type="Script" uid="uid://dmbykkr6oev1q" path="res://src/ui/inventory_menu/ActionPanel.cs" id="1_r13ox"] +[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="2_r13ox"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g7ag1"] +bg_color = Color(0, 0, 0, 0.745098) + +[node name="ActionPanel" type="Panel"] +custom_minimum_size = Vector2(200, 200) +focus_mode = 2 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_g7ag1") +script = ExtResource("1_r13ox") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 + +[node name="ReferenceRect" type="ReferenceRect" parent="MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +border_width = 2.0 +editor_only = false + +[node name="MarginContainer" type="MarginContainer" parent="MarginContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 10 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/MarginContainer"] +layout_mode = 2 +alignment = 1 + +[node name="InteractButton" type="Button" parent="MarginContainer/MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 0 +focus_neighbor_left = NodePath(".") +focus_neighbor_top = NodePath(".") +focus_neighbor_right = NodePath(".") +focus_neighbor_bottom = NodePath("../ThrowButton") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("1_kxuil") +theme_override_styles/disabled_mirrored = ExtResource("2_r13ox") +theme_override_styles/disabled = ExtResource("2_r13ox") +theme_override_styles/hover_pressed_mirrored = ExtResource("2_r13ox") +theme_override_styles/hover_pressed = ExtResource("2_r13ox") +theme_override_styles/hover_mirrored = ExtResource("2_r13ox") +theme_override_styles/hover = ExtResource("2_r13ox") +theme_override_styles/pressed_mirrored = ExtResource("2_r13ox") +theme_override_styles/pressed = ExtResource("2_r13ox") +theme_override_styles/normal_mirrored = ExtResource("2_r13ox") +theme_override_styles/normal = ExtResource("2_r13ox") +text = "Interact" +alignment = 0 + +[node name="ThrowButton" type="Button" parent="MarginContainer/MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 0 +focus_neighbor_left = NodePath(".") +focus_neighbor_top = NodePath("../InteractButton") +focus_neighbor_right = NodePath(".") +focus_neighbor_bottom = NodePath("../DropButton") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("1_kxuil") +theme_override_styles/disabled_mirrored = ExtResource("2_r13ox") +theme_override_styles/disabled = ExtResource("2_r13ox") +theme_override_styles/hover_pressed_mirrored = ExtResource("2_r13ox") +theme_override_styles/hover_pressed = ExtResource("2_r13ox") +theme_override_styles/hover_mirrored = ExtResource("2_r13ox") +theme_override_styles/hover = ExtResource("2_r13ox") +theme_override_styles/pressed_mirrored = ExtResource("2_r13ox") +theme_override_styles/pressed = ExtResource("2_r13ox") +theme_override_styles/normal_mirrored = ExtResource("2_r13ox") +theme_override_styles/normal = ExtResource("2_r13ox") +text = "Throw" +alignment = 0 + +[node name="DropButton" type="Button" parent="MarginContainer/MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 0 +focus_neighbor_left = NodePath(".") +focus_neighbor_top = NodePath("../ThrowButton") +focus_neighbor_right = NodePath(".") +focus_neighbor_bottom = NodePath(".") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("1_kxuil") +theme_override_styles/disabled_mirrored = ExtResource("2_r13ox") +theme_override_styles/disabled = ExtResource("2_r13ox") +theme_override_styles/hover_pressed_mirrored = ExtResource("2_r13ox") +theme_override_styles/hover_pressed = ExtResource("2_r13ox") +theme_override_styles/hover_mirrored = ExtResource("2_r13ox") +theme_override_styles/hover = ExtResource("2_r13ox") +theme_override_styles/pressed_mirrored = ExtResource("2_r13ox") +theme_override_styles/pressed = ExtResource("2_r13ox") +theme_override_styles/normal_mirrored = ExtResource("2_r13ox") +theme_override_styles/normal = ExtResource("2_r13ox") +text = "Drop" +alignment = 0 diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.cs b/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.cs new file mode 100644 index 000000000..aa24098e0 --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.cs @@ -0,0 +1,106 @@ +using Chickensoft.AutoInject; +using Chickensoft.Introspection; +using Godot; +using System; +using System.Collections.Generic; +using System.Linq; +using Zennysoft.Game.Ma; +using Zennysoft.Ma.Adapter; + +[Meta(typeof(IAutoNode))] +public partial class AugmentableItemsMenu : Control +{ + public override void _Notification(int what) => this.Notify(what); + + [Dependency] private IPlayer _player => this.DependOn(); + + [Node] public VBoxContainer Inventory { get; set; } + + [Node] public Button CancelAugmentButton { get; set; } + + [Node] public Button ConfirmAugmentButton { get; set; } + + [Node] public Control ConfirmAugmentContainer { get; set; } + + private List ItemSlots; + + private IItemSlot _currentlySelected; + + private IAugmentItem _augmentingItem; + + public event Action AugmentMenuClosing; + + public void OnResolved() + { + ItemSlots = [.. Inventory.GetChildren().OfType()]; + ItemSlots.ForEach(x => x.ItemPressed += ItemPressed); + ItemSlots.ForEach(x => x.ItemSelected += ItemSelected); + CancelAugmentButton.Pressed += CancelAugmentButton_Pressed; + ConfirmAugmentButton.Pressed += ConfirmAugmentButton_Pressed; + } + + private void ConfirmAugmentButton_Pressed() + { + _player.ApplyNewAugment(_augmentingItem, _currentlySelected.Item.Value as IAugmentableItem); + ConfirmAugmentContainer.Hide(); + AugmentMenuClosing?.Invoke(); + SfxDatabase.Instance.Play(SoundEffect.SelectUI); + } + + private void CancelAugmentButton_Pressed() + { + CloseAugmentMenu(); + } + + private void CloseAugmentMenu() + { + SfxDatabase.Instance.Play(SoundEffect.CancelUI); + ConfirmAugmentContainer.Hide(); + AugmentMenuClosing?.Invoke(); + } + + public void OpenAugmentMenu(IAugmentItem augmentingItem) + { + _augmentingItem = augmentingItem; + + var inventory = _player.Inventory.Items; + ItemSlots.ForEach(x => x.SetEmpty()); + var slotIndex = 0; + + foreach (var item in inventory) + { + if (item is IAugmentableItem augmentable && augmentable.Augment == null) + ItemSlots[slotIndex++].SetItemToSlot(item); + } + + Show(); + ItemSlots.First().FocusItem(); + } + + public override void _Input(InputEvent @event) + { + if (Visible && Input.IsActionJustPressed(GameInputs.Interact)) + { + GetViewport().SetInputAsHandled(); + if (ConfirmAugmentContainer.Visible) + { + if (ConfirmAugmentButton.HasFocus()) + SfxDatabase.Instance.Play(SoundEffect.CancelUI); + CancelAugmentButton.GrabFocus(); + } + else + CloseAugmentMenu(); + } + } + + private void ItemSelected(IItemSlot selectedItem) + { + _currentlySelected = selectedItem; + } + + private void ItemPressed(IItemSlot slot) + { + ConfirmAugmentContainer.Show(); + ConfirmAugmentButton.GrabFocus(); + } +} diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.cs.uid b/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.cs.uid new file mode 100644 index 000000000..6523887bb --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.cs.uid @@ -0,0 +1 @@ +uid://brtic4hw6thox diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.tscn b/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.tscn new file mode 100644 index 000000000..33b7a52c5 --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/AugmentableItemsMenu.tscn @@ -0,0 +1,245 @@ +[gd_scene load_steps=11 format=3 uid="uid://tpqh7q0xh63c"] + +[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/ui/inventory_menu/ItemSlot.tscn" id="1_a5r0f"] +[ext_resource type="Script" uid="uid://brtic4hw6thox" path="res://src/ui/inventory_menu/AugmentableItemsMenu.cs" id="1_ukqf2"] +[ext_resource type="FontFile" uid="uid://beh6d5lo5ihq0" path="res://src/ui/fonts/georgiai.ttf" id="2_ukqf2"] +[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="3_qtvkp"] +[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="4_p84pf"] +[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="5_rxojm"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_l0byb"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7co7g"] +bg_color = Color(0, 0, 0, 0.745098) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_unikd"] +bg_color = Color(0, 0, 0, 1) + +[sub_resource type="LabelSettings" id="LabelSettings_unikd"] +line_spacing = 1.0 +font = ExtResource("2_ukqf2") +font_size = 40 +outline_size = 3 +outline_color = Color(0, 0, 0, 1) + +[node name="AugmentMenu" type="Panel"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_l0byb") +script = ExtResource("1_ukqf2") + +[node name="CenterContainer2" type="CenterContainer" parent="."] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -400.0 +offset_right = 400.0 +offset_bottom = 1025.0 +grow_horizontal = 2 + +[node name="AugmentableItemsList" type="PanelContainer" parent="CenterContainer2"] +unique_name_in_owner = true +custom_minimum_size = Vector2(800, 1025) +layout_mode = 2 + +[node name="Panel" type="Panel" parent="CenterContainer2/AugmentableItemsList"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_7co7g") + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer2/AugmentableItemsList/Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 + +[node name="ReferenceRect" type="ReferenceRect" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +editor_only = false + +[node name="MarginContainer2" type="MarginContainer" parent="CenterContainer2/AugmentableItemsList/Panel"] +layout_mode = 2 +offset_right = 800.0 +offset_bottom = 1050.0 +theme_override_constants/margin_left = 25 +theme_override_constants/margin_top = 15 +theme_override_constants/margin_right = 25 +theme_override_constants/margin_bottom = 15 + +[node name="Inventory" type="VBoxContainer" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 0 +theme_override_constants/separation = 0 + +[node name="AugmentableSlot" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot2" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot3" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot4" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot5" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot6" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot7" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot8" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot9" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot10" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot11" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot12" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot13" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot14" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot15" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot16" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot17" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot18" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot19" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="AugmentableSlot20" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")] +layout_mode = 2 + +[node name="ConfirmAugmentContainer" type="Panel" parent="."] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="CenterContainer" type="CenterContainer" parent="ConfirmAugmentContainer"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = -40.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="PanelContainer" type="PanelContainer" parent="ConfirmAugmentContainer/CenterContainer"] +layout_mode = 2 + +[node name="Panel" type="Panel" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer"] +custom_minimum_size = Vector2(400, 250) +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_unikd") + +[node name="MarginContainer" type="MarginContainer" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 + +[node name="ReferenceRect" type="ReferenceRect" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer/MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +editor_only = false + +[node name="CenterContainer" type="CenterContainer" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer/CenterContainer"] +layout_mode = 2 +theme_override_constants/separation = 25 + +[node name="Label" type="Label" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer"] +layout_mode = 2 +text = "Augment Item?" +label_settings = SubResource("LabelSettings_unikd") +horizontal_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 20 +alignment = 1 + +[node name="CancelAugmentButton" type="Button" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +focus_neighbor_left = NodePath(".") +focus_neighbor_top = NodePath(".") +focus_neighbor_right = NodePath("../ConfirmAugmentButton") +focus_neighbor_bottom = NodePath(".") +theme_override_fonts/font = ExtResource("3_qtvkp") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("4_p84pf") +theme_override_styles/disabled_mirrored = ExtResource("5_rxojm") +theme_override_styles/disabled = ExtResource("5_rxojm") +theme_override_styles/hover_pressed_mirrored = ExtResource("5_rxojm") +theme_override_styles/hover_pressed = ExtResource("5_rxojm") +theme_override_styles/hover_mirrored = ExtResource("5_rxojm") +theme_override_styles/hover = ExtResource("5_rxojm") +theme_override_styles/pressed_mirrored = ExtResource("5_rxojm") +theme_override_styles/pressed = ExtResource("5_rxojm") +theme_override_styles/normal_mirrored = ExtResource("5_rxojm") +theme_override_styles/normal = ExtResource("5_rxojm") +text = "Cancel" + +[node name="ConfirmAugmentButton" type="Button" parent="ConfirmAugmentContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +focus_neighbor_left = NodePath("../CancelAugmentButton") +focus_neighbor_top = NodePath(".") +focus_neighbor_right = NodePath(".") +focus_neighbor_bottom = NodePath(".") +theme_override_fonts/font = ExtResource("3_qtvkp") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("4_p84pf") +theme_override_styles/disabled_mirrored = ExtResource("5_rxojm") +theme_override_styles/disabled = ExtResource("5_rxojm") +theme_override_styles/hover_pressed_mirrored = ExtResource("5_rxojm") +theme_override_styles/hover_pressed = ExtResource("5_rxojm") +theme_override_styles/hover_mirrored = ExtResource("5_rxojm") +theme_override_styles/hover = ExtResource("5_rxojm") +theme_override_styles/pressed_mirrored = ExtResource("5_rxojm") +theme_override_styles/pressed = ExtResource("5_rxojm") +theme_override_styles/normal_mirrored = ExtResource("5_rxojm") +theme_override_styles/normal = ExtResource("5_rxojm") +text = "Confirm" diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs b/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs index df36e26a7..687a2f511 100644 --- a/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs @@ -1,15 +1,18 @@ using Chickensoft.Collections; using Chickensoft.GodotNodeInterfaces; using System; -using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; -public interface IItemSlot : IButton +public interface IItemSlot : IControl { - public AutoProp Item { get; } + public AutoProp Item { get; } - public void SetItemEquipmentStatus(bool isEquipped); + public void SetEmpty(); + + public void SetItemToSlot(IBaseInventoryItem item); + + public void FocusItem(); public event Action ItemPressed; diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.cs b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.cs new file mode 100644 index 000000000..5b701a493 --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.cs @@ -0,0 +1,139 @@ +using Chickensoft.AutoInject; +using Chickensoft.Introspection; +using Godot; +using System.Collections.Generic; +using System.Linq; +using Zennysoft.Game.Ma; +using Zennysoft.Ma.Adapter; + +[Meta(typeof(IAutoNode))] +public partial class InventoryMenu : Control, IInventoryMenu +{ + public override void _Notification(int what) => this.Notify(what); + + [Dependency] private IPlayer _player => this.DependOn(); + + [Dependency] private IGame _game => this.DependOn(); + + [Dependency] private IGameRepo _gameRepo => this.DependOn(); + + [Node] public Label ItemName { get; set; } + + [Node] public Label ItemFlavor { get; set; } + + [Node] public Label ItemStats { get; set; } + + [Node] public ActionPanel ActionPanel { get; set; } + + [Node] public VBoxContainer Inventory { get; set; } + + [Node] public Control MenuPanel { get; set; } + + [Node] public AugmentableItemsMenu AugmentMenu { get; set; } + + private List ItemSlots; + + private IItemSlot _currentlySelected; + + public void OnResolved() + { + ItemSlots = [.. Inventory.GetChildren().OfType()]; + ItemSlots.ForEach(x => x.ItemPressed += ItemPressed); + ItemSlots.ForEach(x => x.ItemSelected += ItemSelected); + VisibilityChanged += ResetInventoryState; + ActionPanel.ActionPanelClosing += ActionPanel_ActionPanelClosing; + ActionPanel.ReturnToGameAction += ActionPanel_ReturnToGameAction; + ActionPanel.AugmentMenuRequested += ActionPanel_AugmentMenuRequested; + AugmentMenu.AugmentMenuClosing += AugmentMenu_AugmentMenuClosing; + AugmentMenu.FocusMode = FocusModeEnum.None; + ClearDescriptionBox(); + } + + public override void _Input(InputEvent @event) + { + if (Input.IsActionJustPressed(GameInputs.MoveUp) && _currentlySelected != ItemSlots.First()) + SfxDatabase.Instance.Play(SoundEffect.MoveUI); + if (Input.IsActionJustPressed(GameInputs.MoveDown) && _currentlySelected != ItemSlots.Last(x => x.Item.Value != null)) + SfxDatabase.Instance.Play(SoundEffect.MoveUI); + } + + private void ActionPanel_AugmentMenuRequested() + { + ReleaseFocus(); + ItemSlots.ForEach(x => x.ItemPressed -= ItemPressed); + ItemSlots.ForEach(x => x.ItemSelected -= ItemSelected); + MenuPanel.Hide(); + MenuPanel.FocusMode = FocusModeEnum.None; + AugmentMenu.FocusMode = FocusModeEnum.All; + SetProcessInput(false); + AugmentMenu.SetProcessInput(true); + AugmentMenu.OpenAugmentMenu(_currentlySelected.Item.Value as IAugmentItem); + } + + private void ActionPanel_ReturnToGameAction() + { + _gameRepo.CloseInventory(); + } + + private void ItemPressed(IItemSlot selectedItem) + { + SetProcessInput(false); + ActionPanel.SetProcessInput(true); + ActionPanel.ShowPanel(selectedItem.Item.Value); + ActionPanel.FocusActionPanel(); + SfxDatabase.Instance.Play(SoundEffect.SelectUI); + } + + private void ItemSelected(IItemSlot selectedItem) + { + _currentlySelected = selectedItem; + ItemName.Text = selectedItem.Item.Value.ItemName; + ItemFlavor.Text = selectedItem.Item.Value.Description; + } + + private void ResetInventoryState() + { + var inventory = _player.Inventory.Items; + ItemSlots.ForEach(x => x.SetEmpty()); + ClearDescriptionBox(); + + for (var i = 0; i < inventory.Count; i++) + ItemSlots[i].SetItemToSlot(inventory[i]); + + if (_currentlySelected == null && inventory.Any()) + _currentlySelected = ItemSlots.First(); + if (inventory.Any()) + _currentlySelected.FocusItem(); + ActionPanel.Hide(); + } + + private void ClearDescriptionBox() + { + ItemName.Text = string.Empty; + ItemFlavor.Text = string.Empty; + ItemStats.Text = string.Empty; + } + + private void ActionPanel_ActionPanelClosing() + { + ActionPanel.Hide(); + SetProcessInput(true); + ActionPanel.SetProcessInput(false); + if (!_player.Inventory.Items.Contains(_currentlySelected.Item.Value)) + _currentlySelected = null; + ResetInventoryState(); + } + + private void AugmentMenu_AugmentMenuClosing() + { + ItemSlots.ForEach(x => x.ItemPressed += ItemPressed); + ItemSlots.ForEach(x => x.ItemSelected += ItemSelected); + MenuPanel.Show(); + MenuPanel.FocusMode = FocusModeEnum.All; + AugmentMenu.FocusMode = FocusModeEnum.None; + SetProcessInput(true); + AugmentMenu.SetProcessInput(false); + AugmentMenu.Hide(); + ResetInventoryState(); + } +} diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu2.cs.uid b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.cs.uid similarity index 100% rename from Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu2.cs.uid rename to Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.cs.uid diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.tscn b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.tscn index 21cd8be65..926d43b9e 100644 --- a/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.tscn +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.tscn @@ -1,752 +1,306 @@ -[gd_scene load_steps=21 format=3 uid="uid://cbxw70qa7gifp"] +[gd_scene load_steps=15 format=3 uid="uid://cbxw70qa7gifp"] -[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/ui/inventory_menu/ItemSlot.tscn" id="4_aiji3"] -[ext_resource type="LabelSettings" uid="uid://wc363u5t1yi2" path="res://src/ui/label_settings/HeadingFont.tres" id="4_l0byb"] -[ext_resource type="LabelSettings" uid="uid://cuuo43x72xcsc" path="res://src/ui/label_settings/MainTextBold.tres" id="7_vyrxm"] -[ext_resource type="FontFile" uid="uid://cplk3hcd0bjrd" path="res://src/ui/fonts/ebrimabd.ttf" id="8_7co7g"] -[ext_resource type="Theme" uid="uid://daxuhpmyxwxck" path="res://src/ui/inventory_menu/InventoryDialogueSelectionStyle.tres" id="8_khyvo"] -[ext_resource type="LabelSettings" uid="uid://bgnwcs434ppkf" path="res://src/ui/label_settings/EbrimaText.tres" id="8_ldqki"] +[ext_resource type="Script" uid="uid://yh8qxmn058w2" path="res://src/ui/inventory_menu/InventoryMenu.cs" id="1_unikd"] +[ext_resource type="PackedScene" uid="uid://b648lhohtue70" path="res://src/ui/inventory_menu/ActionPanel.tscn" id="3_7co7g"] +[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="6_ldqki"] +[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/ui/inventory_menu/ItemSlot.tscn" id="6_unikd"] +[ext_resource type="PackedScene" uid="uid://tpqh7q0xh63c" path="res://src/ui/inventory_menu/AugmentableItemsMenu.tscn" id="6_xwkpe"] +[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="7_we8a6"] -[sub_resource type="CSharpScript" id="CSharpScript_xwkpe"] -script/source = "using Chickensoft.AutoInject; -using Chickensoft.Introspection; -using Godot; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Zennysoft.Ma.Adapter; +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7co7g"] -namespace Zennysoft.Game.Ma; +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xwkpe"] +bg_color = Color(0, 0, 0, 0.168627) -[Meta(typeof(IAutoNode))] -public partial class InventoryMenu : Control, IInventoryMenu -{ - public override void _Notification(int what) => this.Notify(what); - - [Node] public VBoxContainer ItemsPage { get; set; } - - [Node] public Label ATKValue { get; set; } - [Node] public Label ATKBonusLabel { get; set; } - [Node] public Label DEFValue { get; set; } - [Node] public Label DEFBonusLabel { get; set; } - - [Node] public Button UseButton { get; set; } - [Node] public Button ThrowButton { get; set; } - [Node] public Button DropButton { get; set; } - - [Node] public Label ItemDescriptionTitle { get; set; } - [Node] public Label UseItemPrompt { get; set; } - [Node] public Label ItemEffectLabel { get; set; } - - [Node] public ItemSlot ItemSlot1 { get; set; } - [Node] public ItemSlot ItemSlot2 { get; set; } - [Node] public ItemSlot ItemSlot3 { get; set; } - [Node] public ItemSlot ItemSlot4 { get; set; } - [Node] public ItemSlot ItemSlot5 { get; set; } - [Node] public ItemSlot ItemSlot6 { get; set; } - [Node] public ItemSlot ItemSlot7 { get; set; } - [Node] public ItemSlot ItemSlot8 { get; set; } - [Node] public ItemSlot ItemSlot9 { get; set; } - [Node] public ItemSlot ItemSlot10 { get; set; } - [Node] public ItemSlot ItemSlot11 { get; set; } - [Node] public ItemSlot ItemSlot12 { get; set; } - [Node] public ItemSlot ItemSlot13 { get; set; } - [Node] public ItemSlot ItemSlot14 { get; set; } - [Node] public ItemSlot ItemSlot15 { get; set; } - [Node] public ItemSlot ItemSlot16 { get; set; } - [Node] public ItemSlot ItemSlot17 { get; set; } - [Node] public ItemSlot ItemSlot18 { get; set; } - [Node] public ItemSlot ItemSlot19 { get; set; } - [Node] public ItemSlot ItemSlot20 { get; set; } - - [Dependency] private IPlayer _player => this.DependOn(); - [Dependency] private IGame _game => this.DependOn(); - [Dependency] private IGameRepo _gameRepo => this.DependOn(); - - private List ItemSlots; - - private string ITEM_SLOT_SCENE = \"res://src/ui/inventory_menu/ItemSlot.tscn\"; - - private IItemSlot _currentlySelectedItem = null; - private bool _enableMenuSound = false; - - public void OnResolved() - { - ItemSlots = [ItemSlot1, ItemSlot2, ItemSlot3, ItemSlot4, ItemSlot5, ItemSlot6, ItemSlot7, ItemSlot8, ItemSlot9, ItemSlot10, ItemSlot11, ItemSlot12, ItemSlot13, ItemSlot14, ItemSlot15, ItemSlot16, ItemSlot17, ItemSlot18, ItemSlot19, ItemSlot20]; - _currentlySelectedItem = ItemSlot1; - foreach (var item in ItemSlots) - { - item.ItemPressed += Item_Pressed; - } - - _player.AttackComponent.CurrentAttack.Sync += Attack_Sync; - _player.AttackComponent.MaximumAttack.Sync += Attack_Sync; - _player.DefenseComponent.CurrentDefense.Sync += Defense_Sync; - _player.DefenseComponent.MaximumDefense.Sync += Defense_Sync; - _player.EquipmentComponent.EquipmentChanged += EquipmentComponent_EquipmentChanged; - _player.Inventory.InventoryChanged += Inventory_InventoryChanged; - - UseButton.Pressed += UseButtonPressed; - ThrowButton.Pressed += ThrowButtonPressed; - DropButton.Pressed += DropButtonPressed; - - UseButton.FocusEntered += ActionButtonFocusChanged; - ThrowButton.FocusEntered += ActionButtonFocusChanged; - DropButton.FocusEntered += ActionButtonFocusChanged; - - VisibilityChanged += InventoryMenu_VisibilityChanged; - SetProcessUnhandledInput(false); - } - - private void ActionButtonFocusChanged() - { - if (!_enableMenuSound) - SfxDatabase.Instance.Play(SoundEffect.MoveUI); - } - - public override void _UnhandledInput(InputEvent @event) - { - if (!Visible) - return; - - if ((!Input.IsActionJustPressed(GameInputs.UiUp) && Input.IsActionPressed(GameInputs.UiUp)) || (!Input.IsActionJustPressed(GameInputs.UiDown) && Input.IsActionPressed(GameInputs.UiDown))) - AcceptEvent(); - - if (Input.IsActionJustPressed(GameInputs.UiCancel) && (UseItemPrompt.Visible)) - { - SfxDatabase.Instance.Play(SoundEffect.CancelUI); - AcceptEvent(); - HideUserActionPrompt(); - } - else if (Input.IsActionJustPressed(GameInputs.UiCancel)) - { - SfxDatabase.Instance.Play(SoundEffect.CancelUI); - AcceptEvent(); - _gameRepo.CloseInventory(); - } - - if (Input.IsActionJustPressed(GameInputs.InventorySort)) - { - var isChanged = _player.Inventory.Sort(_player.EquipmentComponent.EquippedWeapon.Value, _player.EquipmentComponent.EquippedArmor.Value, _player.EquipmentComponent.EquippedAccessory.Value, _player.EquipmentComponent.EquippedAmmo.Value); - if (!isChanged) - return; - - SfxDatabase.Instance.Play(SoundEffect.SortInventory); - Inventory_InventoryChanged(); - Item_ItemExitFocus(_currentlySelectedItem); - _currentlySelectedItem = ItemSlot1; - _currentlySelectedItem.GrabFocus(); - } - } - - private void InventoryMenu_VisibilityChanged() - { - if (Visible) - { - SetProcessUnhandledInput(true); - SfxDatabase.Instance.Play(SoundEffect.OpenInventory); - _currentlySelectedItem.GrabFocus(); - _enableMenuSound = true; - } - else - { - SetProcessUnhandledInput(false); - SfxDatabase.Instance.Play(SoundEffect.CancelUI); - _enableMenuSound = false; - } - } - - private void Item_ItemExitFocus(IItemSlot itemSlot) - { - ItemDescriptionTitle.Text = string.Empty; - ItemEffectLabel.Text = string.Empty; - } - - private void Item_FocusEntered(IItemSlot itemSlot) - { - if (itemSlot.Item.Value == null) - return; - - if (_enableMenuSound) - SfxDatabase.Instance.Play(SoundEffect.MoveUI); - - ItemDescriptionTitle.Text = $\"{itemSlot.Item.Value.ItemName}\"; - ItemEffectLabel.Text = $\"{itemSlot.Item.Value.Description}\"; - _currentlySelectedItem = itemSlot; - AcceptEvent(); - } - - private void Item_Pressed(IItemSlot item) => DisplayUserActionPrompt(item.Item.Value); - - private async void Inventory_InventoryChanged() - { - foreach (var slot in ItemSlots) - { - slot.Visible = false; - } - - var itemsToDisplay = _player.Inventory.Items; - for (var i = 0; i < itemsToDisplay.Count; i++) - { - ItemSlots[i].Item.OnNext(itemsToDisplay[i]); - ItemSlots[i].Visible = true; - } - - if (!_player.Inventory.Items.Contains(_currentlySelectedItem.Item.Value)) - { - _currentlySelectedItem.Item.OnNext(null); - var elementToSelect = Mathf.Max(0, ItemSlots.IndexOf(_currentlySelectedItem) - 1); - _currentlySelectedItem = ItemSlots.ElementAt(elementToSelect); - _currentlySelectedItem.GrabFocus(); - } - } - - private void Attack_Sync(int obj) => ATKValue.Text = $\"{_player.AttackComponent.CurrentAttack.Value}/{_player.AttackComponent.MaximumAttack.Value}\"; - private void Defense_Sync(int obj) => DEFValue.Text = $\"{_player.DefenseComponent.CurrentDefense.Value}/{_player.DefenseComponent.MaximumDefense.Value}\"; - - private void EquipmentComponent_EquipmentChanged(EquipableItem equipableItem) - { - ATKBonusLabel.Text = $\"{_player.EquipmentComponent.BonusAttack:+0;-#;\\\\.\\\\.\\\\.}\"; - DEFBonusLabel.Text = $\"{_player.EquipmentComponent.BonusDefense:+0;-#;\\\\.\\\\.\\\\.}\"; - } - - private async void UseButtonPressed() - { - UseButton.Disabled = true; - if (_currentlySelectedItem.Item.Value is EquipableItem equipable) - await EquipOrUnequipItem(equipable); - else if (_currentlySelectedItem.Item.Value is Plastique plastique) - SetItem(); - else if (_currentlySelectedItem.Item.Value is Jewel jewel) - AugmentEquipment(jewel); - else - await _game.UseItem(_currentlySelectedItem.Item.Value); - UseButton.Disabled = false; - - - HideUserActionPrompt(); - await ShowInventoryInfo(); - await ToSignal(GetTree().CreateTimer(1f), \"timeout\"); - } - - private async void SetItem() - { - _game.SetItem(_currentlySelectedItem.Item.Value); - _player.Inventory.Remove(_currentlySelectedItem.Item.Value); - HideUserActionPrompt(); - await ShowInventoryInfo(); - _gameRepo.CloseInventory(); - } - - private async void ThrowButtonPressed() - { - _game.ThrowItem(_currentlySelectedItem.Item.Value); - _player.Inventory.Remove(_currentlySelectedItem.Item.Value); - HideUserActionPrompt(); - await ShowInventoryInfo(); - _gameRepo.CloseInventory(); - } - - private async void DropButtonPressed() - { - _game.DropItem(_currentlySelectedItem.Item.Value); - _player.Inventory.Remove(_currentlySelectedItem.Item.Value); - HideUserActionPrompt(); - await ShowInventoryInfo(); - _gameRepo.CloseInventory(); - } - - private void AugmentEquipment(Jewel jewel) - { - DisplayUserActionPrompt(jewel); - foreach (var item in ItemSlots) - { - item.Disabled = item.Item.Value is not Weapon && item.Item.Value is not Armor && item.Item.Value is not Accessory; - } - } - - private void DisplayUserActionPrompt(InventoryItem item) - { - SfxDatabase.Instance.Play(SoundEffect.SelectUI); - ItemDescriptionTitle.Hide(); - ItemEffectLabel.Hide(); - UseItemPrompt.Show(); - UseButton.Show(); - ThrowButton.Show(); - DropButton.Show(); - - if (item is EquipableItem equipable) - { - var isItemEquipped = _player.EquipmentComponent.IsItemEquipped(equipable); - UseButton.Text = isItemEquipped ? \"Unequip\" : \"Equip\"; - UseButton.Disabled = equipable.Glued; - ThrowButton.Disabled = isItemEquipped; - ThrowButton.FocusMode = isItemEquipped ? FocusModeEnum.None : FocusModeEnum.All; - DropButton.Disabled = isItemEquipped; - DropButton.FocusMode = isItemEquipped ? FocusModeEnum.None : FocusModeEnum.All; - - UseButton.GrabFocus(); - - if (!_player.CanEquipState && isItemEquipped) - UseButton.Disabled = true; - } - else if (item is Plastique plastique) - { - UseButton.Text = \"Set\"; - } - else - { - UseButton.Text = \"Use\"; - } - _enableMenuSound = false; - } - - private void HideUserActionPrompt() - { - UseItemPrompt.Hide(); - UseButton.Hide(); - ThrowButton.Hide(); - DropButton.Hide(); - UseButton.ReleaseFocus(); - ThrowButton.ReleaseFocus(); - DropButton.ReleaseFocus(); - _currentlySelectedItem.GrabFocus(); - _enableMenuSound = true; - } - - private async Task EquipOrUnequipItem(EquipableItem equipable) - { - if (_player.EquipmentComponent.IsItemEquipped(equipable)) - { - SfxDatabase.Instance.Play(SoundEffect.Unequip); - ItemEffectLabel.Text = $\"{equipable.GetType().Name} unequipped.\"; - _player.Unequip(equipable); - } - else - { - SfxDatabase.Instance.Play(SoundEffect.Equip); - var itemSlot = _currentlySelectedItem; - ItemEffectLabel.Text = $\"{equipable.GetType().Name} equipped.\"; - _player.Equip(equipable); - _currentlySelectedItem = itemSlot; - } - } - - private async Task ShowInventoryInfo() - { - ItemDescriptionTitle.Show(); - ItemEffectLabel.Show(); - } - - private enum InventoryPageNumber - { - FirstPage, - SecondPage - } -} -" - -[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_unikd"] -blend_mode = 4 - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0kb6l"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_fu7o2"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_nkvce"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_545ij"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ascpt"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_abpb1"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_omlgh"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_uerb4"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_lvcf8"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ct6ql"] - -[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_7co7g"] -blend_mode = 4 -light_mode = 2 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_b6rkr"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_unikd"] -[node name="InventoryMenu" type="Control"] -layout_mode = 3 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cq2sk"] +bg_color = Color(0, 0, 0, 0.745098) + +[sub_resource type="LabelSettings" id="LabelSettings_ejvue"] +line_spacing = 1.0 +font = ExtResource("6_ldqki") +font_size = 50 +outline_size = 3 +outline_color = Color(0, 0, 0, 1) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_aiji3"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7co7g"] +bg_color = Color(0, 0, 0, 0.745098) + +[node name="InventoryMenu" type="PanelContainer"] +process_mode = 2 +visible = false anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_right = -480.0 grow_horizontal = 2 grow_vertical = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 -mouse_filter = 2 -script = SubResource("CSharpScript_xwkpe") - -[node name="BG" type="ColorRect" parent="."] -material = SubResource("CanvasItemMaterial_unikd") -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 -color = Color(0.215686, 0.215686, 0.215686, 0.431373) - -[node name="InventoryInfo" type="MarginContainer" parent="."] -layout_mode = 0 -offset_left = -157.0 -offset_top = -67.0 -offset_right = 1028.0 -offset_bottom = 1013.0 -theme_override_constants/margin_top = 100 - -[node name="HBoxContainer" type="HBoxContainer" parent="InventoryInfo"] -layout_mode = 2 - -[node name="ItemInfo" type="VBoxContainer" parent="InventoryInfo/HBoxContainer"] -custom_minimum_size = Vector2(720, 0) -layout_mode = 2 -theme_override_constants/separation = 20 - -[node name="ItemTitleContainer" type="MarginContainer" parent="InventoryInfo/HBoxContainer/ItemInfo"] -custom_minimum_size = Vector2(300, 125) -layout_mode = 2 -size_flags_horizontal = 4 - -[node name="HBoxContainer" type="HBoxContainer" parent="InventoryInfo/HBoxContainer/ItemInfo/ItemTitleContainer"] -layout_mode = 2 - -[node name="ItemsTitle" type="Label" parent="InventoryInfo/HBoxContainer/ItemInfo/ItemTitleContainer/HBoxContainer"] -custom_minimum_size = Vector2(300, 0) -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 1 -text = " ITEMS" -label_settings = ExtResource("4_l0byb") -vertical_alignment = 1 - -[node name="PlayerInfo" type="VBoxContainer" parent="InventoryInfo/HBoxContainer"] -layout_mode = 2 -mouse_filter = 2 -theme_override_constants/separation = 20 - -[node name="ATKBox" type="HBoxContainer" parent="InventoryInfo/HBoxContainer/PlayerInfo"] -layout_mode = 2 - -[node name="ReferenceRect2" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] -custom_minimum_size = Vector2(50, 0) -layout_mode = 2 - -[node name="ATKLabel" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] -custom_minimum_size = Vector2(100, 0) -layout_mode = 2 -text = "ATK" -label_settings = ExtResource("8_ldqki") - -[node name="ReferenceRect" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] -custom_minimum_size = Vector2(50, 0) -layout_mode = 2 - -[node name="ATKValue" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] -unique_name_in_owner = true -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 -text = "666/666" -label_settings = ExtResource("8_ldqki") - -[node name="ReferenceRect4" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] -custom_minimum_size = Vector2(18, 0) -layout_mode = 2 - -[node name="ATKBonusLabel" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] -unique_name_in_owner = true -layout_mode = 2 -text = "..." -label_settings = ExtResource("8_ldqki") - -[node name="DEFBox" type="HBoxContainer" parent="InventoryInfo/HBoxContainer/PlayerInfo"] -layout_mode = 2 - -[node name="ReferenceRect2" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/DEFBox"] -custom_minimum_size = Vector2(50, 0) -layout_mode = 2 - -[node name="DEFLabel" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/DEFBox"] -custom_minimum_size = Vector2(100, 0) -layout_mode = 2 -text = "DEF" -label_settings = ExtResource("8_ldqki") - -[node name="ReferenceRect" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/DEFBox"] -custom_minimum_size = Vector2(50, 0) -layout_mode = 2 - -[node name="DEFValue" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/DEFBox"] -unique_name_in_owner = true -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 -text = "888/888" -label_settings = ExtResource("8_ldqki") - -[node name="ReferenceRect4" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/DEFBox"] -custom_minimum_size = Vector2(18, 0) -layout_mode = 2 - -[node name="DEFBonusLabel" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/DEFBox"] -unique_name_in_owner = true -layout_mode = 2 -text = "..." -label_settings = ExtResource("8_ldqki") - -[node name="ReferenceRect3" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo"] -custom_minimum_size = Vector2(0, 500) -layout_mode = 2 - -[node name="HBoxContainer" type="HBoxContainer" parent="InventoryInfo/HBoxContainer/PlayerInfo"] -layout_mode = 2 - -[node name="ReferenceRect2" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer"] -custom_minimum_size = Vector2(50, 0) -layout_mode = 2 - -[node name="VBoxContainer" type="VBoxContainer" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer"] -layout_mode = 2 - -[node name="ItemDescriptionTitle" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] -unique_name_in_owner = true -custom_minimum_size = Vector2(400, 50) -layout_mode = 2 -size_flags_horizontal = 0 -label_settings = ExtResource("7_vyrxm") -autowrap_mode = 2 - -[node name="UseItemPrompt" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] -unique_name_in_owner = true -visible = false -custom_minimum_size = Vector2(400, 100) -layout_mode = 2 -size_flags_horizontal = 0 -text = "Use Item?" -label_settings = ExtResource("7_vyrxm") -autowrap_mode = 2 - -[node name="ItemEffectLabel" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] -unique_name_in_owner = true -custom_minimum_size = Vector2(400, 100) -layout_mode = 2 -size_flags_horizontal = 0 -label_settings = ExtResource("7_vyrxm") -autowrap_mode = 2 - -[node name="UseButton" type="Button" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] -unique_name_in_owner = true -visible = false -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 -size_flags_horizontal = 0 -size_flags_vertical = 0 -focus_neighbor_left = NodePath(".") -focus_neighbor_top = NodePath(".") -focus_neighbor_right = NodePath(".") -focus_neighbor_bottom = NodePath("../ThrowButton") -theme = ExtResource("8_khyvo") -theme_override_colors/font_disabled_color = Color(0.137255, 0.121569, 0.12549, 1) -theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) -theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1) -theme_override_colors/font_pressed_color = Color(0.137255, 0.121569, 0.12549, 1) -theme_override_fonts/font = ExtResource("8_7co7g") -theme_override_styles/focus = SubResource("StyleBoxEmpty_0kb6l") -theme_override_styles/disabled = SubResource("StyleBoxEmpty_fu7o2") -theme_override_styles/pressed = SubResource("StyleBoxEmpty_nkvce") -theme_override_styles/normal = SubResource("StyleBoxEmpty_545ij") -button_mask = 0 -text = "Use" -alignment = 0 - -[node name="ThrowButton" type="Button" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] -unique_name_in_owner = true -visible = false -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 -size_flags_horizontal = 0 -size_flags_vertical = 0 -focus_neighbor_left = NodePath(".") -focus_neighbor_top = NodePath("../UseButton") -focus_neighbor_right = NodePath(".") -focus_neighbor_bottom = NodePath("../DropButton") -theme = ExtResource("8_khyvo") -theme_override_colors/font_disabled_color = Color(0.137255, 0.121569, 0.12549, 1) -theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) -theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1) -theme_override_colors/font_pressed_color = Color(0.137255, 0.121569, 0.12549, 1) -theme_override_fonts/font = ExtResource("8_7co7g") -theme_override_styles/focus = SubResource("StyleBoxEmpty_0kb6l") -theme_override_styles/disabled = SubResource("StyleBoxEmpty_ascpt") -theme_override_styles/pressed = SubResource("StyleBoxEmpty_abpb1") -theme_override_styles/normal = SubResource("StyleBoxEmpty_545ij") -button_mask = 0 -text = "Throw" -alignment = 0 - -[node name="DropButton" type="Button" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] -unique_name_in_owner = true -visible = false -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 -size_flags_horizontal = 0 -size_flags_vertical = 0 -focus_neighbor_left = NodePath(".") -focus_neighbor_top = NodePath("../ThrowButton") -focus_neighbor_right = NodePath(".") -focus_neighbor_bottom = NodePath(".") -theme = ExtResource("8_khyvo") -theme_override_colors/font_disabled_color = Color(0.137255, 0.121569, 0.12549, 1) -theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) -theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1) -theme_override_colors/font_pressed_color = Color(0.137255, 0.121569, 0.12549, 1) -theme_override_fonts/font = ExtResource("8_7co7g") -theme_override_styles/focus = SubResource("StyleBoxEmpty_omlgh") -theme_override_styles/disabled = SubResource("StyleBoxEmpty_uerb4") -theme_override_styles/pressed = SubResource("StyleBoxEmpty_lvcf8") -theme_override_styles/normal = SubResource("StyleBoxEmpty_ct6ql") -button_mask = 0 -text = "Drop" -alignment = 0 +theme_override_styles/panel = SubResource("StyleBoxEmpty_7co7g") +script = ExtResource("1_unikd") [node name="Panel" type="Panel" parent="."] -material = SubResource("CanvasItemMaterial_7co7g") -layout_mode = 0 -offset_left = 1069.0 -offset_top = 23.0 -offset_right = 1885.0 -offset_bottom = 1015.0 +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_xwkpe") [node name="MarginContainer" type="MarginContainer" parent="Panel"] +layout_mode = 2 +offset_right = 1440.0 +offset_bottom = 1080.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 25 +theme_override_constants/margin_top = 25 +theme_override_constants/margin_right = 25 +theme_override_constants/margin_bottom = 25 + +[node name="PanelContainer" type="PanelContainer" parent="Panel/MarginContainer"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_b6rkr") + +[node name="MenuPanel" type="Panel" parent="Panel/MarginContainer/PanelContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxEmpty_unikd") + +[node name="TitlePanelContainer" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"] +custom_minimum_size = Vector2(400, 100) +layout_mode = 1 +offset_right = 400.0 +offset_bottom = 100.0 + +[node name="InventoryTitlePanel" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/TitlePanelContainer"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_cq2sk") + +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/TitlePanelContainer/InventoryTitlePanel"] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -theme_override_constants/margin_left = 15 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 10 + +[node name="ReferenceRect" type="ReferenceRect" parent="Panel/MarginContainer/PanelContainer/MenuPanel/TitlePanelContainer/InventoryTitlePanel/MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +border_width = 2.0 +editor_only = false + +[node name="InventoryLabel" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/TitlePanelContainer/InventoryTitlePanel/MarginContainer/ReferenceRect"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -148.0 +offset_top = -28.5 +offset_right = 148.0 +offset_bottom = 28.5 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/font_size = 15 +text = "INVENTORY" +label_settings = SubResource("LabelSettings_ejvue") +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ActionPanelContainer" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -200.0 +offset_right = 200.0 +grow_vertical = 0 +theme_override_styles/panel = SubResource("StyleBoxEmpty_aiji3") + +[node name="ActionPanel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer" instance=ExtResource("3_7co7g")] +unique_name_in_owner = true +visible = false +layout_mode = 2 + +[node name="ItemDescriptionPanelContainer" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"] +custom_minimum_size = Vector2(500, 500) +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_top = -250.0 +offset_right = 500.0 +offset_bottom = 250.0 +grow_vertical = 2 + +[node name="ItemDescriptionBox" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_cq2sk") + +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 + +[node name="ReferenceRect" type="ReferenceRect" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +border_width = 2.0 +editor_only = false + +[node name="MarginContainer2" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer2"] +layout_mode = 2 +theme_override_constants/separation = 50 + +[node name="ItemName" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer2/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Text" +label_settings = ExtResource("7_we8a6") + +[node name="ItemFlavor" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer2/VBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(500, 150) +layout_mode = 2 +text = "More Text" +label_settings = ExtResource("7_we8a6") +vertical_alignment = 1 +autowrap_mode = 2 + +[node name="ItemStats" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer2/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Text Stats" +label_settings = ExtResource("7_we8a6") + +[node name="InventoryList" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"] +custom_minimum_size = Vector2(800, 100) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -120.0 +offset_top = -515.0 +offset_right = 680.0 +offset_bottom = 510.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Panel" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_7co7g") + +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 + +[node name="ReferenceRect" type="ReferenceRect" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +editor_only = false + +[node name="MarginContainer2" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel"] +layout_mode = 2 +offset_right = 800.0 +offset_bottom = 1050.0 +theme_override_constants/margin_left = 25 theme_override_constants/margin_top = 15 -theme_override_constants/margin_right = 15 +theme_override_constants/margin_right = 25 theme_override_constants/margin_bottom = 15 -[node name="ScrollContainer" type="ScrollContainer" parent="Panel/MarginContainer"] -layout_mode = 2 -theme_override_styles/panel = SubResource("StyleBoxEmpty_unikd") -follow_focus = true -draw_focus_border = true - -[node name="ItemsPage" type="VBoxContainer" parent="Panel/MarginContainer/ScrollContainer"] +[node name="Inventory" type="VBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2"] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 2 -alignment = 1 +size_flags_vertical = 0 +theme_override_constants/separation = 0 -[node name="ItemSlot1" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true +[node name="ItemSlot" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] layout_mode = 2 -[node name="ItemSlot2" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot3" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot4" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot5" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot6" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot7" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot8" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot9" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot10" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot11" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot12" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot13" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot14" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot15" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot16" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot17" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot18" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot19" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] -unique_name_in_owner = true -visible = false -layout_mode = 2 - -[node name="ItemSlot20" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] +[node name="ItemSlot2" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot3" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot4" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot5" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot6" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot7" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot8" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot9" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot10" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot11" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot12" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot13" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot14" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot15" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot16" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot17" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot18" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot19" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="ItemSlot20" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer2/Inventory" instance=ExtResource("6_unikd")] +layout_mode = 2 + +[node name="AugmentMenu" parent="Panel/MarginContainer/PanelContainer" instance=ExtResource("6_xwkpe")] unique_name_in_owner = true visible = false layout_mode = 2 diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu2.cs b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu2.cs deleted file mode 100644 index a31b2884f..000000000 --- a/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu2.cs +++ /dev/null @@ -1,351 +0,0 @@ -using Chickensoft.AutoInject; -using Chickensoft.Introspection; -using Godot; -using System.Collections.Generic; -using System.Linq; -using Zennysoft.Game.Implementation; -using Zennysoft.Game.Ma; -using Zennysoft.Ma.Adapter; - -[Meta(typeof(IAutoNode))] -public partial class InventoryMenu2 : Control, IInventoryMenu -{ - public override void _Notification(int what) => this.Notify(what); - - [Dependency] private IPlayer _player => this.DependOn(); - - [Dependency] private IGame _game => this.DependOn(); - - [Dependency] private IGameRepo _gameRepo => this.DependOn(); - - [Node] public Label ItemName { get; set; } - - [Node] public Label ItemFlavor { get; set; } - - [Node] public Label ItemStats { get; set; } - - [Node] public Button InteractButton { get; set; } - - [Node] public Button ThrowButton { get; set; } - - [Node] public Button DropButton { get; set; } - - [Node] public Control ActionPanel { get; set; } - - private List ItemSlots; - - private List