private void ImportWarehouseInventoryData(GstuSpreadSheet sheet)
    {
        foreach (var warehouseUUID in sheet.columns["UUID"])
        {
            if (warehouseUUID.value != "UUID")
            {
                //Assign the position
                string[] parsedPosValue = sheet[warehouseUUID.value, "Position"].value.Split(',', ')', '(');

                string x = parsedPosValue[1];
                string y = parsedPosValue[2];

                Vector2 pos = new Vector2(float.Parse(x),
                                          float.Parse(y));

                WarehouseObject newObj = Instantiate(blankWarehouseObjectPrefab, pos, Quaternion.identity).GetComponent <WarehouseObject>();

                //Assign the UUID
                newObj.UUID = warehouseUUID.value;

                string[] parsedTransformValue = sheet[warehouseUUID.value, "Box Dim"].value.Split(',', ')', '(');

                newObj.objTransform.localScale = new Vector2(float.Parse(parsedTransformValue[1]),
                                                             float.Parse(parsedTransformValue[2]));

                //Add to the objects in warehouse dictionary
                objectsInWarehouse.Add(warehouseUUID.value, newObj);
            }
        }
    }
Example #2
0
 void OnReceive(GstuSpreadSheet ss)
 {
     foreach (var pair in ss.Cells)
     {
         Debug.Log(pair.Key + " : " + pair.Value.value);
     }
 }
Example #3
0
    void UpdateEverything(GstuSpreadSheet ss)
    {
        //First number is the row second is the column

        List <List <string> > data = rawData.values;

        //Towers
        numberOfWaves = int.Parse(rawData.values[waveSpot - 1][0]);

        for (int i = 0; i < towers.Length; i++)
        {
            SetDataForTower(i);
        }


        for (int i = 0; i < enemies.Length; i++)
        {
            SetDataForEnemy(i);
        }

        waveHandler.GetComponent <Waves>().wavesVar        = new WaveHandler[numberOfWaves];
        currentWaveHandler.GetComponent <Waves>().wavesVar = new WaveHandler[numberOfWaves];
        for (int i = 0; i < numberOfWaves; i++)
        {
            waveHandler.GetComponent <Waves>().wavesVar[i] = new WaveHandler();
        }
        currentWaveHandler.GetComponent <Waves>().wavesVar = waveHandler.GetComponent <Waves>().wavesVar;
        for (int i = 1; i <= numberOfWaves; i++)
        {
            SetDataForWave(i);
        }

        SetMoneyForWaves();
    }
    private void LoadWarehouseInfo(GstuSpreadSheet sheet)
    {
        warehouseYDim = float.Parse(sheet["B2"].value);
        warehouseXDim = float.Parse(sheet["A2"].value);

        CreateWarehouseBounds();
    }
Example #5
0
 private void SetData(GstuSpreadSheet sheet, List <ProductionBuildingConfig> configs, int startRow)
 {
     for (int row = startRow, i = 0; i < configs.Count; i++, row++)
     {
         SetParameters(configs[i], sheet.rows[row]);
     }
 }
Example #6
0
    void UpdatePlayer(GstuSpreadSheet ss)
    {
        float value;

        PlayerStats["HP"]    = float.TryParse(ss["A4"].value, out value) == true ? value : 0.0f;
        PlayerStats["Speed"] = float.TryParse(ss["B4"].value, out value) == true ? value : 0.0f;
    }
Example #7
0
    void UpdateTower2(GstuSpreadSheet ss)
    {
        float value;

        TowerStats["PlayerHeal"] = float.TryParse(ss["A28"].value, out value) == true ? value : 0.0f;
        TowerStats["TrashCost"]  = float.TryParse(ss["B28"].value, out value) == true ? value : 0.0f;
    }
Example #8
0
 internal void UpdateStats(GstuSpreadSheet ss)
 {
     items.Clear();
     health  = int.Parse(ss[name, "Health"].value);
     attack  = int.Parse(ss[name, "Attack"].value);
     defence = int.Parse(ss[name, "Defence"].value);
     items.Add(ss[name, "Items"].value.ToString());
 }
    private void CreateWarehouseInfo(GstuSpreadSheet sheet)
    {
        SpreadsheetManager.Write(new GSTU_Search(associatedSheet, warehouseInfoWorksheet,
                                                 "A2"), new ValueRange(warehouseXDim.ToString()), null);

        SpreadsheetManager.Write(new GSTU_Search(associatedSheet, warehouseInfoWorksheet,
                                                 "B2"), new ValueRange(warehouseYDim.ToString()), null);
    }
 void ReadSheetCallback(GstuSpreadSheet sheet)
 {
     if (sheet != null)
     {
         Debug.Log($"Total Row Count: {sheet.rows.primaryDictionary.Count}");
         ExportData(sheet, (currentIndex + 1) * (100 / (float)localizedConfig.SheetNames.Count), OnCompleteRead);
     }
 }
