Exemplo n.º 1
0
    private void UpdateList()
    {
        List <SoldierConfig> list        = new List <SoldierConfig>();
        List <SoldierConfig> notHaveList = new List <SoldierConfig>();

        foreach (var item in SoldierConfigLoader.Data)
        {
            int level = CityManager.Instance.GetSoldierLevel(item.Value.SoldierId);
            if (level > 0)
            {
                list.Add(item.Value);
            }
            else
            {
                notHaveList.Add(item.Value);
            }
        }

        // 设置数据源
        _listView.MaxCount          = SoldierConfigLoader.Data.Count;
        _listView.OnListItemAtIndex = (index) =>
        {
            if (index < list.Count)
            {
                SoldierConfig cfg = list[index];
                if (cfg.SoldierId == _currentInfo.SoldierConfigID)
                {
                    // 当前兵营就是此兵种
                    SoldierInfoNotHaveWidget go = _listView.CreateListItemWidget <SoldierInfoNotHaveWidget>(1);
                    go.SetInfo(cfg.SoldierId, true);
                    return(go);
                }
                else
                {
                    // 只能选择已解锁的兵种
                    SoldierInfoHaveWidget go = _listView.CreateListItemWidget <SoldierInfoHaveWidget>(0);
                    // 士兵信息和兵营信息
                    go.SetInfo(cfg.SoldierId, _currentInfo);
                    return(go);
                }
            }
            else
            {
                SoldierConfig            cfg = notHaveList[index - list.Count];
                SoldierInfoNotHaveWidget go  = _listView.CreateListItemWidget <SoldierInfoNotHaveWidget>(1);
                go.SetInfo(cfg.SoldierId, false);
                return(go);
            }
        };

        // 进行刷新
        _listView.Refresh();
    }
Exemplo n.º 2
0
    private void UpdateList()
    {
        List <SoldierConfig> list = new List <SoldierConfig>();

        foreach (var item in SoldierConfigLoader.Data)
        {
            list.Add(item.Value);
        }

        TrainBuildingInfo tbinfo = CityManager.Instance.GetBuildingByType(CityBuildingType.TRAIN) as TrainBuildingInfo;

        if (tbinfo == null)
        {
            return;                 // 尚未解锁校场
        }
        // 设置数据源
        _listView.MaxCount          = SoldierConfigLoader.Data.Count;
        _listView.OnListItemAtIndex = (index) => {
            SoldierConfig cfg   = list[index];
            int           level = CityManager.Instance.GetSoldierLevel(cfg.SoldierId);
            if (level <= 0)
            {
                // 未解锁兵种
                SoldierTrainNotHaveWidget go = _listView.CreateListItemWidget <SoldierTrainNotHaveWidget>(1);
                go.SetInfo(cfg.SoldierId);
                return(go);
            }
            else
            {
                SoldierLevelConfig cfgLevel = SoldierLevelConfigLoader.GetConfig(cfg.SoldierId, level, false);
                if (cfgLevel == null || tbinfo.IsInBuilding() || // 校场正在升级
                    cfgLevel.UpgradeMilitaryLevelDemand > tbinfo.Level || // 不能升级,校场等级不足
                    (tbinfo.IsTrainingSoldier() && tbinfo.TrainSoldierCfgID == cfg.SoldierId))
                {
                    // 不能升级或者正在升级
                    SoldierTrainNotHaveWidget go = _listView.CreateListItemWidget <SoldierTrainNotHaveWidget>(1);
                    go.SetInfo(cfg.SoldierId);
                    return(go);
                }
                else
                {
                    // 已解锁
                    SoldierTrainHaveWidget go = _listView.CreateListItemWidget <SoldierTrainHaveWidget>(0);
                    go.SetInfo(cfg.SoldierId);
                    return(go);
                }
            }
        };

        // 进行刷新
        _listView.Refresh();
    }
Exemplo n.º 3
0
    public override void OnRefreshWindow()
    {
        foreach (var item in UserManager.Instance.HeroList)
        {
            ItemType type = (ItemType)_itemInfo.Cfg.Type;
            if (type == ItemType.DECORATION || type == ItemType.BOOK ||
                type == (ItemType)item.Cfg.WeaponType || type == (ItemType)item.Cfg.ArmourType)
            {
                if (_itemInfo.Cfg.Level <= item.Level)
                {
                    _heroList.Add(item);
                }
            }
        }

        _listView.MaxCount          = _heroList.Count;
        _listView.OnClickListItem   = OnClickWidget;
        _listView.OnListItemAtIndex = (index) =>
        {
            var widget = _listView.CreateListItemWidget <HeroEquipWidget>(0);
            widget.SetInfo(_heroList[index], _itemInfo);
            return(widget);
        };
        _listView.Refresh();
    }
Exemplo n.º 4
0
    public override void OnRefreshWindow()
    {
        _listHero.Clear();

        List <HeroInfo> list = new List <HeroInfo>();

        foreach (var item in UserManager.Instance.HeroList)
        {
            if (UserManager.Instance.IsHeroInPVEFormation(item.ConfigID))
            {
                _listHero.Add(item);
            }
            else
            {
                list.Add(item);
            }
        }

        UserManager.Instance.SortHeroList(list);
        _listHero.AddRange(list);

        _listView.MaxCount = _listHero.Count;

        _listView.OnClickListItem   = OnClickListItem;
        _listView.OnListItemAtIndex = (index) =>
        {
            FormationHeroItemWidget go = _listView.CreateListItemWidget <FormationHeroItemWidget>(0);
            go.SetHeroInfo(_listHero[index]);
            return(go);
        };
        _listView.Refresh();
    }
