IDamageable.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.Collections.Generic;
  3. namespace OpenVIII
  4. {
  5. public interface IStatusEffects
  6. {
  7. Kernel_bin.Persistent_Statuses Statuses0 { get; set; }
  8. Kernel_bin.Battle_Only_Statuses Statuses1 { get; set; }
  9. bool DealStatus(Kernel_bin.Persistent_Statuses? statuses0, Kernel_bin.Battle_Only_Statuses? statuses1, Kernel_bin.Attack_Type type, Kernel_bin.Attack_Flags? flags);
  10. IReadOnlyDictionary<Kernel_bin.Attack_Type, Func<Kernel_bin.Persistent_Statuses, Kernel_bin.Battle_Only_Statuses, Kernel_bin.Attack_Flags, int>> StatusesActions { get; }
  11. bool StatusImmune { get; }
  12. sbyte StatusResistance(Kernel_bin.Battle_Only_Statuses s);
  13. sbyte StatusResistance(Kernel_bin.Persistent_Statuses s);
  14. }
  15. public interface IElemental
  16. {
  17. short ElementalResistance(Kernel_bin.Element @in);
  18. }
  19. public interface IDamageable : IStatusEffects, IStats,IElemental
  20. {
  21. IReadOnlyDictionary<Kernel_bin.Attack_Type, Func<int, Kernel_bin.Attack_Flags, 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_bin.Attack_Type type, Kernel_bin.Attack_Flags? flags);
  32. ushort ReviveHP();
  33. }
  34. public interface IStats
  35. {
  36. ushort HP { get; }
  37. ushort TotalStat(Kernel_bin.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. }