Example #11
0
    void UpdateBarricades(GstuSpreadSheet ss)
    {
        float value;

        BarriacdeStats["Health"]       = float.TryParse(ss["A20"].value, out value) == true ? value : 0.0f;
        BarriacdeStats["TrashCost"]    = float.TryParse(ss["B20"].value, out value) == true ? value : 0.0f;
        BarriacdeStats["CooldownTime"] = float.TryParse(ss["C20"].value, out value) == true ? value : 0.0f;
    }
Example #12
0
    void UpdateTrashCans(GstuSpreadSheet ss)
    {
        float value;

        TrashCanStats["AmountCollected"] = float.TryParse(ss["A24"].value, out value) == true ? value : 0.0f;
        //TrashCanStats["TrashLimit"] = float.TryParse(ss["B18"].value, out value) == true ? value : 0.0f;
        TrashCanStats["Cooldown"] = float.TryParse(ss["B24"].value, out value) == true ? value : 0.0f;
    }
Example #13
0
 public Job(GstuSpreadSheet ss, string key)
 {
     name        = ss[key, "이름"].value;
     description = ss[key, "설명"].value;
     int.TryParse(ss[key, "의지"].value, out will);
     int.TryParse(ss[key, "지식"].value, out knowledge);
     int.TryParse(ss[key, "힘"].value, out strength);
     int.TryParse(ss[key, "민첩"].value, out agility);
     int.TryParse(ss[key, "체력"].value, out helth);
 }