Exemplo n.º 5
0
    public void UpdateList()
    {
        _heroList.Clear();
        List <int> heroNotHaveList = new List <int>();

        foreach (var item in HeroConfigLoader.Data)
        {
            if (!UserManager.Instance.HaveHero(item.Key) && (_currentType == 0 || _currentType == item.Value.AttackType))
            {
                heroNotHaveList.Add(item.Key);
            }
        }

        // 排序后的英雄列表
        foreach (var item in UserManager.Instance.HeroList)
        {
            if (_currentType == 0 || _currentType == item.Cfg.AttackType)
            {
                _heroList.Add(item.ConfigID);
            }
        }

        _listView.MaxCount          = _heroList.Count + heroNotHaveList.Count;
        _listView.OnClickListItem   = OnClickItem;
        _listView.OnListItemAtIndex = (index) =>
        {
            if (index >= _heroList.Count)
            {
                NewHeroListHeroNotHave widget = _listView.CreateListItemWidget <NewHeroListHeroNotHave>(1);
                widget.SetInfo(heroNotHaveList[index - _heroList.Count]);
                return(widget);
            }
            else
            {
                NewHeroListHeroHave widget = _listView.CreateListItemWidget <NewHeroListHeroHave>(0);
                widget.SetInfo(UserManager.Instance.GetHeroInfoByUnitID(_heroList[index]));
                return(widget);
            }
        };
        _listView.Refresh();
    }
Exemplo n.º 6
0
 private void UpdateList()
 {
     _listView.Data = UserManager.Instance.HeroList.ToArray();
     _listView.OnListItemAtIndex = (index) =>
     {
         PVESelectHeroWidget go = _listView.CreateListItemWidget <PVESelectHeroWidget>(0);
         go.OnClickItem += OnClickItem;
         go.SetInfo(UserManager.Instance.HeroList[index]);
         return(go);
     };
     _listView.Refresh();
 }
Exemplo n.º 7
0
    private void UpdateList(ShowPage page)
    {
        _currentShowPage = page;
        UpdateTab();

        _list = new List <ItemInfo>();
        foreach (var item in UserManager.Instance.ItemList)
        {
            if (page == ShowPage.ALL ||
                (page == ShowPage.EQUIP && item.IsEquip()) ||
                (page == ShowPage.ITEM && item.Cfg.Enable > 0) ||
                (page == ShowPage.STONE && item.Cfg.Type == (int)ItemType.SOUL_PIECE))
            {
                _list.Add(item);
            }
        }

        if (page == ShowPage.ALL)
        {
            SortListByTime(_list);
        }
        else
        {
            SortListByQuality(_list);
        }

        _listWidget.Clear();
        _listView.MaxCount          = _list.Count;
        _listView.OnClickListItem   = OnClickItemIcon;
        _listView.OnListItemAtIndex = (index) =>
        {
            BagItemWidget item = _listView.CreateListItemWidget <BagItemWidget>(0);
            item.SetInfo(_list[index]);
            _listWidget.Add(item);
            return(item);
        };
        _listView.Refresh();

        SelectFirstItem();
    }
Exemplo n.º 8
0
    private void UpdateList()
    {
        if (_equipType == ItemType.NONE)
        {
            _listLevel.gameObject.SetActive(false);
            return;
        }

        _listLevel.gameObject.SetActive(true);

        if (_equipType == ItemType.BOOK)
        {
            // 兵法
            List <BingfaConfig> list = new List <BingfaConfig>();
            foreach (var item in BingfaConfigLoader.Data)
            {
                if (item.Value.Type == (int)_equipType)
                {
                    list.Add(item.Value);
                }
            }

            _listLevel.MaxCount = list.Count;

            _listLevel.OnListItemAtIndex = (index) =>
            {
                SmithyLevelWidget widget = _listLevel.CreateListItemWidget <SmithyLevelWidget>(0);
                widget.OnClickCallback = OnClickLevel;
                widget.SetInfo(list[index], _smithyLevel < list[index].BuildingLevelDemand);
                return(widget);
            };

            _listLevel.Refresh();
        }
        else
        {
            // 装备
            List <EquipmentConfig> list = new List <EquipmentConfig>();
            foreach (var item in EquipmentConfigLoader.Data)
            {
                if (item.Value.Type == (int)_equipType)
                {
                    list.Add(item.Value);
                }
            }

            _listLevel.MaxCount = list.Count;

            _listLevel.OnListItemAtIndex = (index) =>
            {
                SmithyLevelWidget widget = _listLevel.CreateListItemWidget <SmithyLevelWidget>(0);
                widget.OnClickCallback = OnClickLevel;
                widget.SetInfo(list[index], _smithyLevel < list[index].BuildingLevelDemand);
                return(widget);
            };

            _listLevel.Refresh();
        }

        SelectLevelByIndex(0);
    }