public void ClickTransferHandler()
        {
            int transferTaskConditioCount = _playerData.transferTaskConditionIDList.Count;

            for (int i = 0; i < transferTaskConditioCount; i++)
            {
                TaskConditionData taskConditionData = TaskConditionData.GetTaskConditionData(_playerData.transferTaskConditionIDList[i]);
                if (!TaskUtil.IsTaskConditionFinished(taskConditionData))
                {
                    CommonErrorTipsView.Open(Localization.Get("ui.common_tips.activate_profession_task_unfinished"));
                    return;
                }
            }
            //通用材料检测
            Dictionary <uint, List <Toggle> > groupDic = generalMeterialGroup.toggleGroup;
            List <int> generalMList = new List <int>();

            foreach (var value in groupDic)
            {
                if (!value.Value[0].isOn)
                {
                    generalMList.Add((int)value.Key);
                }
            }
            //资源是否够
            List <GameResData> transferCostResourcesList = _playerData.transferCostList;
            int transferCostResourceCount = transferCostResourcesList.Count;

            for (int i = 0; i < transferCostResourceCount; i++)
            {
                GameResData gameResData = transferCostResourcesList[i];
                if (GameResUtil.IsBaseRes(gameResData.type))
                {
                    if (GameProxy.instance.BaseResourceDictionary[gameResData.type] < gameResData.count)
                    {
                        CommonErrorTipsView.Open(string.Format(Localization.Get("ui.common_tips.not_enough_resource"), GameResUtil.GetBaseResName(gameResData.type)));
                        return;
                    }
                }
                else if (gameResData.type == BaseResType.Item)
                {
                    ItemData itemData = ItemData.GetItemDataByID(gameResData.id);
                    if (generalMList.Contains(gameResData.id))                   //选择了通用材料
                    {
                        itemData = ItemData.GetItemDataByID(itemData.universal_id);
                    }

                    ItemInfo itemInfo = ItemProxy.instance.GetItemInfoByItemID(itemData.id);
                    if (itemInfo == null || itemInfo.count < gameResData.count)
                    {
//						CommonErrorTipsView.Open(string.Format(Localization.Get("ui.common_tips.not_enough_resource"), Localization.Get(itemData.name)));
                        CommonAutoDestroyTipsView.Open(Localization.Get("ui.activate_profession_view.item_not_enough"));
                        return;
                    }
                }
            }

            PlayerController.instance.CLIENT2LOBBY_PLAYER_TRANSFER_REQ((int)_playerData.Id, generalMList);
            UIMgr.instance.Close(PREFAB_PATH);
        }
        public void SetPlayerData(PlayerData playerData)
        {
            _playerData                 = playerData;
            transferTitleText.text      = Localization.Get("ui.activate_profession_view.activate_profession_title");
            costResourcesTitleText.text = Localization.Get("ui.activate_profession_view.cost_resources_title");
            transferText.text           = Localization.Get("ui.activate_profession_view.transfer");
            cancelText.text             = Localization.Get("ui.activate_profession_view.cancel");

            int transferTaskContidionCount = _playerData.transferTaskConditionIDList.Count;

            for (int i = 0; i < transferTaskContidionCount; i++)
            {
                TaskConditionData taskConditionData = TaskConditionData.GetTaskConditionData(_playerData.transferTaskConditionIDList[i]);
                Text transferConditionText          = GameObject.Instantiate <Text>(transferConditionTextPrefab);
                transferConditionText.text = TaskUtil.GetTaskConditionDescriptionWithColor(taskConditionData);
                transferConditionText.transform.SetParent(transferConditionsRoot, false);
                transferConditionText.gameObject.SetActive(true);
            }
            transferConditionTextPrefab.gameObject.SetActive(false);

            List <GameResData> transferCostResourcesList = _playerData.transferCostList;
            int transferCostResourceCount = transferCostResourcesList.Count;

            commonItemIconPrefab.gameObject.SetActive(true);
            for (int i = 0; i < transferCostResourceCount; i++)
            {
                GameResData gameResData = transferCostResourcesList[i];

                if (gameResData.type == BaseResType.Item)
                {
                    int universalId = ItemData.GetItemDataByID(gameResData.id).universal_id;
                    if (universalId != 0)
                    {
                        CommonItemIcon itemOrigin   = CreateItemIcon(gameResData, true);
                        CommonItemIcon itemGeneral  = CreateItemIcon(new GameResData(BaseResType.Item, universalId, gameResData.count, gameResData.star), true);
                        Toggle         originToggle = itemOrigin.GetComponentInChildren <Toggle>();
                        generalMeterialGroup.AddToggle((uint)gameResData.id, originToggle);
                        generalMeterialGroup.AddToggle((uint)gameResData.id, itemGeneral.GetComponentInChildren <Toggle>());
                        generalMeterialGroup.OnClickToggle(originToggle);
                    }
                    else
                    {
                        CreateItemIcon(gameResData, false);
                    }
                }
                else
                {
                    CreateItemIcon(gameResData, false);
                }
            }
            commonItemIconPrefab.gameObject.SetActive(false);
        }