Example #14
0
    void UpdateEnemies(GstuSpreadSheet ss)
    {
        float value;

        EnemyStats["Rats"]               = new Dictionary <string, float>();
        EnemyStats["Rats"]["HP"]         = float.TryParse(ss["Rats", "HP"].value, out value) == true ? value : 0.0f;
        EnemyStats["Rats"]["Speed"]      = float.TryParse(ss["Rats", "Speed"].value, out value) == true ? value : 0.0f;
        EnemyStats["Rats"]["Steal"]      = float.TryParse(ss["Rats", "Steal Amount"].value, out value) == true ? value : 0.0f;
        EnemyStats["Rats"]["Damage"]     = float.TryParse(ss["Rats", "Damage"].value, out value) == true ? value : 0.0f;
        EnemyStats["Rats"]["CoolDown"]   = float.TryParse(ss["Rats", "Cool downs"].value, out value) == true ? value : 0.0f;
        EnemyStats["Rats"]["Range"]      = float.TryParse(ss["Rats", "Range"].value, out value) == true ? value : 0.0f;
        EnemyStats["Rats"]["Power lvl"]  = float.TryParse(ss["Rats", "Power lvl"].value, out value) == true ? value : 0.0f;
        EnemyStats["Rats"]["w/ Ability"] = float.TryParse(ss["Rats", "w/ Ability"].value, out value) == true ? value : 0.0f;

        EnemyStats["Crows"]               = new Dictionary <string, float>();
        EnemyStats["Crows"]["HP"]         = float.TryParse(ss["Crows", "HP"].value, out value) == true ? value : 0.0f;
        EnemyStats["Crows"]["Speed"]      = float.TryParse(ss["Crows", "Speed"].value, out value) == true ? value : 0.0f;
        EnemyStats["Crows"]["Steal"]      = float.TryParse(ss["Crows", "Steal Amount"].value, out value) == true ? value : 0.0f;
        EnemyStats["Crows"]["Damage"]     = float.TryParse(ss["Crows", "Damage"].value, out value) == true ? value : 0.0f;
        EnemyStats["Crows"]["CoolDown"]   = float.TryParse(ss["Crows", "Cool downs"].value, out value) == true ? value : 0.0f;
        EnemyStats["Crows"]["Range"]      = float.TryParse(ss["Crows", "Range"].value, out value) == true ? value : 0.0f;
        EnemyStats["Crows"]["Power lvl"]  = float.TryParse(ss["Crows", "Power lvl"].value, out value) == true ? value : 0.0f;
        EnemyStats["Crows"]["w/ Ability"] = float.TryParse(ss["Crows", "w/ Ability"].value, out value) == true ? value : 0.0f;

        EnemyStats["Opossums"]               = new Dictionary <string, float>();
        EnemyStats["Opossums"]["HP"]         = float.TryParse(ss["Opossums", "HP"].value, out value) == true ? value : 0.0f;
        EnemyStats["Opossums"]["Speed"]      = float.TryParse(ss["Opossums", "Speed"].value, out value) == true ? value : 0.0f;
        EnemyStats["Opossums"]["Steal"]      = float.TryParse(ss["Opossums", "Steal Amount"].value, out value) == true ? value : 0.0f;
        EnemyStats["Opossums"]["Damage"]     = float.TryParse(ss["Opossums", "Damage"].value, out value) == true ? value : 0.0f;
        EnemyStats["Opossums"]["CoolDown"]   = float.TryParse(ss["Opossums", "Cool downs"].value, out value) == true ? value : 0.0f;
        EnemyStats["Opossums"]["Range"]      = float.TryParse(ss["Opossums", "Range"].value, out value) == true ? value : 0.0f;
        EnemyStats["Opossums"]["Power lvl"]  = float.TryParse(ss["Opossums", "Power lvl"].value, out value) == true ? value : 0.0f;
        EnemyStats["Opossums"]["w/ Ability"] = float.TryParse(ss["Opossums", "w/ Ability"].value, out value) == true ? value : 0.0f;

        EnemyStats["Skunks"]               = new Dictionary <string, float>();
        EnemyStats["Skunks"]["HP"]         = float.TryParse(ss["Skunks", "HP"].value, out value) == true ? value : 0.0f;
        EnemyStats["Skunks"]["Speed"]      = float.TryParse(ss["Skunks", "Speed"].value, out value) == true ? value : 0.0f;
        EnemyStats["Skunks"]["Steal"]      = float.TryParse(ss["Skunks", "Steal Amount"].value, out value) == true ? value : 0.0f;
        EnemyStats["Skunks"]["Damage"]     = float.TryParse(ss["Skunks", "Damage"].value, out value) == true ? value : 0.0f;
        EnemyStats["Skunks"]["CoolDown"]   = float.TryParse(ss["Skunks", "Cool downs"].value, out value) == true ? value : 0.0f;
        EnemyStats["Skunks"]["Range"]      = float.TryParse(ss["Skunks", "Range"].value, out value) == true ? value : 0.0f;
        EnemyStats["Skunks"]["Power lvl"]  = float.TryParse(ss["Skunks", "Power lvl"].value, out value) == true ? value : 0.0f;
        EnemyStats["Skunks"]["w/ Ability"] = float.TryParse(ss["Skunks", "w/ Ability"].value, out value) == true ? value : 0.0f;

        EnemyStats["BigRaccoon"]               = new Dictionary <string, float>();
        EnemyStats["BigRaccoon"]["HP"]         = float.TryParse(ss["BigRaccoon", "HP"].value, out value) == true ? value : 0.0f;
        EnemyStats["BigRaccoon"]["Speed"]      = float.TryParse(ss["BigRaccoon", "Speed"].value, out value) == true ? value : 0.0f;
        EnemyStats["BigRaccoon"]["Steal"]      = float.TryParse(ss["BigRaccoon", "Steal Amount"].value, out value) == true ? value : 0.0f;
        EnemyStats["BigRaccoon"]["Damage"]     = float.TryParse(ss["BigRaccoon", "Damage"].value, out value) == true ? value : 0.0f;
        EnemyStats["BigRaccoon"]["CoolDown"]   = float.TryParse(ss["BigRaccoon", "Cool downs"].value, out value) == true ? value : 0.0f;
        EnemyStats["BigRaccoon"]["Range"]      = float.TryParse(ss["BigRaccoon", "Range"].value, out value) == true ? value : 0.0f;
        EnemyStats["BigRaccoon"]["Power lvl"]  = float.TryParse(ss["BigRaccoon", "Power lvl"].value, out value) == true ? value : 0.0f;
        EnemyStats["BigRaccoon"]["w/ Ability"] = float.TryParse(ss["BigRaccoon", "w/ Ability"].value, out value) == true ? value : 0.0f;
    }
    private void UpdateInvidualObjectBoxDim(GstuSpreadSheet sheet)
    {
        BatchRequestBody updateRequest = new BatchRequestBody();

        //Update the obj's scale in scene
        objToUpdate.objTransform.localScale = new Vector2(float.Parse(boxXDimInput.text), float.Parse(boxYDimInput.text));

        updateRequest.Add(sheet[objToUpdate.UUID, "Box Dim"].AddCellToBatchUpdate(associatedSheet, warehouseItemsWorksheet,
                                                                                  objToUpdate.objTransform.localScale.ToString()));

        updateRequest.Send(associatedSheet, warehouseItemsWorksheet, null);
    }
    void UpdateAllAnimals(GstuSpreadSheet ss)
    {
        foreach (Animal animal in container.allAnimals)
        {
            animal.UpdateStats(ss);
        }

        foreach (AnimalObject animalObject in animalObjects)
        {
            animalObject.BuildAnimalInfo();
        }
    }
Example #17
0
    internal void UpdateStats(GstuSpreadSheet ss, bool mergedCells)
    {
        items.Clear();
        health  = int.Parse(ss[name, "Health"].value);
        attack  = int.Parse(ss[name, "Attack"].value);
        defence = int.Parse(ss[name, "Defence"].value);

        //I know that my items column may contain multiple values so we run a for loop to ensure they are all added
        foreach (var value in ss[name, "Items", true])
        {
            items.Add(value.value.ToString());
        }
    }
Example #18
0
    void OnReceiveJob(GstuSpreadSheet ss)
    {
        Jobs.Clear();

        var rows = ss.columns["A"];

        rows.RemoveAt(0);

        foreach (var p in rows)
        {
            Jobs.Add(new Job(ss, p.value));
        }
    }
    private void UpdateIndvidualObjectUUID(GstuSpreadSheet sheet)
    {
        BatchRequestBody updateRequest = new BatchRequestBody();

        updateRequest.Add(sheet[objToUpdate.UUID, "UUID"].AddCellToBatchUpdate(associatedSheet, warehouseItemsWorksheet,
                                                                               itemKeyInput.text));

        objectsInWarehouse.Remove(objToUpdate.UUID);
        objectsInWarehouse.Add(itemKeyInput.text, objToUpdate);

        objToUpdate.UUID = itemKeyInput.text;

        updateRequest.Send(associatedSheet, warehouseItemsWorksheet, null);
    }
    private void UpdateWarehouseData(GstuSpreadSheet sheet)
    {
        BatchRequestBody updateRequest = new BatchRequestBody();

        foreach (KeyValuePair <string, WarehouseObject> pair in objectsInWarehouse)
        {
            //Add the updated data to the bach request
            updateRequest.Add(sheet[pair.Key, "Position"].AddCellToBatchUpdate(associatedSheet,
                                                                               associatedWorksheet, pair.Value.objTransform.position.ToString()));
        }

        //Send the request
        updateRequest.Send(associatedSheet, associatedWorksheet, null);
    }
        internal void onSheetRead(GstuSpreadSheet sheet, bool generateInstances)
        {
            List <ColumnExporter> exporters = ReadExporters(sheet);

            string sheetName = GSTUSheetUtils.GetSheetName(sheet);

            GenerateClasses(sheetName, exporters);

            if (generateInstances)
            {
                GenerateInstances(sheet, sheetName, exporters);
            }

            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
        }
Example #22
0
 void ReadSheetCallback(GstuSpreadSheet sheet)
 {
     EditorUtility.ClearProgressBar();
     process = 0;
     if (sheet != null)
     {
         Debug.Log($"Total Row Count: {sheet.rows.primaryDictionary.Count}");
         if (isBuildText)
         {
             BuildText(sheet, OnCompleteRead);
         }
         else
         {
             ExportData(sheet, OnCompleteRead);
         }
     }
 }
        private void GenerateInstances(GstuSpreadSheet sheet,
                                       string spreadsheetName,
                                       List <ColumnExporter> exporters)
        {
            List <GSTU_Cell> keys            = GSTUSheetUtils.GetSheetRowKeys(sheet);
            string           instancesFolder = folderPath + "/" + spreadsheetName + "/";

            FileUtils.GenerateFoldersForPath(instancesFolder);

            string           className         = GetAggregateClassName(spreadsheetName);
            Type             aggregateType     = AmoaebaUtils.ReflectionHelpers.GetTypeFromName("" + outputNamespace + "." + className);
            ScriptableObject aggregateInstance = ScriptableObject.CreateInstance(aggregateType);

            className = GetEntryClassName(spreadsheetName);
            Type classType = AmoaebaUtils.ReflectionHelpers.GetTypeFromName("" + outputNamespace + "." + className);
            Type arrayType = classType.MakeArrayType();

            Array instances = Array.CreateInstance(arrayType.GetElementType(), keys.Count);

            for (int i = 0; i < keys.Count; i++)
            {
                GSTU_Cell        key      = keys[i];
                ScriptableObject instance = ScriptableObject.CreateInstance(classType);
                instances.SetValue(instance, i);

                foreach (ColumnExporter exporter in exporters)
                {
                    GSTU_Cell entry       = sheet[key.value, exporter.sheetName];
                    FieldInfo columnField = classType.GetField(exporter.Name,
                                                               BindingFlags.Public
                                                               | BindingFlags.Instance);
                    columnField.SetValue(instance, exporter.ParseTypeForValue(entry.value));
                }

                AssetDatabase.CreateAsset(instance, instancesFolder + key.value + ".asset");
            }
            AssetDatabase.CreateAsset(aggregateInstance, instancesFolder + spreadsheetName + "Entries.asset");

            MethodInfo aggregateMethod = aggregateType.GetMethod(AGGREGATE_CLASS_FILL_METHOD,
                                                                 BindingFlags.NonPublic |
                                                                 BindingFlags.Instance);

            object[] arguments = { instances };
            aggregateMethod.Invoke(aggregateInstance, arguments);
        }
        private List <ColumnExporter> ReadExporters(GstuSpreadSheet sheet)
        {
            List <GSTU_Cell>      columnNames = GSTUSheetUtils.ColumnNamesRow(sheet);
            List <GSTU_Cell>      columnTypes = GSTUSheetUtils.TypesRow(sheet);
            List <ColumnExporter> retVal      = new List <ColumnExporter>();

            int max = Mathf.Min(columnNames.Count, columnTypes.Count);

            for (int i = 0; i < max; i++)
            {
                ColumnExporter exporter;
                exporter.sheetName = columnNames[i].value;
                exporter.Type      = StringToParseType(columnTypes[i].value);
                retVal.Add(exporter);
            }

            return(retVal);
        }
Example #25
0
    void OnReceiveScenario(GstuSpreadSheet ss)
    {
        Scenarios.Clear();

        var rows = ss.columns["A"];

        rows.RemoveAt(0);

        foreach (var p in rows)
        {
            Scenario scenario = new Scenario();
            scenario.name        = ss[p.value, "이름"].value;
            scenario.placeName   = ss[p.value, "시작 장소"].value;
            scenario.description = ss[p.value, "내용"].value;
            Scenarios.Add(scenario);
            Debug.Log(scenario.ToShow());
        }
    }
