using System; using System.Collections.Generic; using System.Linq; using RecNet; using UnityEngine; namespace RecRoom.Challenges { // Token: 0x02000B0F RID: 2831 public class ChallengeParser { // Token: 0x06015AEF RID: 88815 RVA: 0x00605768 File Offset: 0x00603968 public static IChallenge FromJsonDict(Dictionary dict) { ChallengeTypes? challengeType = ChallengeParser.GetChallengeType(dict); if (challengeType != null) { switch (challengeType.Value) { case ChallengeTypes.Challenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.ChallengeCountChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.TimedBufferChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.DynamicFloatArithmeticChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.DynamicIntArithmeticChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.RequiredToolChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.RequiredEventTypeChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.RequiredActivityChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.RequiredEnemyTypeChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.BoolVarEqualsChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.DiscGolfFinishUnderParChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.RequiredGameModeActivityChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.CompleteGameWithoutChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.RequiredGestureChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.HitstreakChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); case ChallengeTypes.HitstreakCountChallenge: return OFPFHHLNHIC.DKMOHDIJHAE(dict); } } return null; } // Token: 0x06015AF0 RID: 88816 RVA: 0x00605850 File Offset: 0x00603A50 private static ChallengeTypes? GetChallengeType(Dictionary dict) { if (dict != null && dict.ContainsKey("ct")) { ChallengeTypes challengeTypes = (ChallengeTypes)OFPFHHLNHIC.KOFIKGFMMKD("ct", dict); return new ChallengeTypes?(challengeTypes); } return null; } // Token: 0x06015AF1 RID: 88817 RVA: 0x00605890 File Offset: 0x00603A90 public static bool TryGetChallenge(string key, Dictionary dict, out IChallenge challenge) { challenge = null; object obj = null; if (dict.TryGetValue(key, out obj) && obj != null) { Dictionary dictionary = (Dictionary)obj; challenge = ChallengeParser.FromJsonDict(dictionary); if (challenge != null) { return true; } } return false; } // Token: 0x06015AF2 RID: 88818 RVA: 0x006058D0 File Offset: 0x00603AD0 public static List GetChallengeSet(string key, Dictionary jsonDict) { if (jsonDict.ContainsKey(key)) { List> list = OFPFHHLNHIC.NGILNLCIOJM>(key, jsonDict); return new List(from _ in list.Select(new Func, IChallenge>(ChallengeParser.FromJsonDict)) where _ != null select _); } return new List(); } // Token: 0x06015AF3 RID: 88819 RVA: 0x00605944 File Offset: 0x00603B44 public static T GetOptionalKey(string key, Dictionary jsonDict, T defaultValue = default(T)) { if (jsonDict.ContainsKey(key)) { try { return OFPFHHLNHIC.KOFIKGFMMKD(key, jsonDict); } catch { Debug.LogError("Badly formatted data for optional key:" + key); return defaultValue; } return defaultValue; } return defaultValue; } } }