Esempio n. 1
0
 public CJSONValue this[int Index]
 {
     get
     {
         CJSONValue result = null;
         mValues.TryGetValue(Index.ToString(), out result);
         return(result);
     }
 }
Esempio n. 2
0
    private SParseResult _ParseObject()
    {
        if (_nextTokenType == EToken.OPEN_OBJECT)
        {
            _ReadNextToken();
            CJSONValue value = new CJSONValue();
            value.mType = CJSONValue.EValueType.OBJECT;

            while (_nextTokenType == EToken.STRING)
            {
                string key = _nextTokenLexeme;
                _ReadNextToken();

                if (_nextTokenType != EToken.ASSIGNMENT)
                {
                    return(new SParseResult(EParseResult.FAILED));
                }

                _ReadNextToken();

                SParseResult result = _ParseValue();
                if (result.mResult != EParseResult.SUCCESS)
                {
                    return(new SParseResult(EParseResult.FAILED));
                }

                value.mValues[key] = result.mValue;

                if (_nextTokenType == EToken.LIST_SEPARATOR)
                {
                    _ReadNextToken();

                    if (_nextTokenType != EToken.STRING)
                    {
                        return(new SParseResult(EParseResult.FAILED));
                    }
                }
                else
                {
                    break;
                }
            }

            if (_nextTokenType != EToken.CLOSE_OBJECT)
            {
                return(new SParseResult(EParseResult.FAILED));
            }

            _ReadNextToken();

            return(new SParseResult(value));
        }

        return(new SParseResult(EParseResult.NONE));
    }
Esempio n. 3
0
    public float GetFloat(string Path, float Default = 0.0f)
    {
        CJSONValue value = _ResolvePath(Path);

        if (value == null || value.mType != EValueType.NUMBER)
        {
            return(Default);
        }

        return((float)value.mNumber);
    }
