Files
2026-06-04 11:42:34 +02:00

213 lines
7.0 KiB
C#

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<T>(string key, T value, T defaultValue, Dictionary<string, object> jsonDict) where T : struct, IComparable, IEquatable<T>
{
if (!EqualityComparer<T>.Default.Equals(value, defaultValue))
{
jsonDict[key] = value;
}
}
// Token: 0x06015A7F RID: 88703 RVA: 0x00604B80 File Offset: 0x00602D80
public virtual Dictionary<string, object> Serialize()
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
dictionary["ct"] = (int)this.ChallengeType;
ChallengeBase.SerializeOptionalField<bool>("c", this.Complete, false, dictionary);
ChallengeBase.SerializeOptionalField<bool>("ipc", this.IgnorePreviousCompletions, true, dictionary);
return dictionary;
}
// Token: 0x06015A80 RID: 88704 RVA: 0x00604BD0 File Offset: 0x00602DD0
public void Deserialize(Dictionary<string, object> jsonDict)
{
this.IgnorePreviousCompletions = ChallengeParser.GetOptionalKey<bool>("ipc", jsonDict, true);
this.Complete = ChallengeParser.GetOptionalKey<bool>("c", jsonDict, false);
this.DeserializeInternal(jsonDict);
this.Initialize();
}
// Token: 0x06015A81 RID: 88705
protected abstract void DeserializeInternal(Dictionary<string, object> 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";
}
}