Files
GameJamDungeon/src/player/IPlayer.cs

68 lines
1.4 KiB
C#

using Chickensoft.AutoInject;
using Chickensoft.Collections;
using Chickensoft.SaveFileBuilder;
using Godot;
namespace GameJamDungeon;
public interface IPlayer : IKillable, IProvide<ISaveChunk<PlayerData>>
{
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<Weapon> EquippedWeapon { get; }
public IAutoProp<Armor> EquippedArmor { get; }
public IAutoProp<Accessory> EquippedAccessory { get; }
public void Equip(EquipableItem equipable);
public void Unequip(EquipableItem equipable);
}