diff --git a/SotnApi/SotnApi/AlucardApi.cs b/SotnApi/SotnApi/AlucardApi.cs index 4375089..b3a8782 100644 --- a/SotnApi/SotnApi/AlucardApi.cs +++ b/SotnApi/SotnApi/AlucardApi.cs @@ -2,6 +2,7 @@ using SotnApi.Constants.Addresses.Alucard; using SotnApi.Constants.Values.Alucard; using SotnApi.Constants.Values.Alucard.Enums; +using SotnApi.Constants.Values.Game; using SotnApi.Interfaces; using System; using Effects = SotnApi.Constants.Addresses.Alucard.Effects; @@ -1250,6 +1251,17 @@ public bool IsInvincible() return memAPI.ReadByte(Timers.Invincibility) > 0 || memAPI.ReadByte(Timers.KnockbackInvincibility) > 0 || memAPI.ReadByte(Timers.PotionInvincibility) > 0; } + public bool HasControl() + { + + return memAPI.ReadByte(Stats.HasControl) == 0; + } + + public bool HasHitbox() + { + return memAPI.ReadByte(Actor.Address + Actors.HitboxWidthOffset) > 0 && memAPI.ReadByte(Actor.Address + Actors.HitboxHeightOffset) > 0; + } + public void Heal(uint amount) { memAPI.WriteS16(Effects.HealAmount, (int)amount); diff --git a/SotnApi/SotnApi/Constants/Addresses/Alucard/Actor.cs b/SotnApi/SotnApi/Constants/Addresses/Alucard/Actor.cs new file mode 100644 index 0000000..9105e08 --- /dev/null +++ b/SotnApi/SotnApi/Constants/Addresses/Alucard/Actor.cs @@ -0,0 +1,7 @@ +namespace SotnApi.Constants.Addresses.Alucard +{ + internal static class Actor + { + public static long Address = 0x0733D8; + } +} diff --git a/SotnApi/SotnApi/Constants/Addresses/Alucard/Stats.cs b/SotnApi/SotnApi/Constants/Addresses/Alucard/Stats.cs index ac29190..ecbb541 100644 --- a/SotnApi/SotnApi/Constants/Addresses/Alucard/Stats.cs +++ b/SotnApi/SotnApi/Constants/Addresses/Alucard/Stats.cs @@ -25,6 +25,7 @@ internal static class Stats public static long WarpsSecondCastle = 0x03BEBD; public static long MapOffsetX = 0x0973F1; public static long MapOffsetY = 0x0973F5; + public static long HasControl = 0x072EFC; public static long ScreenX = 0x072F9C; public static long ScreenY = 0x072F9E; public static long MapX = 0x0730B0; diff --git a/SotnApi/SotnApi/Interfaces/IAlucardApi.cs b/SotnApi/SotnApi/Interfaces/IAlucardApi.cs index aa621e2..47b11c8 100644 --- a/SotnApi/SotnApi/Interfaces/IAlucardApi.cs +++ b/SotnApi/SotnApi/Interfaces/IAlucardApi.cs @@ -144,6 +144,8 @@ public interface IAlucardApi bool HasItemInInventory(string name); bool HasRelic(Relic name); bool IsInvincible(); + bool HasControl(); + bool HasHitbox(); void Heal(uint ammount); void ActivateStopwatch(); void ActivatePotion(Potion potion);