public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (!(value is string v)) { throw new NullReferenceException(); } if (!v.ToUpperInvariant().Contains("E+")) { return((ScUInt128)UInt128.Parse(v)); } var vd = BigInteger.Parse(v); if (vd >= 0 && vd <= UInt128BigInteger.ToBigInteger(UInt128.MaxValue)) { return((ScUInt128)UInt128BigInteger.FromBigInteger(vd)); } throw new ArgumentOutOfRangeException(); }
public CloudMetadata GetCloudMetadataFromBytes(byte[] byteArr) { var remoteSaveDict = DeserializeSaveData(byteArr); if (remoteSaveDict == null) { return(null); } return(new CloudMetadata { level = GetInt32FromRemoteSaveDict(remoteSaveDict, ACCOUNT_LEVEL_KEY), levelExp = GetInt32FromRemoteSaveDict(remoteSaveDict, ACCOUNT_LEVEL_EXP_KEY), gem = UInt128BigInteger.FromBigInteger(GetBigIntegerFromRemoteSaveDict(remoteSaveDict, ACCOUNT_GEM_KEY)), goldRate = UInt128BigInteger.FromBigInteger(GetBigIntegerFromRemoteSaveDict(remoteSaveDict, ACCOUNT_GOLD_RATE_KEY)), saveDate = GetInt64FromRemoteSaveDict(remoteSaveDict, SAVE_DATE_KEY) }); }