using Chickensoft.GodotNodeInterfaces; using Godot; using Zennysoft.Game.Abstractions; namespace Zennysoft.Ma.Adapter; public interface IPlayer : IKillable, ICharacterBody3D { public void ResetPlayerData(); public void Activate(); public void Deactivate(); public void TakeDamage(AttackData damage); public void Knockback(float impulse); public void LevelUp(); public void TeleportPlayer(Transform3D newTransform); public void Equip(EquipableItem equipable); public void Unequip(EquipableItem equipable); public IInventory Inventory { get; } public IHealthComponent HealthComponent { get; } public IVTComponent VTComponent { get; } public IAttackComponent AttackComponent { get; } public IDefenseComponent DefenseComponent { get; } public IExperiencePointsComponent ExperiencePointsComponent { get; } public ILuckComponent LuckComponent { get; } public IEquipmentComponent EquipmentComponent { get; } public void PlayTestAnimation(); public event Action PlayerDied; public delegate InventoryItem RerollItem(InventoryItem item); }