Ejemplo n.º 1
0
 /// <summary>
 /// 设置焦点
 /// 已经在OnEnable处理过第一个焦点获取了,此时不需要重设
 /// </summary>
 public override void SetForcus()
 {
     focused = true;
     //如果当前没有选择焦点的选项则设置一个
     if (!focusUIListItem && uiDepostiList)
     {
         focusUIListItem = uiDepostiList.FirstShowItem();
     }
     if (focusUIListItem && uiDepostiList)
     {
         uiDepostiList.ShowItem(focusUIListItem);
         if (focusUIListItem.childImage)
         {
             focusUIListItem.childImage.enabled = true;
         }
         //设置选择了该物体
         PlayGoods playGoods = (PlayGoods)focusUIListItem.value;
         if (SelectGoodsIDAction != null)
         {
             SelectGoodsIDAction(playGoods.ID);
         }
     }
     else//否则就没有选择
     {
         if (SelectGoodsIDAction != null)
         {
             SelectGoodsIDAction(-1);
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 重新设置显示物品的集合
 /// </summary>
 /// <param name="allPlayGoodses"></param>
 protected virtual void ResetItems(List <PlayGoods> allPlayGoodses)
 {
     ItemUIList.Init();
     foreach (PlayGoods playGoods in allPlayGoodses)
     {
         string     showExplan = playGoods.GoodsInfo.GoodsName + "    X" + playGoods.Count;
         UIListItem uiListImte = ItemUIList.NewItem();
         uiListImte.value          = playGoods;
         uiListImte.childText.text = showExplan;
     }
     SelectGoods = ItemUIList.FirstShowItem();
     if (SelectGoods)
     {
         SelectGoods.childImage.enabled = true;
         SelectGoods.childImage.gameObject.SetActive(true);
     }
     ItemUIList.ShowItem(SelectGoods);
     ItemUIList.UpdateUI();
 }
    /// <summary>
    /// 根据当前的技能框项显示技能选择
    /// </summary>
    private void SetSelectSkill()
    {
        uiSelectSkillList.gameObject.SetActive(true);
        //根据当前的技能框,选择技能的种类来初始化技能选择集合并显示该集合
        uiSelectSkillList.Init();
        //需要选中的技能框以及已经存放的技能显示可以放入的技能
        //当前的技能组合
        EnumSkillType[] nowSkillCombineTypes = (nowCombineSkillItem.value as EnumSkillType[]).Clone() as EnumSkillType[];
        //判断当前锁定框的位置
        int level = nowUISkilCombineLattice.Level;

        //通过位置和判断是否可以组合技能显示需要添加的技能
        EnumSkillType[]      canSetSkillTypes     = SkillCombineStaticTools.GetBaseSkillBackCombineSkillIndex(level);                        //该阶段的技能
        EnumSkillType[]      addedPointSkillTypes = playerState.SkillPoint.Where(temp => temp.Value > 0).Select(temp => temp.Key).ToArray(); //所有加点的技能
        List <EnumSkillType> mustShowSkillTypes   = canSetSkillTypes.Intersect(addedPointSkillTypes).ToList();                               //简略判断可以显示的技能

        //将现有技能组合判断是否可以使用技能
        mustShowSkillTypes.RemoveAll(temp =>
        {
            nowSkillCombineTypes[level - 1] = temp;
            return(!SkillCombineStaticTools.GetCanCombineSkills(nowSkillCombineTypes));
        });
        mustShowSkillTypes.Insert(0, EnumSkillType.None);//第一个必须是None技能
        foreach (EnumSkillType mustShowSkillType in mustShowSkillTypes)
        {
            UIListItem      uiListItem          = uiSelectSkillList.NewItem();
            SkillBaseStruct tempSkillBaseStruct = skillStructData_Base.SearchSkillDatas(temp => temp.skillType == mustShowSkillType).FirstOrDefault();
            //uiListItem.childImage.sprite = tempSkillBaseStruct == null ? null : tempSkillBaseStruct.skillSprite;
            uiListItem.value          = mustShowSkillType;
            uiListItem.childText.text = SkillCombineStaticTools.GetSingleSkillName(mustShowSkillType);
        }
        uiSelectSkillList.UpdateUI();
        //设置第一个技能高亮
        nowSelectSkillItem = uiSelectSkillList.FirstShowItem();
        if (nowSelectSkillItem)
        {
            nowSelectSkillItem.childImage.gameObject.SetActive(true);
            nowSelectSkillItem.childImage.enabled = true;
        }
        //然后切换状态到技能选择
        enumUISkillCombine = EnumUISkillCombine.CombineSkillSelect;
    }
 private void OnEnable()
 {
     UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle;
     //重新载入数据
     skillStructData_Base = DataCenter.Instance.GetMetaData <SkillStructData>(); //元数据
     playerState          = DataCenter.Instance.GetEntity <PlayerState>();       //玩家状态
     uiCombineSkillList.Init();
     foreach (EnumSkillType[] skillTypes in playerState.CombineSkills)
     {
         SkillBaseStruct[] thisUsedSkills = skillStructData_Base.SearchSkillDatas(temp => skillTypes.Contains(temp.skillType));
         int        key            = SkillCombineStaticTools.GetCombineSkillKey(thisUsedSkills.Select(temp => temp.skillType));
         UIListItem thisUIListItem = uiCombineSkillList.NewItem();
         thisUIListItem.value          = thisUsedSkills.Select(temp => temp.skillType).ToArray();
         thisUIListItem.childText.text = CombineSkillText(key);
     }
     if (playerState.CombineSkills.Count < 30)
     {
         for (int i = 0; i < 30 - playerState.CombineSkills.Count; i++)
         {
             UIListItem thisUIListItem = uiCombineSkillList.NewItem();
             thisUIListItem.value          = new EnumSkillType[4];
             thisUIListItem.childText.text = "[None]";
         }
     }
     uiCombineSkillList.UpdateUI();
     //重设状态
     enumUISkillCombine = EnumUISkillCombine.CombineSkillItem;
     uiCombineSkillList.CanClickListItem = true;
     nowCombineSkillItem = uiCombineSkillList.FirstShowItem();
     uiCombineSkillList.ShowItem(nowCombineSkillItem);
     if (nowCombineSkillItem)
     {
         nowCombineSkillItem.childImage.enabled = true;
         nowCombineSkillItem.childImage.gameObject.SetActive(true);
         SetSkillCombineLatticeAndShowVadio((EnumSkillType[])nowCombineSkillItem.value);
     }
 }
Ejemplo n.º 5
0
    private void OnEnable()
    {
        iMapState     = GameState.Instance.GetEntity <IMapState>();
        iNowTaskState = GameState.Instance.GetEntity <INowTaskState>();
        UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle;

        uiTaskList.Init();
        //填充任务列表
        TaskMap.RunTimeTaskInfo[] runTimeTaskInfoArray = iNowTaskState.GetStartTask(null); //runtimeTaskData.GetAllToDoList().Where(temp => temp.IsStart == true).ToArray();
        foreach (TaskMap.RunTimeTaskInfo runTimeTaskInfo in runTimeTaskInfoArray)
        {
            TaskMap.TaskInfoStruct taskInfoStruct = runTimeTaskInfo.TaskInfoStruct;
            UIListItem             uiListItem     = uiTaskList.NewItem();
            uiListItem.value          = runTimeTaskInfo;
            uiListItem.childText.text = taskInfoStruct.TaskTitile;
        }
        uiTaskList.UpdateUI();
        nowTaskItem = uiTaskList.FirstShowItem();
        if (nowTaskItem)
        {
            uiTaskList.ShowItem(nowTaskItem);
        }
        ExplanNowItem();
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 显示集合
    /// </summary>
    private void ShowUIList()
    {
        uiKeySettingList.Init();
        //注意第一项弄成空的
        UIListItem firstItem = uiKeySettingList.NewItem();

        firstItem.childText.text = "None";
        //firstItem.transform.GetChild(1).GetComponent<Text>().text = "None";
        firstItem.value = null;
        uiKeySettingList.UpdateUI();
        //其他项从技能和道具中检索
        List <KeyContactStruct> keyContactStructList = new List <KeyContactStruct>();

        //单独的技能
        foreach (var item in playerState.SkillPoint)
        {
            if (item.Value <= 0)
            {
                continue;
            }
            SkillBaseStruct skillBaseStruct = skillStructData.SearchSkillDatas(temp => temp.skillType == item.Key).FirstOrDefault();
            if (skillBaseStruct != null)
            {
                KeyContactStruct tempKeyContactStruct = new KeyContactStruct();
                tempKeyContactStruct.id             = (int)item.Key;
                tempKeyContactStruct.key            = 0;
                tempKeyContactStruct.keyContactType = EnumKeyContactType.Skill;
                tempKeyContactStruct.name           = skillBaseStruct.skillName;
                keyContactStructList.Add(tempKeyContactStruct);
            }
        }
        //组合的技能
        foreach (var item in playerState.CombineSkills)
        {
            if (item != null && item.Count(temp => temp == EnumSkillType.None) < 4)
            {
                KeyContactStruct tempKeyContactStruct = new KeyContactStruct();
                tempKeyContactStruct.id             = SkillCombineStaticTools.GetCombineSkillKey(item);
                tempKeyContactStruct.key            = 0;
                tempKeyContactStruct.keyContactType = EnumKeyContactType.Skill;
                tempKeyContactStruct.name           = SkillCombineStaticTools.GetCombineSkillsName(item);
                keyContactStructList.Add(tempKeyContactStruct);
            }
        }
        //可使用的炼金道具
        foreach (var item in playerState.PlayerAllGoods.Where(temp =>
                                                              ((int)temp.GoodsInfo.EnumGoodsType > (int)EnumGoodsType.Item && (int)temp.GoodsInfo.EnumGoodsType < (int)EnumGoodsType.Item + 1000000) ||
                                                              ((int)temp.GoodsInfo.EnumGoodsType > (int)EnumGoodsType.Elixir && (int)temp.GoodsInfo.EnumGoodsType < (int)EnumGoodsType.Elixir + 1000000)
                                                              ))
        {
            KeyContactStruct tempKeyContactStruct = new KeyContactStruct();
            tempKeyContactStruct.id             = item.ID;
            tempKeyContactStruct.key            = 0;
            tempKeyContactStruct.keyContactType = EnumKeyContactType.Prap;
            tempKeyContactStruct.name           = item.GoodsInfo.GoodsName;
            keyContactStructList.Add(tempKeyContactStruct);
        }
        //显示在下拉列表中
        foreach (var item in keyContactStructList)
        {
            UIListItem uiListItem = uiKeySettingList.NewItem();
            uiListItem.childText.text     = item.name;
            uiListItem.value              = item;
            uiListItem.childImage.enabled = false;
        }
        //最后的设置
        uiKeySettingList.UpdateUI();
        nowKeySettingListItem = uiKeySettingList.FirstShowItem();
        uiKeySettingList.ShowItem(nowKeySettingListItem);
        if (nowKeySettingListItem)
        {
            nowKeySettingListItem.childImage.enabled = true;
        }
        selectTargetPanel.gameObject.SetActive(true);
        //状态改为选择技能
        enumKeySettingType = EnumKeySettingType.Select;
    }