コード例 #1
0
ファイル: QuestMenu.cs プロジェクト: pratikxman/Sengoku2d
    public void OnClick()
    {
        AudioSource sound = GameObject.Find("SEController").GetComponent <AudioSource>();

        sound.PlayOneShot(sound.clip);

        if (!clicked)
        {
            clicked = true;

            //color
            Color pushedTabColor  = new Color(118f / 255f, 103f / 255f, 16f / 255f, 255f / 255f);
            Color pushedTextColor = new Color(219f / 255f, 219f / 255f, 212f / 255f, 255f / 255f);
            Color normalTabColor  = new Color(255f / 255f, 255f / 255f, 255f / 255f, 255f / 255f);
            Color normalTextColor = new Color(255f / 255f, 255f / 255f, 0f / 255f, 255f / 255f);

            GetComponent <Image>().color = pushedTabColor;
            transform.FindChild("Text").GetComponent <Text>().color = pushedTextColor;
            otherObj.GetComponent <Image>().color = normalTabColor;
            otherObj.transform.FindChild("Text").GetComponent <Text>().color = normalTextColor;
            otherObj.GetComponent <QuestMenu>().clicked = false;

            //delete previous one
            GameObject content = scrollObj.transform.FindChild("Content").gameObject;
            foreach (Transform chld in content.transform)
            {
                Destroy(chld.gameObject);
            }

            //create count slot
            string activeCountSlotPath           = "Prefabs/Map/quest/ActiveQuestCountSlot";
            Entity_quest_count_mst questCountMst = Resources.Load("Data/quest_count_mst") as Entity_quest_count_mst;
            for (int j = 0; j < activeCountList.Count; j++)
            {
                int id = activeCountList[j];

                GameObject slot = Instantiate(Resources.Load(activeCountSlotPath)) as GameObject;
                slot.transform.SetParent(content.transform);
                slot.transform.localScale = new Vector2(1, 1);
                string title = "";
                if (Application.systemLanguage != SystemLanguage.Japanese)
                {
                    title = questCountMst.param[id].titleEng;
                }
                else
                {
                    title = questCountMst.param[id].title;
                }
                string exp = "";
                if (Application.systemLanguage != SystemLanguage.Japanese)
                {
                    exp = questCountMst.param[id].expEng;
                }
                else
                {
                    exp = questCountMst.param[id].exp;
                }
                string target      = questCountMst.param[id].target;
                int    amnt        = questCountMst.param[id].amnt;
                bool   daily       = questCountMst.param[id].daily;
                string criteriaTyp = questCountMst.param[id].criteriaTyp;
                int    criteria    = questCountMst.param[id].criteria;

                string key = "";
                if (daily)
                {
                    key = "questDailyCountReceivedFlg" + id.ToString();
                }
                else
                {
                    key = "questSpecialCountReceivedFlg" + id.ToString();
                }

                int count = 0;
                if (criteriaTyp == "movieCount")
                {
                    count = PlayerPrefs.GetInt("movieCount");
                }
                else if (criteriaTyp == "zukanBusyoHstCount")
                {
                    string        zukanBusyoHst     = PlayerPrefs.GetString("zukanBusyoHst");
                    List <string> zukanBusyoHstList = new List <string>();
                    char[]        delimiterChars    = { ',' };
                    if (zukanBusyoHst != null && zukanBusyoHst != "")
                    {
                        if (zukanBusyoHst.Contains(","))
                        {
                            zukanBusyoHstList = new List <string>(zukanBusyoHst.Split(delimiterChars));
                        }
                        else
                        {
                            zukanBusyoHstList.Add(zukanBusyoHst);
                        }
                    }
                    count = zukanBusyoHstList.Count;
                }
                else if (criteriaTyp == "gameClearDaimyoCount")
                {
                    string        gameClearDaimyo     = PlayerPrefs.GetString("gameClearDaimyo");
                    List <string> gameClearDaimyoList = new List <string>();
                    char[]        delimiterChars      = { ',' };
                    if (gameClearDaimyo != null && gameClearDaimyo != "")
                    {
                        if (gameClearDaimyo.Contains(","))
                        {
                            gameClearDaimyoList = new List <string>(gameClearDaimyo.Split(delimiterChars));
                        }
                        else
                        {
                            gameClearDaimyoList.Add(gameClearDaimyo);
                        }
                    }

                    string        gameClearDaimyoHard     = PlayerPrefs.GetString("gameClearDaimyoHard");
                    List <string> gameClearDaimyoHardList = new List <string>();
                    if (gameClearDaimyoHard != null && gameClearDaimyoHard != "")
                    {
                        if (gameClearDaimyoHard.Contains(","))
                        {
                            gameClearDaimyoHardList = new List <string>(gameClearDaimyoHard.Split(delimiterChars));
                        }
                        else
                        {
                            gameClearDaimyoHardList.Add(gameClearDaimyoHard);
                        }
                    }
                    count = gameClearDaimyoList.Count + gameClearDaimyoHardList.Count;
                }

                GameObject itemImage  = slot.transform.FindChild("itemImage").gameObject;
                GameObject itemQty    = slot.transform.FindChild("itemQty").gameObject;
                GameObject titleValue = slot.transform.FindChild("titleValue").gameObject;
                GameObject expValue   = slot.transform.FindChild("expValue").gameObject;

                if (target == "busyoDama")
                {
                    string imagePath = "Prefabs/Common/Sprite/busyoDama";
                    itemImage.GetComponent <Image>().sprite =
                        Resources.Load(imagePath, typeof(Sprite)) as Sprite;
                }
                else
                {
                    string imagePath = "Prefabs/Common/Sprite/money";
                    itemImage.GetComponent <Image>().sprite =
                        Resources.Load(imagePath, typeof(Sprite)) as Sprite;
                }

                itemQty.GetComponent <Text>().text    = amnt.ToString();
                titleValue.GetComponent <Text>().text = title;
                expValue.GetComponent <Text>().text   = exp;

                slot.transform.FindChild("ReceiveButton").transform.FindChild("count").GetComponent <Text>().text = count.ToString() + "/" + criteria.ToString();
                QuestReceive btnScript = slot.transform.FindChild("ReceiveButton").GetComponent <QuestReceive>();
                btnScript.criteria = criteria;
                btnScript.count    = count;
                btnScript.id       = id;
                btnScript.key      = key;
                btnScript.target   = target;
                btnScript.amnt     = amnt;
                btnScript.slot     = slot;
            }


            //create slot
            QuestInfo questScript    = new QuestInfo();
            string    activeSlotPath = "Prefabs/Map/quest/ActiveQuestSlot";
            for (int j = 0; j < activeList.Count; j++)
            {
                int        id   = activeList[j];
                GameObject slot = Instantiate(Resources.Load(activeSlotPath)) as GameObject;
                slot.transform.SetParent(content.transform);
                slot.transform.localScale = new Vector2(1, 1);

                string title  = questScript.getQuestTitle(id);
                string exp    = questScript.getQuestExp(id);
                string target = questScript.getQuestTarget(id);
                int    amnt   = questScript.getQuestAmnt(id);
                bool   daily  = questScript.getQuestDaily(id);
                string key    = "";
                if (daily)
                {
                    key = "questDailyReceivedFlg" + id.ToString();
                }
                else
                {
                    key = "questSpecialReceivedFlg" + id.ToString();
                }

                GameObject itemImage  = slot.transform.FindChild("itemImage").gameObject;
                GameObject itemQty    = slot.transform.FindChild("itemQty").gameObject;
                GameObject titleValue = slot.transform.FindChild("titleValue").gameObject;
                GameObject expValue   = slot.transform.FindChild("expValue").gameObject;

                if (target == "busyoDama")
                {
                    string imagePath = "Prefabs/Common/Sprite/busyoDama";
                    itemImage.GetComponent <Image>().sprite =
                        Resources.Load(imagePath, typeof(Sprite)) as Sprite;
                }
                else
                {
                    string imagePath = "Prefabs/Common/Sprite/money";
                    itemImage.GetComponent <Image>().sprite =
                        Resources.Load(imagePath, typeof(Sprite)) as Sprite;
                }

                itemQty.GetComponent <Text>().text    = amnt.ToString();
                titleValue.GetComponent <Text>().text = title;
                expValue.GetComponent <Text>().text   = exp;

                QuestReceive btnScript = slot.transform.FindChild("ReceiveButton").GetComponent <QuestReceive>();
                btnScript.id     = id;
                btnScript.key    = key;
                btnScript.target = target;
                btnScript.amnt   = amnt;
                btnScript.slot   = slot;
            }

            //Show Inactive QuestSlot
            string inactiveSlotPath = "Prefabs/Map/quest/InactiveQuestSlot";
            for (int k = 0; k < inactiveList.Count; k++)
            {
                int id = inactiveList[k];

                GameObject slot = Instantiate(Resources.Load(inactiveSlotPath)) as GameObject;
                slot.transform.SetParent(content.transform);
                slot.transform.localScale = new Vector2(1, 1);

                string title  = questScript.getQuestTitle(id);
                string exp    = questScript.getQuestExp(id);
                string target = questScript.getQuestTarget(id);
                int    amnt   = questScript.getQuestAmnt(id);

                GameObject itemImage  = slot.transform.FindChild("itemImage").gameObject;
                GameObject itemQty    = slot.transform.FindChild("itemQty").gameObject;
                GameObject titleValue = slot.transform.FindChild("titleValue").gameObject;
                GameObject expValue   = slot.transform.FindChild("expValue").gameObject;

                if (target == "busyoDama")
                {
                    string imagePath = "Prefabs/Common/Sprite/busyoDama";
                    itemImage.GetComponent <Image>().sprite =
                        Resources.Load(imagePath, typeof(Sprite)) as Sprite;
                }
                else
                {
                    string imagePath = "Prefabs/Common/Sprite/money";
                    itemImage.GetComponent <Image>().sprite =
                        Resources.Load(imagePath, typeof(Sprite)) as Sprite;
                }

                itemQty.GetComponent <Text>().text    = amnt.ToString();
                titleValue.GetComponent <Text>().text = title;
                expValue.GetComponent <Text>().text   = exp;
            }

            //Scroll Position
            ScrollRect scrollRect = scrollObj.GetComponent <ScrollRect>();
            scrollRect.verticalNormalizedPosition = 1;
        }
    }