using Chickensoft.Collections; using Godot; using Zennysoft.Game.Abstractions; using Zennysoft.Game.Implementation.Components; namespace Zennysoft.Ma.Adapter; public interface IPlayer : IKillable { public void InitializePlayerState(); public void Activate(); public void Deactivate(); public void Attack(); public void TakeDamage(Damage damage); public void Knockback(float impulse); public void LevelUp(); public void Move(float delta); public void TeleportPlayer(Transform3D newTransform); public void SetHealthTimerStatus(bool isActive); public IInventory Inventory { get; } public Vector3 CurrentPosition { get; } public Basis CurrentBasis { get; } public AutoProp EquippedWeapon { get; } public AutoProp EquippedArmor { get; } public AutoProp EquippedAccessory { get; } public void Equip(EquipableItem equipable); public void Unequip(EquipableItem equipable); public HealthComponent HealthComponent { get; } public VTComponent VTComponent { get; } public AttackComponent AttackComponent { get; } public DefenseComponent DefenseComponent { get; } public ExperiencePointsComponent ExperiencePointsComponent { get; } public LuckComponent LuckComponent { get; } }