68 lines
1.4 KiB
C#
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);
|
|
}
|