Example #1
0
    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();
    }
Example #2
0
    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)
        });
    }