private CastResult GetCastStatus(CastTrackInfo info) { var isCasting = info.IsCasting; info.DurationMs = (int)DateTime.UtcNow.Subtract(info.StartTime).TotalMilliseconds; if (info.WasCasting == isCasting) { var result = isCasting ? CastResult.Casting : CastResult.NotCasting; info.LastResult = result; return(result); } info.WasCasting = isCasting; if (isCasting) { Core.Logger.Verbose($"Started Casting {info.Power}"); info.StartPosition = ZetaDia.Me.Position; info.StartTime = DateTime.UtcNow; info.WorldId = ZetaDia.Globals.WorldSnoId; info.LastResult = CastResult.Casting; info.DurationMs = 0; return(CastResult.Casting); } Core.Logger.Verbose($"Stopped Casting {info.Power} after {info.DurationMs}ms"); if (info.Success(info)) { info.LastResult = CastResult.Success; CastSuccess(info); return(CastResult.Success); } info.LastResult = CastResult.Failed; CastFailure(info); return(CastResult.Failed); }
private void CheckCasting(CastTrackInfo info) { switch (GetCastStatus(info)) { case CastResult.None: case CastResult.NotCasting: case CastResult.Transition: return; case CastResult.Success: Core.Logger.Verbose($"Casting {info.Power} was Successful"); break; case CastResult.Failed: Core.Logger.Verbose($"Casting {info.Power} Failed! Elapsed={info.DurationMs}ms"); break; case CastResult.Casting: Core.Logger.Verbose($"Casting {info.Power}, Elapsed={info.DurationMs}ms"); break; } }