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((Vector3 Rotation, Vector3 Position) newTransform); public void Equip(IEquipableItem equipable); public void Unequip(IEquipableItem equipable); public void PlayJumpScareAnimation(); public void ApplyNewAugment(IAugmentItem jewel, IAugmentableItem equipableItem); public IBaseInventoryItem IdentifyItem(IBaseInventoryItem unidentifiedItem); 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 SetHealthTimerStatus(bool isActive); public void ModifyHealthTimerSpeed(float newModifier); public void PlaySpellFX(SpellFXEnum spellEnum); public bool AutoRevive { get; set; } public int TotalAttack { get; } public int TotalDefense { get; } public int TotalLuck { get; } public int HealthTimerHPRate { get; set; } public float HealthTimerSpeedModifier { get; } public bool AutoIdentifyItems { get; set; } public event Action PlayerDied; public delegate IBaseInventoryItem RerollItem(IBaseInventoryItem item); }