예제 #3
0
        private void Refresh()
        {
            textGetRewardBtn.text = Localization.Get("ui_task_view.get_reward");
            imgTaskTitle.SetSprite(ResMgr.instance.Load <Sprite>(_taskInfo.taskData.GetTaskIconPath()));
            imgTaskTitle.SetNativeSize();
            RefreshTaskContent();
            RefreshReward();
            RefreshProgress();

            TaskConditionData data = TaskConditionData.GetTaskConditionData(taskInfo.taskData.id);

            if (data == null || data.goto_type == 0)
            {
                btnSkip.gameObject.SetActive(false);
            }
            else
            {
                btnSkip.gameObject.SetActive(true);
            }
        }
예제 #4
0
        public void OnClickTaskIconBtnHandler()
        {
            TaskConditionData data = TaskConditionData.GetTaskConditionData(taskInfo.taskData.id);

            if (data == null)
            {
                Debugger.LogError("taskConditionData 找不到 id:{0}", taskInfo.GetFirstCondition().taskDataId);
                return;
            }
            if (data.goto_type == 0)

            {
                Debugger.Log("goto_type is 0");
                return;
            }

            FunctionOpenType type   = (FunctionOpenType)data.goto_type;
            bool             isOpen = FunctionOpenProxy.instance.IsFunctionOpen(type, true);

            if (isOpen)
            {
                FunctionOpenProxy.instance.OpenFunction(type, data.goto_num);
                if (data.goto_num == 0)
                {
                    return;
                }
                if (type == FunctionOpenType.MainView_PVE || type == FunctionOpenType.PVE_Normal || type == FunctionOpenType.PVE_Hard)
                {
                    DungeonInfo info = DungeonProxy.instance.GetDungeonInfo(data.goto_num);

                    if (info != null && !info.isLock)
                    {
                        FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.Dungeon_Detail_View, data.goto_num);
                    }
                    else if (info == null)
                    {
                        Debugger.LogError("副本不存在,id" + data.goto_num);
                    }
                    else if (info.isLock)
                    {
                        CommonAutoDestroyTipsView.Open(Localization.Get("ui.goodsJumpPathView.notUnlock"));
                    }
                }
                if (type == FunctionOpenType.MainView_Hero)
                {
                    List <HeroInfo> heroList = HeroProxy.instance.GetAllHeroInfoList();
                    if (heroList.Count == 0)
                    {
                        return;
                    }
                    int id = (int)heroList[0].instanceID;
                    print((FunctionOpenType)data.goto_num);
                    FunctionOpenProxy.instance.OpenLuaView((FunctionOpenType)data.goto_num, id);
                }
            }
//			TaskType type = (TaskType)_taskInfo.taskData.type;
//			switch(type)
//			{
//			case TaskType.PassDungeonTimes://通关某个副本
//			case TaskType.clearDungeon:			//通关某个副本
//			case TaskType.assignDungeonStar://指定副本星级
//			{
//				int id = taskInfo.GetFirstCondition().secondParam;
//				DungeonInfo info = DungeonProxy.instance.GetDungeonInfo(id);
//				if(info!= null && !info.isLock)
//					FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.Dungeon_Detail_View,info,true);
//				if(info == null)
//					Debugger.LogError("副本不存在,id"+id);
//				else if(info.isLock)
//				{
//					CommonAutoDestroyTipsView.Open(Localization.Get("ui.goodsJumpPathView.notUnlock"));
//				}
//			}
//				break;
//			case TaskType.dailyDungeonFight://参与每日副本
//			{
//				FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.MainView_DailyDungeon,null,false,true);
//			}
//				break;
//			case TaskType.boostNewDungeonCount://推进新副本次数
//			//case TaskType.ProfessionIDAndLevel://职业等级
//			{
//				FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.Dungeon_SelectChapter_View);
//			}
//				break;
//			case TaskType.pvpFightCount:		//竞技场战斗次数
//			{
//				FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.FightCenter_Arena,null,false,true);
//			}
//				break;
//
//			}
        }