Exemplo n.º 1
0
    //地牢信息浮动块-更新
    public void UpdateDungeonInfoBlock(int id)
    {
        dungeonInfoBlockID = id;

        dungeonInfoBlock_picImage.sprite = Resources.Load("Image/AdventureBG/ABG_" + DataManager.mDungeonDict[id].ScenePic[0] + "_B", typeof(Sprite)) as Sprite;
        dungeonInfoBlock_nameText.text   = DataManager.mDungeonDict[id].Name;
        switch (gc.dungeonList[id].stage)
        {
        case DungeonStage.Close: dungeonInfoBlock_stateText.text = "未开放"; break;

        case DungeonStage.Open: dungeonInfoBlock_stateText.text = "可开拓"; break;

        case DungeonStage.OpenUp: dungeonInfoBlock_stateText.text = "开拓中"; break;

        case DungeonStage.Done: dungeonInfoBlock_stateText.text = "已开拓"; break;
        }
        string str = "";


        for (int j = 0; j < DataManager.mDungeonDict[id].MonsterID.Count; j++)
        {
            str += DataManager.mMonsterDict[DataManager.mDungeonDict[id].MonsterID[j]].Name + " ";
        }

        dungeonInfoBlock_desText.text = "<color=#EFDDB1>地图等级</color> " + DataManager.mDungeonDict[id].Level + "   <color=#EFDDB1>旅程</color> " + (DataManager.mDungeonDict[id].PartNum * 100) + "M\n" + DataManager.mDungeonDict[id].Des + "\n<color=#EFDDB1>出现怪物</color> " + str;
        GameObject go;


        for (byte i = 0; i < gc.dungeonList[id].teamList.Count; i++)
        {
            byte teamID = gc.dungeonList[id].teamList[i];



            if (i < teamGoPool.Count)
            {
                go = teamGoPool[i];
                teamGoPool[i].transform.GetComponent <RectTransform>().localScale = Vector2.one;
            }
            else
            {
                go = Instantiate(Resources.Load("Prefab/UILabel/Label_TeamInDungeonInfo")) as GameObject;
                go.transform.SetParent(dungeonInfoBlock_teamGo.transform);
                teamGoPool.Add(go);
            }
            go.name = (teamID + 1).ToString();
            go.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, i * -59f);

            for (int j = 0; j < gc.adventureTeamList[teamID].heroIDList.Count; j++)
            {
                go.transform.GetChild(1).GetChild(j).GetComponent <RectTransform>().localScale            = Vector2.one;
                go.transform.GetChild(1).GetChild(j).GetComponent <Image>().overrideSprite                = Resources.Load("Image/RolePic/" + gc.heroDic[gc.adventureTeamList[teamID].heroIDList[j]].pic + "/Pic", typeof(Sprite)) as Sprite;
                go.transform.GetChild(1).GetChild(j).GetChild(0).GetComponent <Text>().text               = gc.heroDic[gc.adventureTeamList[teamID].heroIDList[j]].level.ToString();
                go.transform.GetChild(1).GetChild(j).GetChild(1).GetComponent <RectTransform>().sizeDelta = new Vector2((float)gc.adventureTeamList[teamID].heroHpList[j] / gc.GetHeroAttr(Attribute.Hp, gc.adventureTeamList[teamID].heroIDList[j]) * 24f, 4f);
                go.transform.GetChild(1).GetChild(j).GetChild(2).GetComponent <RectTransform>().sizeDelta = new Vector2((float)gc.adventureTeamList[teamID].heroMpList[j] / gc.GetHeroAttr(Attribute.Mp, gc.adventureTeamList[teamID].heroIDList[j]) * 24f, 4f);
            }
            for (int j = gc.adventureTeamList[teamID].heroIDList.Count; j < 3; j++)
            {
                go.transform.GetChild(1).GetChild(j).GetComponent <RectTransform>().localScale = Vector2.zero;
            }
            go.transform.GetChild(2).GetChild(0).GetComponent <Text>().text = (teamID + 1).ToString();

            string strdes = "";
            go.transform.GetChild(4).localScale = Vector2.one;
            go.transform.GetChild(4).GetComponent <Button>().onClick.RemoveAllListeners();
            go.transform.GetChild(4).GetComponent <Button>().onClick.AddListener(delegate()
            {
                AdventureMainPanel.Instance.OnShow(teamID);
            });


            if (gc.adventureTeamList[teamID].state == AdventureState.NotSend)
            {
                strdes = "待命";

                go.transform.GetChild(5).localScale = Vector2.zero;

                go.transform.GetChild(6).localScale = Vector2.zero;

                go.transform.GetChild(7).localScale = Vector2.one;
                go.transform.GetChild(7).GetComponent <Button>().onClick.RemoveAllListeners();
                go.transform.GetChild(7).GetComponent <Button>().onClick.AddListener(delegate()
                {
                    gc.AdventureTeamStart(teamID);
                });
                go.transform.GetChild(8).localScale = Vector2.one;
                go.transform.GetChild(8).GetComponent <Button>().onClick.RemoveAllListeners();
                go.transform.GetChild(8).GetComponent <Button>().onClick.AddListener(delegate()
                {
                    gc.AdventureTeamBack(teamID);
                });
            }
            else if (gc.adventureTeamList[teamID].state == AdventureState.Doing)
            {
                float rate = (float)gc.adventureTeamList[teamID].nowDay / DataManager.mDungeonDict[gc.adventureTeamList[teamID].dungeonID].PartNum;

                go.transform.GetChild(5).localScale = Vector2.one;
                go.transform.GetChild(5).GetComponent <Button>().onClick.RemoveAllListeners();
                go.transform.GetChild(5).GetComponent <Button>().onClick.AddListener(delegate()
                {
                    AdventureTeamPanel.Instance.OnShow(teamID, 76, -104);
                });

                go.transform.GetChild(6).localScale = Vector2.zero;
                go.transform.GetChild(7).localScale = Vector2.zero;
                go.transform.GetChild(8).localScale = Vector2.zero;
                if (gc.adventureTeamList[teamID].action == AdventureAction.Fight)
                {
                    strdes = "探险中[" + (int)(rate * 100) + "%][战斗]";
                }
                else
                {
                    strdes = "探险中[" + (int)(rate * 100) + "%][行进]";
                }

                //Debug.Log("strdes="+ strdes);
            }
            else
            {
                go.transform.GetChild(5).localScale = Vector2.one;
                go.transform.GetChild(5).GetComponent <Button>().onClick.RemoveAllListeners();
                go.transform.GetChild(5).GetComponent <Button>().onClick.AddListener(delegate()
                {
                    AdventureTeamPanel.Instance.OnShow(teamID, 76, -104);
                });

                go.transform.GetChild(6).localScale = Vector2.one;
                go.transform.GetChild(6).GetComponent <Button>().onClick.RemoveAllListeners();
                go.transform.GetChild(6).GetComponent <Button>().onClick.AddListener(delegate()
                {
                    gc.AdventureTakeGets(teamID);
                });

                go.transform.GetChild(7).localScale = Vector2.zero;
                //go.transform.GetChild(7).GetComponent<Button>().onClick.RemoveAllListeners();
                //go.transform.GetChild(7).GetComponent<Button>().onClick.AddListener(delegate ()
                //{

                //    gc.AdventureTeamStart(teamID);
                //});
                go.transform.GetChild(8).localScale = Vector2.zero;
                //go.transform.GetChild(8).GetComponent<Button>().onClick.RemoveAllListeners();
                //go.transform.GetChild(8).GetComponent<Button>().onClick.AddListener(delegate ()
                //{

                //    gc.AdventureTeamBack(teamID);
                //});

                float rate = (float)gc.adventureTeamList[teamID].nowDay / DataManager.mDungeonDict[gc.adventureTeamList[teamID].dungeonID].PartNum;

                if (gc.adventureTeamList[teamID].state == AdventureState.Done)
                {
                    strdes = "结束[" + (int)(rate * 100) + "%]<color=green>[完成]</color>";
                }
                else if (gc.adventureTeamList[teamID].state == AdventureState.Retreat)
                {
                    strdes = "结束[" + (int)(rate * 100) + "%]<color=red>[中止]</color>";
                }
                else if (gc.adventureTeamList[teamID].state == AdventureState.Fail)
                {
                    strdes = "结束[" + (int)(rate * 100) + "%]<color=red>[失败]</color>";
                }
            }

            go.transform.GetChild(3).GetComponent <Text>().text = strdes;
        }

        for (int i = gc.dungeonList[id].teamList.Count; i < teamGoPool.Count; i++)
        {
            teamGoPool[i].transform.GetComponent <RectTransform>().localScale = Vector2.zero;
        }
        dungeonInfoBlockRt.sizeDelta = new Vector2(214f, gc.dungeonList[id].teamList.Count * 59f + 162f);

        dungeonInfoBlock_sendBtn.onClick.RemoveAllListeners();
        dungeonInfoBlock_sendBtn.onClick.AddListener(delegate()
        {
            AdventureSendPanel.Instance.OnShow("From", (short)id);
        });
    }