Example #26
0
    private void UpdateAnimalInformation(GstuSpreadSheet ss)
    {
        BatchRequestBody updateRequest = new BatchRequestBody();

        updateRequest.Add(ss[animal.name, "Health"].AddCellToBatchUpdate(animal.associatedSheet, animal.associatedWorksheet, animal.health.ToString()));
        updateRequest.Add(ss[animal.name, "Defence"].AddCellToBatchUpdate(animal.associatedSheet, animal.associatedWorksheet, animal.health.ToString()));
        updateRequest.Add(ss[animal.name, "Attack"].AddCellToBatchUpdate(animal.associatedSheet, animal.associatedWorksheet, animal.health.ToString()));
        updateRequest.Send(animal.associatedSheet, animal.associatedWorksheet, null);
        ///Although this does work if requires that the list is set up in the correct order to write the data correctly, the above solution provides a more robust solution as the cells
        /// already know what to update.

        /*string cellRef = ss[animal.name, "Name"].CellRef(); //get the cell ref where the animal start, i know this because name is my first field for the data
         * List<string> list = new List<string>();
         * list.Add(animal.name);
         * list.Add(animal.health.ToString());
         * list.Add(animal.attack.ToString());
         * list.Add(animal.defence.ToString());
         * SpreadsheetManager.Write(new GSTU_Search(animal.associatedSheet, animal.associatedWorksheet, cellRef), list, null);*/
    }
    void OnSheetLoaded(GstuSpreadSheet ss)
    {
        datas = new VisibleData();

        for (int i = 1; i < ss.columns["A"].Count; i++)
        {
            int id = int.Parse(ss.rows[i + 1][0].value);
            datas.Add(id, new Data());
            for (int j = 0; j < ss.rows[i + 1].Count; j++)
            {
                //Debug.Log("ss.rows[i]: " + ss.rows[i + 1][j].value);
                datas[id].UpdateStats(ss.rows[i + 1]);
            }
        }

#if UNITY_EDITOR
        EditorUtility.SetDirty(this);
#endif
        onGoogleSynced?.Invoke();
    }
    private void UpdateWarehouseData(GstuSpreadSheet sheet)
    {
        //Begin wiping old data--------------------------------------------------------------------------------------------------
        BatchRequestBody updateRequest = new BatchRequestBody();

        foreach (var warehouseUUID in sheet.columns["UUID"])
        {
            if (warehouseUUID.value != "UUID")
            {
                updateRequest.Add(sheet[warehouseUUID.value, "Box Dim"].AddCellToBatchUpdate(associatedSheet, warehouseItemsWorksheet,
                                                                                             ""));
                updateRequest.Add(sheet[warehouseUUID.value, "Position"].AddCellToBatchUpdate(associatedSheet, warehouseItemsWorksheet,
                                                                                              ""));
                updateRequest.Add(sheet[warehouseUUID.value, "UUID"].AddCellToBatchUpdate(associatedSheet, warehouseItemsWorksheet,
                                                                                          ""));
            }
        }

        updateRequest.Send(associatedSheet, warehouseItemsWorksheet, null);
        //End wiping old data-------------------------------------------------------------------------------------------------------

        //Begin importing new data--------------------------------------------------------------------------------------------------
        List <List <string> > warehouseObjectImportList = new List <List <string> >();

        foreach (KeyValuePair <string, WarehouseObject> pair in objectsInWarehouse)
        {
            List <string> temp = new List <string>()
            {
                pair.Value.UUID,
                pair.Value.objTransform.localScale.ToString(),
                pair.Value.objTransform.position.ToString()
            };

            warehouseObjectImportList.Add(temp);
        }

        SpreadsheetManager.Write(new GSTU_Search(associatedSheet,
                                                 warehouseItemsWorksheet, "A2"), new ValueRange(warehouseObjectImportList), null);
        //End importing new data----------------------------------------------------------------------------------------------------
    }
Example #29
0
    public void Bado(GstuSpreadSheet spreadSheetRef)
    {
        StringBuilder str = new StringBuilder();

        foreach (var row in spreadSheetRef.rows.primaryDictionary)
        {
            foreach (var cell in row.Value)
            {
                str.Append(cell.value + "|");
            }


            str.Remove(str.Length - 1, 1);
            str.Append("\n");
        }

        str.Remove(str.Length - 1, 1);
        infoData = str.ToString();

        listData = new List <string>(infoData.Split(new char[] { '\n' }));

        listData.RemoveAt(0);
    }
Example #30
0
    void UpdatePlayerAbilities(GstuSpreadSheet ss)
    {
        float value;

        PlayerAbilties["Attack"]             = new Dictionary <string, float>();
        PlayerAbilties["Attack"]["Damage"]   = float.TryParse(ss["Basic Attack", "Damage"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Attack"]["Cooldown"] = float.TryParse(ss["Basic Attack", "Cooldown"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Attack"]["Range"]    = float.TryParse(ss["Basic Attack", "Range"].value, out value) == true ? value : 0.0f;

        PlayerAbilties["Poison"]             = new Dictionary <string, float>();
        PlayerAbilties["Poison"]["Damage"]   = float.TryParse(ss["Fleas", "Damage"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Poison"]["Cooldown"] = float.TryParse(ss["Fleas", "Cooldown"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Poison"]["Range"]    = float.TryParse(ss["Fleas", "Range"].value.Split(' ')[0], out value) == true ? value : 0.0f;

        PlayerAbilties["Stun"]             = new Dictionary <string, float>();
        PlayerAbilties["Stun"]["Damage"]   = float.TryParse(ss["Stun", "Damage"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Stun"]["Cooldown"] = float.TryParse(ss["Stun", "Cooldown"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Stun"]["Range"]    = float.TryParse(ss["Stun", "Range"].value, out value) == true ? value : 0.0f;

        PlayerAbilties["Ultimate"]             = new Dictionary <string, float>();
        PlayerAbilties["Ultimate"]["Damage"]   = float.TryParse(ss["Ultimate", "Damage"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Ultimate"]["Cooldown"] = float.TryParse(ss["Ultimate", "Cooldown"].value, out value) == true ? value : 0.0f;
        PlayerAbilties["Ultimate"]["Range"]    = float.TryParse(ss["Ultimate", "Range"].value.Split(' ')[0], out value) == true ? value : 0.0f;
    }