public static void HandleProgress(ConquestProgressContainer e) { if (e != null && e.State != null && e.State.User != null) { CheckProgress <ConquestProgressConquest>(e.State.User, e); } else if (e != null && e.State != null) { CheckProgress <ConquestProgressConquest>(e.State.Owner, e); } }
public void UpdateProgress(int offset) { if (offset <= 0 || !ConquestExists) { return; } if (Completed) { _Progress = ProgressMax; return; } DateTime now = DateTime.Now; if (Conquest.TimeoutReset > TimeSpan.Zero && LastProgress + Conquest.TimeoutReset < now) { _Progress = 0; return; } LastProgress = now; var args = new ConquestProgressContainer(this, offset); Conquests.HandleProgress(args); offset = args.Offset; _Progress += offset; Conquest.OnProgress(this, offset); while (ProgressComplete && !Completed) { int pMax = ProgressMax; ++Tier; Conquest.OnTierComplete(this); Conquests.HandleTierCompleted(new ConquestTierCompletedContainer(this, Tier)); if (TiersComplete) { _Progress = pMax; break; } _Progress -= pMax; } if (!Completed) { return; } _Progress = ProgressMax; CompletedDate = DateTime.Now; ConquestState wf = Conquests.FindWorldFirst(Conquest); if (wf == null && (Owner.AccessLevel == AccessLevel.Player || Owner.AccessLevel > AccessLevel.Player && Conquests.CMOptions.StaffWorldFirsts)) { WorldFirst = true; Conquest.OnWorldFirst(this); } Conquests.HandleCompleted(new ConquestCompletedContainer(this)); }