using Chickensoft.Collections; using Godot; using Zennysoft.Game.Abstractions; namespace Zennysoft.Ma.Adapter; public interface IPlayer : IKillable { public void Attack(); public void PlayerPause(); public void TakeDamage(double damage, ElementType elementType = ElementType.None, bool isCriticalHit = false); public void Knockback(float impulse); public void GainExp(double expGained); public void LevelUp(); public void Move(float delta); public void TeleportPlayer(Transform3D newTransform); public void HealHP(int amount); public void RaiseHP(int amount); public void HealVT(int amount); public void RaiseVT(int amount); public void ModifyBonusAttack(int amount); public void ModifyBonusDefense(int amount); public void ModifyMaximumHP(int amount); public void ModifyMaximumVT(int amount); public void ModifyBonusLuck(double amount); public IInventory Inventory { get; } public PlayerStatController Stats { 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); }