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/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..b7a56610f 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(Jewel 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/game/Game.cs b/Zennysoft.Game.Ma/src/game/Game.cs index 4438086a5..39dc55a28 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; @@ -217,7 +216,7 @@ public partial class Game : Node3D, IGame 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); @@ -240,7 +239,7 @@ public partial class Game : Node3D, IGame 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 +249,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 +258,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(); @@ -459,10 +458,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 +471,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 +566,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); 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..6062390dd 100644 --- a/Zennysoft.Game.Ma/src/items/EffectService.cs +++ b/Zennysoft.Game.Ma/src/items/EffectService.cs @@ -228,14 +228,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,14 +243,14 @@ 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(); @@ -258,7 +258,7 @@ public class EffectService rng.Randomize(); var randomIndex = rng.RandiRange(0, tradableItems.Count - 1); var randomItem = tradableItems[randomIndex]; - if (randomItem is EquipableItem equipableItem) + if (randomItem is IEquipableItem equipableItem) { if (_player.EquipmentComponent.IsItemEquipped(equipableItem)) _player.Unequip(equipableItem); @@ -268,13 +268,12 @@ public class EffectService 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/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/player/Player.cs b/Zennysoft.Game.Ma/src/player/Player.cs index 5f23e6cdf..8497768bf 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(Jewel jewel, IAugmentableItem augmentableItem) { - var jewel = augmentItem as Jewel; Inventory.Remove(jewel); - ApplyNewAugment((dynamic)equipableItem, jewel.Augment); + ApplyNewAugment((dynamic)augmentableItem, 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/ui/in_game_ui/InGameUI.tscn b/Zennysoft.Game.Ma/src/ui/in_game_ui/InGameUI.tscn index df973c310..ff4b41472 100644 --- a/Zennysoft.Game.Ma/src/ui/in_game_ui/InGameUI.tscn +++ b/Zennysoft.Game.Ma/src/ui/in_game_ui/InGameUI.tscn @@ -8,7 +8,7 @@ [ext_resource type="PackedScene" uid="uid://x0f1ol50nnp3" path="res://src/ui/in_game_ui/InventoryMessageUI.tscn" id="6_y26qy"] [ext_resource type="PackedScene" uid="uid://8f3dk16nj0dn" path="res://src/menu/DebugMenu.tscn" id="7_llomk"] [ext_resource type="Texture2D" uid="uid://bj4p4qxb1mj3q" path="res://src/ui/player_ui/Assets/panel rough draft.png" id="7_ur8ag"] -[ext_resource type="PackedScene" uid="uid://c3e6hbctay1us" path="res://src/ui/inventory_menu/InventoryMenu2.tscn" id="9_ur8ag"] +[ext_resource type="PackedScene" uid="uid://c3e6hbctay1us" 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"] diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs b/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs index df36e26a7..c8ad5afad 100644 --- a/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/IItemSlot.cs @@ -5,12 +5,16 @@ using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; -public interface IItemSlot : IButton +public interface IItemSlot : IControl { public AutoProp Item { get; } public void SetItemEquipmentStatus(bool isEquipped); + public void SetAugmentStatus(bool isAugmented); + + public void SetItemCount(int count); + public event Action ItemPressed; public event Action ItemSelected; 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..021d4bb2d --- /dev/null +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.cs @@ -0,0 +1,308 @@ +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 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 Button InteractButton { get; set; } + + [Node] public Button ThrowButton { get; set; } + + [Node] public Button DropButton { get; set; } + + [Node] public Control ActionPanel { get; set; } + + [Node] public VBoxContainer Inventory { get; set; } + + private List ItemSlots; + + private IItemSlot _currentlySelected; + + private bool _augmentMode = false; + + private Jewel _augmentingJewel; + + public void OnResolved() + { + ItemSlots = []; + VisibilityChanged += ResetInventoryState; + InteractButton.Pressed += InteractButton_Pressed; + ThrowButton.Pressed += ThrowButton_Pressed; + DropButton.Pressed += DropButton_Pressed; + } + + private void InteractButton_Pressed() + { + //if (_currentlySelected != null) + //{ + // var item = _currentlySelected.Item.Value; + // if (_augmentMode) + // { + // _player.ApplyNewAugment(_augmentingJewel, item as EquipableItem); + // _augmentMode = false; + // ResetInventoryState(); + // } + // else if (item is EquipableItem equipable) + // { + // if (_player.EquipmentComponent.IsItemEquipped(equipable)) + // _player.Unequip(equipable); + // else + // { + // _player.Equip(equipable); + // } + // ResetInventoryState(); + // } + // else if (item is Plastique plastique) + // { + // _game.SetItem(plastique); + // ResetInventoryState(); + // } + // else if (item is Jewel jewel) + // { + // _augmentMode = true; + // AugmentMode(jewel); + // } + // else + // { + // _game.UseItem(_currentlySelected.Item.Value); + // ResetInventoryState(); + // } + + // CloseActionMenu(); + //} + } + + private void DropButton_Pressed() + { + //var previousItemInList = Mathf.Max(0, ItemSlots.IndexOf(_currentlySelected) - 1); + //_game.DropItem(_currentlySelected.Item.Value); + //CloseActionMenu(); + //_gameRepo.CloseInventory(); + //if (_currentlySelected != null && !_player.Inventory.Items.Contains(_currentlySelected.Item.Value)) + // _currentlySelected = ItemSlots[previousItemInList]; + } + + private void ThrowButton_Pressed() + { + //var previousItemInList = Mathf.Max(0, ItemSlots.IndexOf(_currentlySelected) - 1); + //_game.ThrowItem(_currentlySelected.Item.Value); + //CloseActionMenu(); + //_gameRepo.CloseInventory(); + //if (_currentlySelected != null && !_player.Inventory.Items.Contains(_currentlySelected.Item.Value)) + // _currentlySelected = ItemSlots[previousItemInList]; + } + + public override void _Input(InputEvent @event) + { + //if (ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.Interact)) + //{ + // CloseActionMenu(); + // SfxDatabase.Instance.Play(SoundEffect.CancelUI); + // GetViewport().SetInputAsHandled(); + //} + //else if (_augmentMode && !ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.Interact)) + //{ + // GetViewport().SetInputAsHandled(); + // _augmentMode = false; + // SfxDatabase.Instance.Play(SoundEffect.CancelUI); + // ResetInventoryState(); + //} + //if (!ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.MoveUp)) + //{ + // if (ItemSlots.First(x => x.Visible) != _currentlySelected) + // SfxDatabase.Instance.Play(SoundEffect.MoveUI); + //} + //if (!ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.MoveDown)) + //{ + // if (ItemSlots.Last(x => x.Visible) != _currentlySelected) + // SfxDatabase.Instance.Play(SoundEffect.MoveUI); + //} + + //if (Input.IsActionJustPressed(GameInputs.MoveDown) && ActionPanel.Visible && InteractButton.HasFocus() && !ThrowButton.Disabled) + // SfxDatabase.Instance.Play(SoundEffect.MoveUI); + //if (Input.IsActionJustPressed(GameInputs.MoveDown) && ActionPanel.Visible && ThrowButton.HasFocus() && !DropButton.Disabled) + // SfxDatabase.Instance.Play(SoundEffect.MoveUI); + //if (Input.IsActionJustPressed(GameInputs.MoveUp) && ActionPanel.Visible && ThrowButton.HasFocus() && !InteractButton.Disabled) + // SfxDatabase.Instance.Play(SoundEffect.MoveUI); + //if (Input.IsActionJustPressed(GameInputs.MoveUp) && ActionPanel.Visible && DropButton.HasFocus() && !ThrowButton.Disabled) + // SfxDatabase.Instance.Play(SoundEffect.MoveUI); + + //if (!ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.InventorySort)) + //{ + // _player.Inventory.Sort(_player.EquipmentComponent.EquippedWeapon.Value, _player.EquipmentComponent.EquippedArmor.Value, _player.EquipmentComponent.EquippedAccessory.Value, _player.EquipmentComponent.EquippedAmmo.Value); + // SfxDatabase.Instance.Play(SoundEffect.SortInventory); + // ResetInventoryState(); + //} + } + + private void Slot_ItemPressed(IItemSlot slot) + { + var item = slot.Item.Value; + + InteractButton.Disabled = false; + ThrowButton.Disabled = false; + DropButton.Disabled = false; + InteractButton.FocusMode = FocusModeEnum.All; + ThrowButton.FocusMode = FocusModeEnum.All; + DropButton.FocusMode = FocusModeEnum.All; + + if (_augmentMode) + { + InteractButton.Text = "Augment"; + ThrowButton.Disabled = true; + DropButton.Disabled = true; + InteractButton.GrabFocus(); + } + else if (item is EquipableItem equipable) + { + var itemIsEquipped = _player.EquipmentComponent.IsItemEquipped(equipable); + InteractButton.Text = itemIsEquipped ? "Unequip" : "Equip"; + ThrowButton.Disabled = itemIsEquipped; + ThrowButton.FocusMode = itemIsEquipped ? FocusModeEnum.None : FocusModeEnum.All; + DropButton.Disabled = itemIsEquipped; + DropButton.FocusMode = itemIsEquipped ? FocusModeEnum.None : FocusModeEnum.All; + InteractButton.GrabFocus(); + + if ((item is Weapon weapon && _player.EquipmentComponent.EquippedWeapon.Value.Glued) || + (item is Armor && _player.EquipmentComponent.EquippedArmor.Value.Glued) || + (item is Accessory && _player.EquipmentComponent.EquippedAccessory.Value.Glued)) + { + InteractButton.Disabled = true; + InteractButton.FocusMode = FocusModeEnum.None; + ThrowButton.GrabFocus(); + } + } + else if (item is Plastique plastique) + { + InteractButton.Text = "Set"; + InteractButton.GrabFocus(); + } + else if (item is ThrowableItem throwable) + { + InteractButton.Disabled = true; + InteractButton.FocusMode = FocusModeEnum.None; + ThrowButton.GrabFocus(); + } + else if (item is Jewel jewel) + { + InteractButton.Text = "Augment"; + InteractButton.GrabFocus(); + } + else + { + InteractButton.Text = "Use"; + InteractButton.GrabFocus(); + } + + ActionPanel.Show(); + } + + private void ResetInventoryState() + { + var inventory = _player.Inventory.Items; + foreach (var item in inventory) + { + var itemSlot = new ItemSlot(); + Inventory.AddChild(itemSlot); + itemSlot.Item.OnNext(item); + ItemSlots.Add(itemSlot); + } + //foreach (var item in ItemSlots) + //{ + // item.Hide(); + // item.Disabled = true; + // item.FocusMode = FocusModeEnum.None; + //} + + //foreach (var item in ItemCountLabels) + // item.Text = string.Empty; + + //ItemName.Text = string.Empty; + //ItemFlavor.Text = string.Empty; + //ItemStats.Text = string.Empty; + + + //for (var i = 0; i < _player.Inventory.Items.Count; i++) + //{ + // var item = _player.Inventory.Items[i]; + // ItemSlots[i].Item.OnNext(item); + // ItemSlots[i].Show(); + // ItemSlots[i].SetItemEquipmentStatus(_player.EquipmentComponent.IsItemEquipped(item)); + // if (item is IStackable stackable) + // ItemCountLabels[i].Text = $"x{stackable.Count.Value:D2}"; + + // if (item is EquipableItem equipable && equipable.Glued) + // { + // ItemSlots[i].FocusMode = FocusModeEnum.None; + // ItemSlots[i].Disabled = true; + // } + // else + // { + // ItemSlots[i].FocusMode = FocusModeEnum.All; + // ItemSlots[i].Disabled = false; + // } + //} + + //if (_currentlySelected == null || _currentlySelected.Disabled || _currentlySelected.FocusMode == FocusModeEnum.None) + // _currentlySelected = ItemSlots.FirstOrDefault(x => !x.Disabled); + + //if (_currentlySelected != null) + // _currentlySelected.GrabFocus(); + } + + private void Slot_FocusEntered(IItemSlot slot) + { + if (_currentlySelected.Item.Value == null) + return; + _currentlySelected = slot; + var item = slot.Item.Value; + ItemName.Text = item.ItemName; + ItemFlavor.Text = item.Description; + } + + private void AugmentMode(Jewel jewel) + { + //_augmentingJewel = jewel; + + //foreach (var item in ItemSlots) + //{ + // item.Disabled = true; + // item.FocusMode = FocusModeEnum.None; + // if (item.Item.Value is EquipableItem equipable && equipable is not Ammo && equipable.Augment == null) + // { + // item.Disabled = false; + // item.FocusMode = FocusModeEnum.All; + // } + //} + + //var itemToSelect = ItemSlots.First(x => !x.Disabled); + //itemToSelect.GrabFocus(); + } + + private void CloseActionMenu() + { + //if (_currentlySelected != null) + // _currentlySelected.GrabFocus(); + //ActionPanel.Hide(); + } +} 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..2f616de77 100644 --- a/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.tscn +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/InventoryMenu.tscn @@ -1,752 +1,449 @@ -[gd_scene load_steps=21 format=3 uid="uid://cbxw70qa7gifp"] +[gd_scene load_steps=17 format=3 uid="uid://c3e6hbctay1us"] -[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="FontFile" uid="uid://beh6d5lo5ihq0" path="res://src/ui/fonts/georgiai.ttf" id="2_7co7g"] +[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="3_b6rkr"] +[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="4_l0byb"] +[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="6_ldqki"] +[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("2_7co7g") +font_size = 50 +outline_size = 3 +outline_color = Color(0, 0, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g7ag1"] +bg_color = Color(0, 0, 0, 0.745098) + +[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_7co7g") +font_size = 40 +outline_size = 3 +outline_color = Color(0, 0, 0, 1) + +[node name="InventoryMenu" type="PanelContainer"] +process_mode = 2 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") +theme_override_styles/panel = SubResource("StyleBoxEmpty_7co7g") +script = ExtResource("1_unikd") -[node name="BG" type="ColorRect" parent="."] -material = SubResource("CanvasItemMaterial_unikd") +[node name="Panel" type="Panel" parent="."] +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"] +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 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -20.0 +offset_right = 20.0 +offset_bottom = 40.0 +grow_horizontal = 2 + +[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 -mouse_filter = 2 -color = Color(0.215686, 0.215686, 0.215686, 0.431373) +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="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"] +[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="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") +[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="PlayerInfo" type="VBoxContainer" parent="InventoryInfo/HBoxContainer"] -layout_mode = 2 -mouse_filter = 2 -theme_override_constants/separation = 20 +[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 -[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"] +[node name="ActionPanel" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer"] unique_name_in_owner = true -custom_minimum_size = Vector2(200, 0) +custom_minimum_size = Vector2(200, 200) layout_mode = 2 -text = "666/666" -label_settings = ExtResource("8_ldqki") +focus_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_g7ag1") -[node name="ReferenceRect4" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] -custom_minimum_size = Vector2(18, 0) +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer/ActionPanel"] +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/ActionPanelContainer/ActionPanel/MarginContainer"] layout_mode = 2 +border_color = Color(1, 1, 1, 1) +border_width = 2.0 +editor_only = false -[node name="ATKBonusLabel" type="Label" parent="InventoryInfo/HBoxContainer/PlayerInfo/ATKBox"] +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer/ActionPanel/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="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer/ActionPanel/MarginContainer/MarginContainer"] +layout_mode = 2 +alignment = 1 + +[node name="InteractButton" type="Button" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer/ActionPanel/MarginContainer/MarginContainer/VBoxContainer"] 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" +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("3_b6rkr") +theme_override_styles/disabled_mirrored = ExtResource("4_l0byb") +theme_override_styles/disabled = ExtResource("4_l0byb") +theme_override_styles/hover_pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover_pressed = ExtResource("4_l0byb") +theme_override_styles/hover_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover = ExtResource("4_l0byb") +theme_override_styles/pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/pressed = ExtResource("4_l0byb") +theme_override_styles/normal_mirrored = ExtResource("4_l0byb") +theme_override_styles/normal = ExtResource("4_l0byb") +text = "Interact" alignment = 0 -[node name="ThrowButton" type="Button" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] +[node name="ThrowButton" type="Button" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer/ActionPanel/MarginContainer/MarginContainer/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_top = NodePath("../InteractButton") 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 +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("3_b6rkr") +theme_override_styles/disabled_mirrored = ExtResource("4_l0byb") +theme_override_styles/disabled = ExtResource("4_l0byb") +theme_override_styles/hover_pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover_pressed = ExtResource("4_l0byb") +theme_override_styles/hover_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover = ExtResource("4_l0byb") +theme_override_styles/pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/pressed = ExtResource("4_l0byb") +theme_override_styles/normal_mirrored = ExtResource("4_l0byb") +theme_override_styles/normal = ExtResource("4_l0byb") text = "Throw" alignment = 0 -[node name="DropButton" type="Button" parent="InventoryInfo/HBoxContainer/PlayerInfo/HBoxContainer/VBoxContainer"] +[node name="DropButton" type="Button" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ActionPanelContainer/ActionPanel/MarginContainer/MarginContainer/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 +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("3_b6rkr") +theme_override_styles/disabled_mirrored = ExtResource("4_l0byb") +theme_override_styles/disabled = ExtResource("4_l0byb") +theme_override_styles/hover_pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover_pressed = ExtResource("4_l0byb") +theme_override_styles/hover_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover = ExtResource("4_l0byb") +theme_override_styles/pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/pressed = ExtResource("4_l0byb") +theme_override_styles/normal_mirrored = ExtResource("4_l0byb") +theme_override_styles/normal = ExtResource("4_l0byb") text = "Drop" alignment = 0 -[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 - -[node name="MarginContainer" type="MarginContainer" parent="Panel"] +[node name="ItemDescriptionPanelContainer" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"] +custom_minimum_size = Vector2(500, 500) layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 +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="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="ItemDescriptionBox" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_cq2sk") + +[node name="MarginContainer2" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer/ItemDescriptionBox"] +layout_mode = 2 +offset_left = -15.0 +offset_top = 10.0 +offset_right = 515.0 +offset_bottom = 490.0 theme_override_constants/margin_left = 15 theme_override_constants/margin_top = 15 theme_override_constants/margin_right = 15 theme_override_constants/margin_bottom = 15 -[node name="ScrollContainer" type="ScrollContainer" parent="Panel/MarginContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer/ItemDescriptionBox/MarginContainer2"] layout_mode = 2 -theme_override_styles/panel = SubResource("StyleBoxEmpty_unikd") -follow_focus = true -draw_focus_border = true +theme_override_constants/separation = 50 -[node name="ItemsPage" type="VBoxContainer" parent="Panel/MarginContainer/ScrollContainer"] +[node name="ItemName" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer/ItemDescriptionBox/MarginContainer2/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 2 +label_settings = ExtResource("7_we8a6") + +[node name="ItemFlavor" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer/ItemDescriptionBox/MarginContainer2/VBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(500, 150) +layout_mode = 2 +label_settings = ExtResource("7_we8a6") +vertical_alignment = 1 +autowrap_mode = 2 + +[node name="ItemStats" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/ItemDescriptionPanelContainer/MarginContainer/ItemDescriptionBox/MarginContainer2/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +label_settings = ExtResource("7_we8a6") + +[node name="InventoryList" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"] +custom_minimum_size = Vector2(500, 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 = -95.0 +offset_top = -365.0 +offset_right = 405.0 +offset_bottom = 435.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 = 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/InventoryList/Panel/MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +border_width = 2.0 +editor_only = false + +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 15 +theme_override_constants/margin_top = 15 +theme_override_constants/margin_right = 15 +theme_override_constants/margin_bottom = 15 + +[node name="Inventory" type="VBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/InventoryList/Panel/MarginContainer/MarginContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 0 + +[node name="AugmentItemPanelContainer" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel"] +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="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer"] +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="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer"] +layout_mode = 2 + +[node name="Panel" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer"] +custom_minimum_size = Vector2(400, 250) +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_unikd") + +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/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="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer/MarginContainer"] +layout_mode = 2 +border_color = Color(1, 1, 1, 1) +editor_only = false + +[node name="CenterContainer" type="CenterContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer/CenterContainer"] +layout_mode = 2 +theme_override_constants/separation = 25 + +[node name="Label" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer"] +layout_mode = 2 +text = "Augment Item?" +label_settings = SubResource("LabelSettings_unikd") +horizontal_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 20 alignment = 1 -[node name="ItemSlot1" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] +[node name="CancelAugmentButton" type="Button" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer/HBoxContainer"] unique_name_in_owner = true layout_mode = 2 +theme_override_fonts/font = ExtResource("6_ldqki") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("3_b6rkr") +theme_override_styles/disabled_mirrored = ExtResource("4_l0byb") +theme_override_styles/disabled = ExtResource("4_l0byb") +theme_override_styles/hover_pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover_pressed = ExtResource("4_l0byb") +theme_override_styles/hover_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover = ExtResource("4_l0byb") +theme_override_styles/pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/pressed = ExtResource("4_l0byb") +theme_override_styles/normal_mirrored = ExtResource("4_l0byb") +theme_override_styles/normal = ExtResource("4_l0byb") +text = "Cancel" -[node name="ItemSlot2" parent="Panel/MarginContainer/ScrollContainer/ItemsPage" instance=ExtResource("4_aiji3")] +[node name="ConfirmAugmentButton" type="Button" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer/PanelContainer/CenterContainer/VBoxContainer/HBoxContainer"] unique_name_in_owner = true -visible = false layout_mode = 2 +theme_override_fonts/font = ExtResource("6_ldqki") +theme_override_font_sizes/font_size = 25 +theme_override_styles/focus = ExtResource("3_b6rkr") +theme_override_styles/disabled_mirrored = ExtResource("4_l0byb") +theme_override_styles/disabled = ExtResource("4_l0byb") +theme_override_styles/hover_pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover_pressed = ExtResource("4_l0byb") +theme_override_styles/hover_mirrored = ExtResource("4_l0byb") +theme_override_styles/hover = ExtResource("4_l0byb") +theme_override_styles/pressed_mirrored = ExtResource("4_l0byb") +theme_override_styles/pressed = ExtResource("4_l0byb") +theme_override_styles/normal_mirrored = ExtResource("4_l0byb") +theme_override_styles/normal = ExtResource("4_l0byb") +text = "Confirm" -[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")] -unique_name_in_owner = true -visible = false +[node name="PanelContainer2" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/AugmentItemPanelContainer/CenterContainer"] 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