using System; using System.Collections.Generic; using System.Diagnostics; using RecNet; namespace RecRoom.Challenges { // Token: 0x02000AFC RID: 2812 public abstract class ChallengeBase : IChallenge, INMKELLJKBO, EBHIILNPABI { // Token: 0x170008DC RID: 2268 // (get) Token: 0x06015A63 RID: 88675 RVA: 0x0060475C File Offset: 0x0060295C // (set) Token: 0x06015A64 RID: 88676 RVA: 0x00604764 File Offset: 0x00602964 public bool Complete { get; private set; } // Token: 0x170008DD RID: 2269 // (get) Token: 0x06015A65 RID: 88677 RVA: 0x00604770 File Offset: 0x00602970 // (set) Token: 0x06015A66 RID: 88678 RVA: 0x00604778 File Offset: 0x00602978 public bool Dirty { get; protected set; } // Token: 0x170008DE RID: 2270 // (get) Token: 0x06015A67 RID: 88679 RVA: 0x00604784 File Offset: 0x00602984 // (set) Token: 0x06015A68 RID: 88680 RVA: 0x0060478C File Offset: 0x0060298C public bool UpdateServer { get; protected set; } // Token: 0x170008DF RID: 2271 // (get) Token: 0x06015A69 RID: 88681 RVA: 0x00604798 File Offset: 0x00602998 public virtual ChallengeProgress Progress { get { return new ChallengeProgress { Count = ((!this.Complete) ? 0 : 1), Total = 1 }; } } // Token: 0x170008E0 RID: 2272 // (get) Token: 0x06015A6A RID: 88682 public abstract ChallengeTypes ChallengeType { get; } // Token: 0x170008E1 RID: 2273 // (get) Token: 0x06015A6B RID: 88683 RVA: 0x006047D0 File Offset: 0x006029D0 // (set) Token: 0x06015A6C RID: 88684 RVA: 0x006047D8 File Offset: 0x006029D8 public bool SkipSerialization { get; set; } // Token: 0x170008E2 RID: 2274 // (get) Token: 0x06015A6D RID: 88685 RVA: 0x006047E4 File Offset: 0x006029E4 // (set) Token: 0x06015A6E RID: 88686 RVA: 0x006047EC File Offset: 0x006029EC public bool UpdateServerOnReset { get; set; } // Token: 0x170008E3 RID: 2275 // (get) Token: 0x06015A6F RID: 88687 RVA: 0x006047F8 File Offset: 0x006029F8 // (set) Token: 0x06015A70 RID: 88688 RVA: 0x00604800 File Offset: 0x00602A00 public bool IsMasterChallenge { get; set; } // Token: 0x06015A71 RID: 88689 RVA: 0x0060480C File Offset: 0x00602A0C public void EvaluateEvent(ChallengeEvents.IChallengeEventData challengeEventData) { this.Evaluate(challengeEventData); } // Token: 0x06015A72 RID: 88690 RVA: 0x00604818 File Offset: 0x00602A18 public bool Evaluate(ChallengeEvents.IChallengeEventData challengeEventData) { this.Dirty = false; this.UpdateServer = false; if (this.Complete && !this.IgnorePreviousCompletions) { return true; } if (this.Complete && this.IgnorePreviousCompletions) { this.Complete = false; } bool flag = this.EvaluateInternal(challengeEventData); bool flag2 = flag != this.Complete; bool flag3 = flag && !this.Complete; if (this.Dirty) { this.UpdateEvent.LAMMJKLHNOL(delegate(UpdateChallenge _) { _(this); }); } if (flag2) { if (flag3) { this.UpdateServer = true; this.Complete = true; this.ChallengeCompleteEvent.LAMMJKLHNOL(delegate(ChallengeComplete _) { _(this, challengeEventData); }); } if (this.IgnorePreviousCompletions) { this.Complete = flag; } } if (this.UpdateServer && this.IsMasterChallenge) { this.UpdateServerEvent.LAMMJKLHNOL(delegate(UpdateChallenge _) { _(this); }); } return flag; } // Token: 0x06015A73 RID: 88691 protected abstract bool EvaluateInternal(ChallengeEvents.IChallengeEventData challengeEventData); // Token: 0x06015A74 RID: 88692 RVA: 0x0060493C File Offset: 0x00602B3C public virtual void Reset() { if (this.UpdateServerOnReset) { this.UpdateServer = true; this.Dirty = true; } this.Complete = false; } // Token: 0x14000096 RID: 150 // (add) Token: 0x06015A75 RID: 88693 RVA: 0x00604960 File Offset: 0x00602B60 // (remove) Token: 0x06015A76 RID: 88694 RVA: 0x00604998 File Offset: 0x00602B98 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public event ChallengeComplete ChallengeCompleteEvent; // Token: 0x14000097 RID: 151 // (add) Token: 0x06015A77 RID: 88695 RVA: 0x006049D0 File Offset: 0x00602BD0 // (remove) Token: 0x06015A78 RID: 88696 RVA: 0x00604A08 File Offset: 0x00602C08 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public event UpdateChallenge UpdateEvent; // Token: 0x14000098 RID: 152 // (add) Token: 0x06015A79 RID: 88697 RVA: 0x00604A40 File Offset: 0x00602C40 // (remove) Token: 0x06015A7A RID: 88698 RVA: 0x00604A78 File Offset: 0x00602C78 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public event UpdateChallenge UpdateServerEvent; // Token: 0x14000099 RID: 153 // (add) Token: 0x06015A7B RID: 88699 RVA: 0x00604AB0 File Offset: 0x00602CB0 // (remove) Token: 0x06015A7C RID: 88700 RVA: 0x00604AE8 File Offset: 0x00602CE8 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public event ChallengeNotifyEvent ChallengeNotifyEvent; // Token: 0x06015A7D RID: 88701 RVA: 0x00604B20 File Offset: 0x00602D20 public void Notify(int count = 0, int total = 0) { this.ChallengeNotifyEvent.LAMMJKLHNOL(delegate(ChallengeNotifyEvent _) { _(this, count, total); }); } // Token: 0x06015A7E RID: 88702 RVA: 0x00604B60 File Offset: 0x00602D60 protected static void SerializeOptionalField(string key, T value, T defaultValue, Dictionary jsonDict) where T : struct, IComparable, IEquatable { if (!EqualityComparer.Default.Equals(value, defaultValue)) { jsonDict[key] = value; } } // Token: 0x06015A7F RID: 88703 RVA: 0x00604B80 File Offset: 0x00602D80 public virtual Dictionary Serialize() { Dictionary dictionary = new Dictionary(); dictionary["ct"] = (int)this.ChallengeType; ChallengeBase.SerializeOptionalField("c", this.Complete, false, dictionary); ChallengeBase.SerializeOptionalField("ipc", this.IgnorePreviousCompletions, true, dictionary); return dictionary; } // Token: 0x06015A80 RID: 88704 RVA: 0x00604BD0 File Offset: 0x00602DD0 public void Deserialize(Dictionary jsonDict) { this.IgnorePreviousCompletions = ChallengeParser.GetOptionalKey("ipc", jsonDict, true); this.Complete = ChallengeParser.GetOptionalKey("c", jsonDict, false); this.DeserializeInternal(jsonDict); this.Initialize(); } // Token: 0x06015A81 RID: 88705 protected abstract void DeserializeInternal(Dictionary jsonDict); // Token: 0x06015A82 RID: 88706 RVA: 0x00604C04 File Offset: 0x00602E04 protected virtual void Initialize() { } // Token: 0x04003C0D RID: 15373 public bool IgnorePreviousCompletions = true; // Token: 0x04003C0E RID: 15374 public const bool IGNORE_PREVIOUS_COMPLETIONS_DEFAULT = true; // Token: 0x04003C13 RID: 15379 public const string IGNORE_PREVIOUS_COMPLETIONS_KEY = "ipc"; // Token: 0x04003C14 RID: 15380 public const string COMPLETE_KEY = "c"; // Token: 0x04003C15 RID: 15381 public const string CHALLENGE_TYPE_KEY = "ct"; } }