Files
Dec2017-Script-Dump/Assembly-CSharp/RecRoom/Challenges/ChallengeParser.cs
T
2026-06-04 11:42:34 +02:00

118 lines
4.3 KiB
C#

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