Support for getting the last turn time.
This commit is contained in:
parent
ea4c9c6877
commit
a90fb3e481
|
@ -57,6 +57,7 @@ namespace PkmnLibSharp.Battling
|
||||||
public ulong SidesCount => Creaturelib.Generated.Battle.GetSidesCount(Ptr);
|
public ulong SidesCount => Creaturelib.Generated.Battle.GetSidesCount(Ptr);
|
||||||
public ulong PartiesCount => Creaturelib.Generated.Battle.GetPartiesCount(Ptr);
|
public ulong PartiesCount => Creaturelib.Generated.Battle.GetPartiesCount(Ptr);
|
||||||
public ulong MonsPerSide => Creaturelib.Generated.Battle.GetCreaturesPerSide(Ptr);
|
public ulong MonsPerSide => Creaturelib.Generated.Battle.GetCreaturesPerSide(Ptr);
|
||||||
|
public long LastTurnTimeMicroseconds => Creaturelib.Generated.Battle.GetLastTurnTimeMicroseconds(Ptr);
|
||||||
|
|
||||||
public ReadOnlyNativePtrArray<BattleSide> Sides
|
public ReadOnlyNativePtrArray<BattleSide> Sides
|
||||||
{
|
{
|
||||||
|
@ -105,10 +106,21 @@ namespace PkmnLibSharp.Battling
|
||||||
return b == 1;
|
return b == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly List<BaseTurnChoice> _choiceCache = new List<BaseTurnChoice>();
|
||||||
public bool TrySetChoice(BaseTurnChoice turnChoice)
|
public bool TrySetChoice(BaseTurnChoice turnChoice)
|
||||||
{
|
{
|
||||||
byte b = 0;
|
byte b = 0;
|
||||||
|
var initialTurn = CurrentTurn;
|
||||||
|
_choiceCache.Add(turnChoice);
|
||||||
|
var t1 = System.Diagnostics.Stopwatch.StartNew();
|
||||||
Creaturelib.Generated.Battle.TrySetChoice(ref b, Ptr, turnChoice.Ptr).Assert();
|
Creaturelib.Generated.Battle.TrySetChoice(ref b, Ptr, turnChoice.Ptr).Assert();
|
||||||
|
t1.Stop();
|
||||||
|
if (b == 1 && CurrentTurn != initialTurn)
|
||||||
|
{
|
||||||
|
LogHandler.Log(LogHandler.LogLevel.Information,
|
||||||
|
$"Ran turn in {t1.ElapsedMilliseconds} ms, battle reported {LastTurnTimeMicroseconds} microseconds");
|
||||||
|
_choiceCache.Clear();
|
||||||
|
}
|
||||||
return b == 1;
|
return b == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -197,5 +197,10 @@ namespace Creaturelib.Generated
|
||||||
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Battle_GetHistory")]
|
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Battle_GetHistory")]
|
||||||
internal static extern IntPtr GetHistory(IntPtr p);
|
internal static extern IntPtr GetHistory(IntPtr p);
|
||||||
|
|
||||||
|
/// <param name="p">const Battle *</param>
|
||||||
|
/// <returns>long int</returns>
|
||||||
|
[DllImport("CreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Battle_GetLastTurnTimeMicroseconds")]
|
||||||
|
internal static extern long GetLastTurnTimeMicroseconds(IntPtr p);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
BIN
PkmnLibSharp/Native/libArbutils.so (Stored with Git LFS)
BIN
PkmnLibSharp/Native/libArbutils.so (Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/libCreatureLib.so (Stored with Git LFS)
BIN
PkmnLibSharp/Native/libCreatureLib.so (Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/libpkmnLib.so (Stored with Git LFS)
BIN
PkmnLibSharp/Native/libpkmnLib.so (Stored with Git LFS)
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue