コード例 #1
0
        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);
        }
コード例 #2
0
        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;
            }
        }