Example #1
0
    //默认信息更新
    public void UpdateAllInfo(string type, int districtID, int buildingID, byte columns)
    {
        if (columns == 2)
        {
            goRt.sizeDelta   = new Vector2(185f + 154f, 520f);
            listRt.sizeDelta = new Vector2(174f + 154f, 438f);
        }
        else if (columns == 1)
        {
            goRt.sizeDelta   = new Vector2(185f, 520f);
            listRt.sizeDelta = new Vector2(174f, 438f);
        }
        List <HeroObject> temp = new List <HeroObject> {
        };
        GameObject go;

        switch (type)
        {
        case "":
            foreach (KeyValuePair <int, HeroObject> kvp in gc.heroDic)
            {
                if (kvp.Value.force == 0)
                {
                    if (districtID != -1)
                    {
                        if (gc.districtDic[districtID].heroList.Contains(kvp.Key))
                        {
                            temp.Add(kvp.Value);
                        }
                    }
                    else
                    {
                        temp.Add(kvp.Value);
                    }
                }
            }
            numText.text = temp.Count + "人";
            for (int i = 0; i < temp.Count; i++)
            {
                if (i < heroGoPool.Count)
                {
                    go = heroGoPool[i];
                    heroGoPool[i].transform.GetComponent <RectTransform>().localScale = Vector2.one;
                }
                else
                {
                    go = Instantiate(Resources.Load("Prefab/UILabel/Label_HeroInDis")) as GameObject;
                    go.transform.SetParent(heroListGo.transform);
                    heroGoPool.Add(go);
                }
                int row = i == 0 ? 0 : (i % columns);
                int col = i == 0 ? 0 : (i / columns);
                go.GetComponent <RectTransform>().anchoredPosition = new Vector3(4f + row * 154f, -4 + col * -36f, 0f);

                go.transform.GetChild(0).GetComponent <Image>().sprite = Resources.Load <Sprite>("Image/RolePic/" + temp[i].pic + "/Pic");

                go.transform.GetChild(1).GetComponent <Text>().text      = temp[i].name;
                go.transform.GetChild(2).GetComponent <Text>().text      = "Lv." + temp[i].level + " <color=#" + DataManager.mHeroDict[temp[i].prototypeID].Color + ">" + DataManager.mHeroDict[temp[i].prototypeID].Name + "</color>";
                go.transform.GetComponent <InteractiveLabel>().labelType = LabelType.HeroInSelectToCheck;
                go.transform.GetComponent <InteractiveLabel>().index     = temp[i].id;

                int oid = temp[i].id;
                go.GetComponent <Button>().onClick.RemoveAllListeners();
                go.GetComponent <Button>().onClick.AddListener(delegate()
                {
                    nowSelectedHeroID = oid;
                    UpdateDesInfo();
                    HeroPanel.Instance.nowSelectedHeroID = oid;
                    HeroPanel.Instance.OnShow(gc.heroDic[oid], HeroPanel.Instance.nowEquipState, (int)(GetComponent <RectTransform>().anchoredPosition.x + GetComponent <RectTransform>().sizeDelta.x + GameControl.spacing), (int)(GetComponent <RectTransform>().anchoredPosition.y));
                });
            }
            for (int i = temp.Count; i < heroGoPool.Count; i++)
            {
                heroGoPool[i].transform.GetComponent <RectTransform>().localScale = Vector2.zero;
            }

            heroListGo.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(157f, Mathf.Max(413f, 4 + (temp.Count / columns) * 36f));
            doBtn.GetComponent <RectTransform>().localScale = Vector2.zero;
            break;

        case "指派管理者":
            foreach (KeyValuePair <int, HeroObject> kvp in gc.heroDic)
            {
                if (gc.districtDic[districtID].heroList.Contains(kvp.Key) && kvp.Value.workerInBuilding == -1 && kvp.Value.force == 0)
                {
                    temp.Add(kvp.Value);
                }
            }
            numText.text = temp.Count + "人";
            for (int i = 0; i < temp.Count; i++)
            {
                if (i < heroGoPool.Count)
                {
                    go = heroGoPool[i];
                    heroGoPool[i].transform.GetComponent <RectTransform>().localScale = Vector2.one;
                }
                else
                {
                    go = Instantiate(Resources.Load("Prefab/UILabel/Label_HeroInDis")) as GameObject;
                    go.transform.SetParent(heroListGo.transform);
                    heroGoPool.Add(go);
                }
                int row = i == 0 ? 0 : (i % columns);
                int col = i == 0 ? 0 : (i / columns);
                go.GetComponent <RectTransform>().anchoredPosition = new Vector3(4f + row * 154f, -4 + col * -36f, 0f);

                go.transform.GetChild(0).GetComponent <Image>().sprite = Resources.Load <Sprite>("Image/RolePic/" + temp[i].pic + "/Pic");

                go.transform.GetChild(1).GetComponent <Text>().text      = temp[i].name;
                go.transform.GetChild(2).GetComponent <Text>().text      = temp[i].workerInBuilding == -1 ? "<color=#00FF00>空闲</color>" : "<color=#7B68EE>" + gc.buildingDic[temp[i].workerInBuilding].name + "工作中</color>";
                go.transform.GetComponent <InteractiveLabel>().labelType = LabelType.HeroInSelect;
                go.transform.GetComponent <InteractiveLabel>().index     = temp[i].id;
                int oid = temp[i].id;
                go.GetComponent <Button>().onClick.RemoveAllListeners();
                go.GetComponent <Button>().onClick.AddListener(delegate()
                {
                    nowSelectedHeroID = oid;
                    UpdateDesInfo();
                });
            }
            for (int i = temp.Count; i < heroGoPool.Count; i++)
            {
                heroGoPool[i].transform.GetComponent <RectTransform>().localScale = Vector2.zero;
            }

            heroListGo.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(157f, Mathf.Max(413f, 4 + (temp.Count / columns) * 36f));
            doBtn.GetComponent <RectTransform>().localScale = Vector2.one;
            doBtn.onClick.RemoveAllListeners();
            doBtn.onClick.AddListener(delegate() {
                gc.BuildingManagerAdd(buildingID, nowSelectedHeroID);
                OnHide();
            });

            break;
        }
    }