Files
GameJamDungeon/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs
2026-02-13 15:59:10 -08:00

68 lines
1.6 KiB
C#

using Chickensoft.GodotNodeInterfaces;
using Godot;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Ma.Adapter;
public interface IPlayer : IKillable, ICharacterBody3D
{
public void ResetPlayerData();
public void Activate();
public void Deactivate();
public void TakeDamage(AttackData damage);
public void Knockback(float impulse);
public void LevelUp();
public void TeleportPlayer((Vector3 Rotation, Vector3 Position) newTransform);
public void Equip(IEquipableItem equipable);
public void Unequip(IEquipableItem equipable);
public void PlayJumpScareAnimation();
public void ApplyNewAugment(Jewel jewel, IAugmentableItem equipableItem);
public void IdentifyItem(IBaseInventoryItem unidentifiedItem);
public IInventory Inventory { get; }
public IHealthComponent HealthComponent { get; }
public IVTComponent VTComponent { get; }
public IAttackComponent AttackComponent { get; }
public IDefenseComponent DefenseComponent { get; }
public IExperiencePointsComponent ExperiencePointsComponent { get; }
public ILuckComponent LuckComponent { get; }
public IEquipmentComponent EquipmentComponent { get; }
public void SetHealthTimerStatus(bool isActive);
public void ModifyHealthTimerSpeed(float newModifier);
public bool AutoRevive { get; set; }
public int TotalAttack { get; }
public int TotalDefense { get; }
public int TotalLuck { get; }
public int HealthTimerHPRate { get; set; }
public float HealthTimerSpeedModifier { get; }
public bool AutoIdentifyItems { get; set; }
public event Action PlayerDied;
public delegate IBaseInventoryItem RerollItem(IBaseInventoryItem item);
}