Пример #1
0
    public void createAward_Items()
    {
        //Json_GameInfo에서 StageAwards에서
        //숫자 (stage 이름)을 읽어오는 칸이 하나 필요하고
        //거기서 아이템을 읽어온다.

        stageID = int.Parse(createAward_Items_stageID_Text.text);

        AwardDB_Item        toAddAwardDB = new AwardDB_Item();
        List <AwardDB_Item> AwardDB      = new List <AwardDB_Item>();
        string jsonData;

        try
        {
            jsonData = File.ReadAllText(Application.dataPath + "/Resources/Json_GameInfo/StageAwards/" + stageID + "/AwardDB_Item.json");
            AwardDB  = JsonConvert.DeserializeObject <List <AwardDB_Item> >(jsonData);
        }
        catch (System.Exception)
        {
            print("errrrrrrrrrrrrror");
        }

        string toAdd = "";

        toAdd = createAward_Items_toAdd_Text.text;
        toAddAwardDB.itemTotalID = toAdd;

        AwardDB.Add(toAddAwardDB);

        string jdata = JsonConvert.SerializeObject(AwardDB);

        jdata = JValue.Parse(jdata).ToString(Formatting.Indented);
        File.WriteAllText(Application.dataPath + "/Resources/Json_GameInfo/StageAwards/" + stageID + "/AwardDB_Item.json", jdata);
        AssetDatabase.Refresh();
    }
