Beispiel #1
0
    public override void _Ready()
    {
        Godot.File databaseFile = new Godot.File();

        if (!databaseFile.FileExists("res://databases/System.json"))
        {
            databaseFile.Open("res://databases/System.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary systemList     = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary statsData      = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary weaponTypeData = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary armorTypeData  = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary elementData    = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary slotsData      = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary skillTypeData  = new Godot.Collections.Dictionary();
            statsData.Add("0", "hp");
            statsData.Add("1", "mp");
            statsData.Add("2", "atk");
            statsData.Add("3", "def");
            statsData.Add("4", "int");
            statsData.Add("5", "res");
            statsData.Add("6", "spd");
            statsData.Add("7", "luk");
            weaponTypeData.Add("0", "Sword");
            weaponTypeData.Add("1", "Spear");
            weaponTypeData.Add("2", "Axe");
            weaponTypeData.Add("3", "Staff");
            armorTypeData.Add("0", "Armor");
            armorTypeData.Add("1", "Robe");
            armorTypeData.Add("2", "Shield");
            armorTypeData.Add("3", "Hat");
            armorTypeData.Add("4", "Accessory");
            elementData.Add("0", "Physical");
            elementData.Add("1", "Fire");
            elementData.Add("2", "Ice");
            elementData.Add("3", "Wind");
            slotsData.Add("w0", "Weapon");
            slotsData.Add("a1", "Head");
            slotsData.Add("a2", "Body");
            slotsData.Add("a3", "Accessory");
            skillTypeData.Add("0", "Skills");
            skillTypeData.Add("1", "Magic");
            systemList.Add("stats", statsData);
            systemList.Add("weapons", weaponTypeData);
            systemList.Add("armors", armorTypeData);
            systemList.Add("elements", elementData);
            systemList.Add("slots", slotsData);
            systemList.Add("skills", skillTypeData);
            databaseFile.StoreLine(JSON.Print(systemList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Character.json"))
        {
            databaseFile.Open("res://databases/Character.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary characterList    = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary characterData    = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary equipTypeData    = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary initialEquipData = new Godot.Collections.Dictionary();
            characterData.Add("faceImage", "");
            characterData.Add("charaImage", "");
            characterData.Add("name", "Kate");
            characterData.Add("class", 0);
            characterData.Add("description", "");
            characterData.Add("initialLevel", 1);
            characterData.Add("maxLevel", 99);
            equipTypeData.Add("w0", 0);
            equipTypeData.Add("w1", 1);
            equipTypeData.Add("a2", 0);
            equipTypeData.Add("a3", 3);
            initialEquipData.Add("0", -1);
            initialEquipData.Add("1", -1);
            initialEquipData.Add("2", -1);
            initialEquipData.Add("3", -1);
            characterData.Add("initial_equip", initialEquipData);
            characterData.Add("equip_types", equipTypeData);
            characterList.Add("chara0", characterData);
            databaseFile.StoreLine(JSON.Print(characterList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Skill.json"))
        {
            databaseFile.Open("res://databases/Skill.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary skillList = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary skillData = new Godot.Collections.Dictionary();
            skillData.Add("name", "Double Attack");
            skillData.Add("icon", "");
            skillData.Add("description", "Attacks an enemy twice");
            skillData.Add("skill_type", 0);
            skillData.Add("mp_cost", 4);
            skillData.Add("tp_cost", 2);
            skillData.Add("target", 1);
            skillData.Add("usable", 1);
            skillData.Add("success", 95);
            skillData.Add("hit_type", 1);
            skillData.Add("damage_type", 1);
            skillData.Add("element", 0);
            skillData.Add("formula", "atk * 4 - def * 2");
            skillList.Add("skill0", skillData);
            databaseFile.StoreLine(JSON.Print(skillList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Class.json"))
        {
            databaseFile.Open("res://databases/Class.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary classList  = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary classData  = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary classStats = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary skillList  = new Godot.Collections.Dictionary();
            classData.Add("name", "Warrior");
            classData.Add("icon", "");
            classData.Add("experience", "level * 30");
            classStats.Add("hp", "level * 25 + 10");
            classStats.Add("mp", "level * 15 + 5");
            classStats.Add("atk", "level * 5 + 3");
            classStats.Add("def", "level * 5 + 3");
            classStats.Add("int", "level * 5 + 3");
            classStats.Add("res", "level * 5 + 3");
            classStats.Add("spd", "level * 5 + 3");
            classStats.Add("luk", "level * 5 + 3");
            skillList.Add(0, 5);
            classData.Add("skill_list", skillList);
            classData.Add("stat_list", classStats);
            classList.Add("class0", classData);
            databaseFile.StoreLine(JSON.Print(classList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Item.json"))
        {
            databaseFile.Open("res://databases/Item.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary itemList = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary itemData = new Godot.Collections.Dictionary();
            itemData.Add("name", "Potion");
            itemData.Add("icon", "");
            itemData.Add("description", "Heals 50HP to one ally");
            itemData.Add("item_type", 0);
            itemData.Add("price", 50);
            itemData.Add("consumable", 0);
            itemData.Add("target", 7);
            itemData.Add("usable", 0);
            itemData.Add("success", 100);
            itemData.Add("hit_type", 0);
            itemData.Add("damage_type", 3);
            itemData.Add("element", 0);
            itemData.Add("formula", "50");
            itemList.Add("item0", itemData);
            databaseFile.StoreLine(JSON.Print(itemList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Weapon.json"))
        {
            databaseFile.Open("res://databases/Weapon.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary weaponList  = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary weaponData  = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary weaponStats = new Godot.Collections.Dictionary();
            weaponData.Add("name", "Broad Sword");
            weaponData.Add("icon", "");
            weaponData.Add("description", "A light and easy to use sword");
            weaponData.Add("weapon_type", 0);
            weaponData.Add("slot_type", 0);
            weaponData.Add("price", 50);
            weaponData.Add("element", 0);
            weaponStats.Add("hp", "0");
            weaponStats.Add("mp", "0");
            weaponStats.Add("atk", "10");
            weaponStats.Add("def", "2");
            weaponStats.Add("int", "2");
            weaponStats.Add("res", "1");
            weaponStats.Add("spd", "0");
            weaponStats.Add("luk", "0");
            weaponData.Add("stat_list", weaponStats);
            weaponList.Add("weapon0", weaponData);
            databaseFile.StoreLine(JSON.Print(weaponList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Armor.json"))
        {
            databaseFile.Open("res://databases/Armor.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary armorList  = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary armorData  = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary armorStats = new Godot.Collections.Dictionary();
            armorData.Add("name", "Clothes");
            armorData.Add("icon", "");
            armorData.Add("description", "Light Clothes");
            armorData.Add("armor_type", 0);
            armorData.Add("slot_type", 0);
            armorData.Add("price", 50);
            armorStats.Add("hp", "0");
            armorStats.Add("mp", "0");
            armorStats.Add("atk", "10");
            armorStats.Add("def", "2");
            armorStats.Add("int", "2");
            armorStats.Add("res", "1");
            armorStats.Add("spd", "0");
            armorStats.Add("luk", "0");
            armorData.Add("stat_list", armorStats);
            armorList.Add("armor0", armorData);
            databaseFile.StoreLine(JSON.Print(armorList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Enemy.json"))
        {
            databaseFile.Open("res://databases/Enemy.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary enemyList = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary enemyData = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary statsData = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary dropData  = new Godot.Collections.Dictionary();
            enemyData.Add("name", "Slime");
            enemyData.Add("graphicImage", "");
            statsData.Add("hp", "150");
            statsData.Add("mp", "50");
            statsData.Add("atk", "18");
            statsData.Add("def", "16");
            statsData.Add("int", "8");
            statsData.Add("res", "4");
            statsData.Add("spd", "12");
            statsData.Add("luk", "10");
            dropData.Add("i0", 80);
            enemyData.Add("experience", 6);
            enemyData.Add("money", 50);
            enemyData.Add("stat_list", statsData);
            enemyData.Add("drop_list", dropData);
            enemyList.Add("enemy0", enemyData);
            databaseFile.StoreLine(JSON.Print(enemyList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/State.json"))
        {
            databaseFile.Open("res://databases/State.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary stateList             = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary stateData             = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary eraseCondition        = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary messages              = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary customEraseConditions = new Godot.Collections.Dictionary();
            stateData.Add("name", "Death");
            stateData.Add("icon", "");
            stateData.Add("restriction", 4);
            stateData.Add("priority", 100);
            eraseCondition.Add("turns_min", 0);
            eraseCondition.Add("turns_max", 0);
            eraseCondition.Add("erase_damage", 0);
            eraseCondition.Add("erase_setps", 0);
            stateData.Add("erase_conditions", eraseCondition);
            messages.Add("0", "Insert a custom message");
            stateData.Add("messages", messages);
            customEraseConditions.Add("0", "Insert a custom formula for erase state");
            stateData.Add("custom_erase_conditions", customEraseConditions);

            stateList.Add("state0", stateData);
            databaseFile.StoreLine(JSON.Print(stateList));
            databaseFile.Close();
        }

        if (!databaseFile.FileExists("res://databases/Effect.json"))
        {
            databaseFile.Open("res://databases/Effect.json", Godot.File.ModeFlags.Write);
            Godot.Collections.Dictionary effectList = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary effectData = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary showList   = new Godot.Collections.Dictionary();
            Godot.Collections.Dictionary value2     = new Godot.Collections.Dictionary();
            effectData.Add("name", "hp_recovery");
            showList.Add("show", false);
            showList.Add("data", "");
            effectData.Add("data_type", showList);
            effectData.Add("value1", 1);
            value2.Add("show", true);
            value2.Add("data", 2);
            effectData.Add("value2", value2);

            effectList.Add("effect0", effectData);
            databaseFile.StoreLine(JSON.Print(effectList));
            databaseFile.Close();
        }

        databaseFile.Close();
        GetNode <Control>("Tabs/Character").Call("Start");
    }