Esempio n. 4
0
    private SParseResult _ParseArray()
    {
        if (_nextTokenType == EToken.OPEN_ARRAY)
        {
            _ReadNextToken();
            CJSONValue value = new CJSONValue();
            value.mType = CJSONValue.EValueType.ARRAY;

            bool requiredValue = false;
            while (true)
            {
                SParseResult result = _ParseValue();
                if (result.mResult == EParseResult.FAILED)
                {
                    return(result);
                }

                if (requiredValue && result.mResult != EParseResult.SUCCESS)
                {
                    return(new SParseResult(EParseResult.FAILED));
                }

                if (result.mResult == EParseResult.SUCCESS)
                {
                    value.mValues[value.mValues.Count.ToString()] = result.mValue;

                    if (_nextTokenType == EToken.LIST_SEPARATOR)
                    {
                        _ReadNextToken();
                        requiredValue = true;
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    break;
                }
            }

            if (_nextTokenType != EToken.CLOSE_ARRAY)
            {
                return(new SParseResult(EParseResult.FAILED));
            }

            _ReadNextToken();

            return(new SParseResult(value));
        }

        return(new SParseResult(EParseResult.NONE));
    }
Esempio n. 5
0
    public int GetInt(string Path, int Default = 0)
    {
        CJSONValue value = _ResolvePath(Path);

        if (value == null || value.mType != EValueType.NUMBER)
        {
            return(Default);
        }

        return((int)value.mNumber);
    }
Esempio n. 6
0
    public bool GetBool(string Path, bool Default = false)
    {
        CJSONValue value = _ResolvePath(Path);

        if (value == null || value.mType != EValueType.BOOL)
        {
            return(Default);
        }

        return(value.mBool);
    }
Esempio n. 7
0
    public string GetString(string Path, string Default = "")
    {
        CJSONValue value = _ResolvePath(Path);

        if (value == null || value.mType != EValueType.STRING)
        {
            return(Default);
        }

        return(value.mString);
    }
Esempio n. 8
0
    private void _ShowMainMenu()
    {
        // Create main menu stuff
        CToolkitUI ui = CGame.ToolkitUI;

        CJSONParser json       = new CJSONParser();
        CJSONValue  levelArray = json.Parse(CGame.DataDirectory + "campaign.txt");

        GameObject button;

        if (levelArray != null)
        {
            int levelCount = 0;

            for (int i = 0; i < levelArray.GetCount(); ++i)
            {
                CJSONValue level = levelArray[i];

                string levelName = level.GetString("name", "unknown");
                string assetName = level.GetString("asset", "unknown");
                bool   playable  = level.GetBool("playable");
                bool   visible   = level.GetBool("visible");

                if (visible)
                {
                    button = ui.CreateMenuButton(_base, levelName + " (" + assetName + ".pwa)", () =>
                    {
                        CGame.UIManager.PlaySound(CGame.PrimaryResources.AudioClips[15]);
                        _PlayLevel(assetName);
                    }, 1, playable);
                    ui.SetTransform(button, 50, -100 - (levelCount++ *30), 512, 50);
                }
            }
        }

        /*
         * button = CreateButton(_base, "Sample (cutscene)", null);
         * ui.SetTransform(button, 50, -150, 256, 50);
         */

        /*
         * button = CreateButton(_base, "Multiplayer", null);
         * ui.SetTransform(button, 50, -200, 256, 50);
         *
         * button = CreateButton(_base, "Options", null);
         * ui.SetTransform(button, 50, -250, 256, 50);
         */

        button = ui.CreateMenuButton(_base, "Quit", _Exit);
        ui.SetTransform(button, 50, -30, 256, 50);
    }
Esempio n. 9
0
    private CJSONValue _ResolvePath(string Path)
    {
        CJSONValue next = this;
        string     path = Path;

        if (Path == "")
        {
            return(this);
        }

        while (true)
        {
            int delim = path.IndexOf('.');
            if (delim != -1)
            {
                string name = path.Substring(0, delim);

                if (path.Length <= delim + 1)
                {
                    next = null;
                    break;
                }

                path = path.Substring(delim + 1, Path.Length - (delim + 1));

                if (!next.mValues.TryGetValue(name, out next))
                {
                    next = null;
                    break;
                }
            }
            else if (delim == 0)
            {
                next = null;
                break;
            }
            else
            {
                if (!next.mValues.TryGetValue(path, out next))
                {
                    next = null;
                }

                break;
            }
        }

        return(next);
    }
Esempio n. 10
0
    private SParseResult _ParseValue()
    {
        if (_nextTokenType == EToken.STRING)
        {
            CJSONValue value = new CJSONValue(_nextTokenLexeme);
            _ReadNextToken();
            return(new SParseResult(value));
        }
        else if (_nextTokenType == EToken.NUMBER)
        {
            CJSONValue value = new CJSONValue(_nextTokenNumber);
            _ReadNextToken();
            return(new SParseResult(value));
        }
        else if (_nextTokenType == EToken.TRUE)
        {
            CJSONValue value = new CJSONValue(true);
            _ReadNextToken();
            return(new SParseResult(value));
        }
        else if (_nextTokenType == EToken.FALSE)
        {
            CJSONValue value = new CJSONValue(false);
            _ReadNextToken();
            return(new SParseResult(value));
        }
        else if (_nextTokenType == EToken.NULL)
        {
            CJSONValue value = new CJSONValue();
            _ReadNextToken();
            return(new SParseResult(value));
        }
        else
        {
            SParseResult result = _ParseObject();
            if (result.mResult != EParseResult.NONE)
            {
                return(result);
            }

            result = _ParseArray();
            if (result.mResult != EParseResult.NONE)
            {
                return(result);
            }
        }

        return(new SParseResult(EParseResult.NONE));
    }
Esempio n. 11
0
    private void _PrintValue(CJSONValue Value, int Indent)
    {
        if (Value.mType == CJSONValue.EValueType.NULL)
        {
            Debug.Log(_GetIndents(Indent) + "Null");
        }
        else if (Value.mType == CJSONValue.EValueType.STRING)
        {
            Debug.Log(_GetIndents(Indent) + "String: " + Value.mString);
        }
        else if (Value.mType == CJSONValue.EValueType.NUMBER)
        {
            Debug.Log(_GetIndents(Indent) + "Number: " + Value.mNumber);
        }
        else if (Value.mType == CJSONValue.EValueType.BOOL)
        {
            Debug.Log(_GetIndents(Indent) + "Bool: " + Value.mBool);
        }
        else if (Value.mType == CJSONValue.EValueType.OBJECT)
        {
            Debug.Log(_GetIndents(Indent) + "Object:");

            foreach (KeyValuePair <string, CJSONValue> pair in Value.mValues)
            {
                Debug.Log(_GetIndents(Indent + 1) + "Key: " + pair.Key);
                _PrintValue(pair.Value, Indent + 1);
            }
        }
        else if (Value.mType == CJSONValue.EValueType.ARRAY)
        {
            Debug.Log(_GetIndents(Indent) + "Array:");

            foreach (KeyValuePair <string, CJSONValue> pair in Value.mValues)
            {
                Debug.Log(_GetIndents(Indent + 1) + "Key: " + pair.Key);
                _PrintValue(pair.Value, Indent + 1);
            }
        }
    }
Esempio n. 12
0
    public CUnitRules()
    {
        mTiers = new List <CTierInfo>();
        CJSONParser tiers      = new CJSONParser();
        CJSONValue  tiersArray = tiers.Parse(CGame.DataDirectory + "rules.txt");

        if (tiersArray == null)
        {
            Debug.LogError("Can't load rules");
            return;
        }

        for (int i = 0; i < tiersArray.GetCount(); ++i)
        {
            CJSONValue t = tiersArray[i];

            CTierInfo tier = new CTierInfo();
            tier.mTitle     = t.GetString("title", "unknown");
            tier.mTierIndex = i;
            tier.mMaxLevel  = t.GetInt("max_level");
            tier.mSalary.Set(t["salary"]);
            tier.mIntelligence.Set(t["intelligence"]);
            tier.mMaxStamina.Set(t["max_stamina"]);
            tier.mMaxSpeed.Set(t["max_speed"]);
            tier.mHungerRate.Set(t["hunger_rate"]);
            tier.mMaxHunger.Set(t["max_hunger"]);
            tier.mPaperCapacity.Set(t["paper_capacity"]);
            tier.mAttackDamage.Set(t["attack_damage"]);
            tier.mDefense.Set(t["defense"]);
            tier.mIdleTime.Set(t["idle_time"]);
            tier.mWorkStaminaRate.Set(t["work_stamina_rate"]);
            tier.mRequiredXP.Set(t["required_xp"]);
            tier.mPromotionDemand.Set(t["promotion_demand"]);
            mTiers.Add(tier);
        }
    }
Esempio n. 13
0
 public SParseResult(CJSONValue Value)
 {
     mResult = EParseResult.SUCCESS;
     mValue  = Value;
 }
Esempio n. 14
0
 public SParseResult(EParseResult Result)
 {
     mResult = Result;
     mValue  = null;
 }
Esempio n. 15
0
 public void Set(CJSONValue Data)
 {
     mBase     = Data.GetFloat("base");
     mIncrease = Data.GetFloat("inc");
 }