scripts
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user