using Chickensoft.AutoInject; using Chickensoft.Collections; using Chickensoft.SaveFileBuilder; using Godot; namespace GameJamDungeon; public interface IPlayer : IKillable, IProvide> { public void Attack(); public void ToggleInventory(); public void ToggleMinimap(); public void PlayerPause(); public void TakeDamage(double damage, ElementType elementType = ElementType.None, bool isCriticalHit = false); public void Knockback(float impulse); public void GainExp(int expGained); public void LevelUp(); public void Move(float delta); public void TeleportPlayer(Vector3 newPosition); public IDungeonRoom GetCurrentRoom(); 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 Inventory Inventory { get; } public PlayerStatController Stats { get; } public Vector3 CurrentPosition { get; } public Basis CurrentBasis { get; } public IAutoProp EquippedWeapon { get; } public IAutoProp EquippedArmor { get; } public IAutoProp EquippedAccessory { get; } public void Equip(EquipableItem equipable); public void Unequip(EquipableItem equipable); }