IDamageable.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.Collections.Generic;
  3. namespace OpenVIII
  4. {
  5. public interface IStatusEffects
  6. {
  7. Kernel.PersistentStatuses Statuses0 { get; set; }
  8. Kernel.BattleOnlyStatuses Statuses1 { get; set; }
  9. bool DealStatus(Kernel.PersistentStatuses? statuses0, Kernel.BattleOnlyStatuses? statuses1, Kernel.AttackType type, Kernel.AttackFlags? flags);
  10. IReadOnlyDictionary<Kernel.AttackType, Func<Kernel.PersistentStatuses, Kernel.BattleOnlyStatuses, Kernel.AttackFlags, int>> StatusesActions { get; }
  11. bool StatusImmune { get; }
  12. sbyte StatusResistance(Kernel.BattleOnlyStatuses s);
  13. sbyte StatusResistance(Kernel.PersistentStatuses s);
  14. }
  15. public interface IElemental
  16. {
  17. short ElementalResistance(Kernel.Element @in);
  18. }
  19. public interface IDamageable : IStatusEffects, IStats,IElemental
  20. {
  21. IReadOnlyDictionary<Kernel.AttackType, Func<int, Kernel.AttackFlags, int>> DamageActions { get; }
  22. bool IsDead { get; }
  23. bool IsGameOver { get; }
  24. bool IsInactive { get; }
  25. bool IsNonInteractive { get; }
  26. bool IsPetrify { get; }
  27. FF8String Name { get; set; }
  28. bool ChangeHP(int dmg);
  29. bool IsCritical { get; }
  30. ushort CurrentHP();
  31. bool DealDamage(int dmg, Kernel.AttackType type, Kernel.AttackFlags? flags);
  32. ushort ReviveHP();
  33. }
  34. public interface IStats
  35. {
  36. ushort HP { get; }
  37. ushort TotalStat(Kernel.Stat s);
  38. byte SPD { get; }
  39. byte SPR { get; }
  40. byte STR { get; }
  41. byte VIT { get; }
  42. byte MAG { get; }
  43. byte HIT { get; }
  44. byte Level { get; }
  45. byte LUCK { get; }
  46. byte EVA { get; }
  47. int EXP { get; }
  48. ushort MaxHP();
  49. float PercentFullHP();
  50. ushort CriticalHP();
  51. }
  52. }