Пример #2
0
    public void randomizeAward_Item(int stageID, GameObject award_)
    {
        AwardDB_Item        toAddAwardDB = new AwardDB_Item();
        List <AwardDB_Item> AwardDB      = new List <AwardDB_Item>();

        JsonEquippableItem        toAddItem     = new JsonEquippableItem();
        List <JsonEquippableItem> JsonItemsList = new List <JsonEquippableItem>();
        string jsonData;

        try
        {
            jsonData = File.ReadAllText(Application.dataPath + "/Resources/Json_GameInfo/StageAwards/" + stageID + "/AwardDB_Item.json");
            AwardDB  = JsonConvert.DeserializeObject <List <AwardDB_Item> >(jsonData);
        }
        catch (System.Exception)
        {
            print("errrrrrrrrrrrrror");
        }

        //AwardDB는 총 뽑을 수 있는 놈.
        int selectedIndex = Random.Range(0, AwardDB.Count);

        string[] split_itemTotalID_toString = AwardDB[selectedIndex].itemTotalID.Split('_');
        // X_X_X_X니까 이 Array의 Length는 4가 될 것임.
        int[] split_itemTotalID = new int[4];
        for (int i = 0; i < split_itemTotalID_toString.Length; i++)
        {//int로 바꿔주자.
            split_itemTotalID[i] = int.Parse(split_itemTotalID_toString[i]);
        }
        // itemType rarity itemUniqueID itemPrefabID
        // 0-Helmet 1-Chest 2-Gloves    3-Boots 4-Weapon    5-Potion    6-Accessory

        int AccountID = GameObject.Find("PassStageInfoBetweenScenes_dontDestroy").GetComponent <passDataBetweenScene>().AccountID;

        jsonData      = File.ReadAllText(Application.dataPath + "/Resources/Json_AccountInfo/" + AccountID.ToString() + "/ItemsInfo.json");
        JsonItemsList = JsonConvert.DeserializeObject <List <JsonEquippableItem> >(jsonData);

        toAddItem.itemID = AwardDB[selectedIndex].itemTotalID;

        //아이템 이름 정하기
        string name_rare = "";

        switch (split_itemTotalID[1])
        {
        case 0:   name_rare = "낡은 ";   break;

        case 1:   name_rare = "허름한 ";   break;

        case 2:   name_rare = "보통의 ";   break;

        case 3:   name_rare = "준수한 ";   break;

        case 4:   name_rare = "명품의 ";   break;

        case 5:   name_rare = "희귀한 ";   break;

        case 6:   name_rare = "전설의 ";   break;

        default:    break;
        }

        string name_type = "";
        string forPrefab = "";

        switch (split_itemTotalID[0])
        {
        case 0:
            forPrefab = "Helmet";
            switch (split_itemTotalID[2])
            {
            case 0:   name_type = "철 헬멧";   break;

            case 1:   name_type = "천 모자";   break;

            case 2:   name_type = "가죽 모자 ";   break;

            default:    break;
            }
            break;

        case 1:
            forPrefab = "Chest";
            switch (split_itemTotalID[2])
            {
            case 0:   name_type = "철 갑옷";   break;

            case 1:   name_type = "셔츠";   break;

            case 2:   name_type = "가죽 자켓";   break;

            default:    break;
            }
            break;

        case 2:
            forPrefab = "Glove";
            switch (split_itemTotalID[2])
            {
            case 0:   name_type = "철 글러브";   break;

            case 1:   name_type = "가죽 장갑";   break;

            case 2:   name_type = "털장갑 ";   break;

            default:    break;
            }
            break;

        case 3:
            forPrefab = "Boots";
            switch (split_itemTotalID[2])
            {
            case 0:   name_type = "짚신";   break;

            case 1:   name_type = "쪼리";   break;

            case 2:   name_type = "부츠 ";   break;

            default:    break;
            }
            break;

        case 4:
            forPrefab = "Weapon";
            switch (split_itemTotalID[2])
            {
            case 0:   name_type = "원드";   break;

            case 1:   name_type = "무기2";   break;

            case 2:   name_type = "무기3 ";   break;

            default:    break;
            }
            break;

        case 5:
            forPrefab = "Potion";
            switch (split_itemTotalID[2])
            {
            case 0:   name_type = "체력 포션";   break;

            case 1:   name_type = "공격력 포션";   break;

            case 2:   name_type = "방어력 포션 ";   break;

            default:    break;
            }
            break;

        case 6:
            forPrefab = "Accessory";
            switch (split_itemTotalID[2])
            {
            case 0:   name_type = "진주 목걸이";   break;

            case 1:   name_type = "진주 팔찌";   break;

            case 2:   name_type = "진주 귀걸이 ";   break;

            default:    break;
            }
            break;

        default:    break;
        }
        toAddItem.itemName            = name_rare + name_type;
        toAddItem.healthAdd           = Mathf.RoundToInt(split_itemTotalID[1] * 10 * Random.Range(2.99f, 9.99f));
        toAddItem.healthMulti         = Mathf.RoundToInt(split_itemTotalID[1] * 5 * Random.Range(1.00f, 4.00f));
        toAddItem.damageAdd           = Mathf.RoundToInt(split_itemTotalID[1] * 3 * Random.Range(1.00f, 4.00f));
        toAddItem.damageMulti         = Mathf.RoundToInt(split_itemTotalID[1] * 2 * Random.Range(1.00f, 4.00f));
        toAddItem.weaponRange         = Mathf.RoundToInt(split_itemTotalID[1] * 1 * Random.Range(1.00f, 4.00f));
        toAddItem.speedAdd            = Mathf.RoundToInt(split_itemTotalID[1] * 5 * Random.Range(1.00f, 4.00f));
        toAddItem.speedMulti          = Mathf.RoundToInt(split_itemTotalID[1] * 1 * Random.Range(1.00f, 4.00f));
        toAddItem.defenseAdd          = Mathf.RoundToInt(split_itemTotalID[1] * 5 * Random.Range(1.00f, 4.00f));
        toAddItem.defenseMulti        = Mathf.RoundToInt(split_itemTotalID[1] * 5 * Random.Range(1.00f, 4.00f));
        toAddItem.criticalDamageAdd   = Mathf.RoundToInt(split_itemTotalID[1] * 2 * Random.Range(1.00f, 4.00f));
        toAddItem.criticalDamageMulti = Mathf.RoundToInt(split_itemTotalID[1] * 5 * Random.Range(1.00f, 4.00f));
        toAddItem.criticalRateAdd     = Mathf.RoundToInt(split_itemTotalID[1] * 1 * Random.Range(1.00f, 4.00f));
        toAddItem.criticalRateMulti   = Mathf.RoundToInt(split_itemTotalID[1] * 1 * Random.Range(1.00f, 4.00f));
        toAddItem.itemEquipped        = false;
        toAddItem.charID            = -1;
        toAddItem.itemID_forAccount = JsonItemsList.Count;

        JsonItemsList.Add(toAddItem);

        string jdata = JsonConvert.SerializeObject(JsonItemsList);

        jdata = JValue.Parse(jdata).ToString(Formatting.Indented);
        File.WriteAllText(Application.dataPath + "/Resources/Json_AccountInfo/" + AccountID.ToString() + "/ItemsInfo.json", jdata); //ID 추가해주기

        //그리고 itemPrefab에 매치되는 그림을 가져와주자.

        award_.transform.GetChild(0).GetComponent <Image>().sprite = Resources.Load <Sprite>("ItemDB/" + forPrefab + "/" + split_itemTotalID[2].ToString());
        award_.transform.GetChild(1).GetComponent <Text>().text    = toAddItem.itemName;
    }