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);
        }
예제 #2
0
 private static bool CheckPassDungeonTimes(TaskConditionData taskConditionData)
 {
     if (taskConditionData.taskType != TaskType.PassDungeonTimes)
     {
         return(false);
     }
     return(DungeonProxy.instance.GetDungeonInfo(taskConditionData.parameter1.ToInt32()).star > 0);
 }
예제 #3
0
 private static bool CheckVIPLevelRequirement(TaskConditionData taskConditionData)
 {
     if (taskConditionData.taskType != TaskType.VIPLevelRequirement)
     {
         return(false);
     }
     return(false);
 }
예제 #4
0
 private static bool CheckSingleTopUp(TaskConditionData taskConditionData)
 {
     if (taskConditionData.taskType != TaskType.SingleTopUp)
     {
         return(false);
     }
     return(false);
 }
예제 #5
0
 private static bool CheckFirstTopUpInTime(TaskConditionData taskConditionData)
 {
     if (taskConditionData.taskType != TaskType.FirstTopUpInTime)
     {
         return(false);
     }
     return(false);
 }
예제 #6
0
 private static bool CheckAccountLevelRequirement(TaskConditionData taskConditionData)
 {
     if (taskConditionData.taskType != TaskType.AccountLevelRequirement)
     {
         return(false);
     }
     return(GameProxy.instance.AccountLevel >= taskConditionData.parameter1.ToInt32());
 }
        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);
        }
예제 #8
0
        private static bool CheckMultipleHeroStarRequirement(TaskConditionData taskConditionData)
        {
            if (taskConditionData.taskType != TaskType.MultipleHeroStarRequirement)
            {
                return(false);
            }

            int requiredHeroCount = taskConditionData.parameter1.ToInt32();
            int requiredHeroStar  = taskConditionData.parameter2.ToInt32();

            if (HeroProxy.instance.GetHeroInfosStarMoreThan(requiredHeroStar).Count >= requiredHeroCount)
            {
                return(true);
            }
            return(false);
        }
예제 #9
0
        private static bool CheckOwnResource(TaskConditionData taskConditionData)
        {
            if (taskConditionData.taskType != TaskType.OwnResouce)
            {
                return(false);
            }

            GameResData requiredGameResData = new GameResData(taskConditionData.parameter1);

            if (requiredGameResData.type == BaseResType.Gold)
            {
                return(GameProxy.instance.BaseResourceDictionary[BaseResType.Gold] >= requiredGameResData.count);
            }
            else if (requiredGameResData.type == BaseResType.Diamond)
            {
                return(GameProxy.instance.BaseResourceDictionary[BaseResType.Diamond] >= requiredGameResData.count);
            }
            else if (requiredGameResData.type == BaseResType.Crystal)
            {
                return(GameProxy.instance.BaseResourceDictionary[BaseResType.Crystal] >= requiredGameResData.count);
            }
            else if (requiredGameResData.type == BaseResType.Honor)
            {
                return(GameProxy.instance.BaseResourceDictionary[BaseResType.Honor] >= requiredGameResData.count);
            }
            else if (requiredGameResData.type == BaseResType.Item)
            {
                ItemInfo requiredItemInfo = ItemProxy.instance.GetItemInfoByItemID(requiredGameResData.id);
                if (requiredItemInfo != null)
                {
                    if (requiredItemInfo.count >= requiredGameResData.count)
                    {
                        return(true);
                    }
                }
                return(false);
            }
            else if (requiredGameResData.type == BaseResType.Hero)
            {
                if (HeroProxy.instance.GetHeroInfosByHeroDataID(requiredGameResData.id).Count >= requiredGameResData.count)
                {
                    return(true);
                }
                return(false);
            }
            return(false);
        }
예제 #10
0
        public static string GetTaskConditionDescriptionWithColor(TaskConditionData taskConditionData)
        {
            string finishedTaskDescripitonTemplate   = "<color=#00ff00>{0}</color>";
            string unfinishedTaskDescripitonTemplate = "<color=#ff0000>{0}</color>";
            string taskConditionDescripitonWithColor = GetTaskConditionDescription(taskConditionData);
            bool   isTaskConditionFinished           = IsTaskConditionFinished(taskConditionData);

            if (isTaskConditionFinished)
            {
                taskConditionDescripitonWithColor = string.Format(finishedTaskDescripitonTemplate, taskConditionDescripitonWithColor);
            }
            else
            {
                taskConditionDescripitonWithColor = string.Format(unfinishedTaskDescripitonTemplate, taskConditionDescripitonWithColor);
            }
            return(taskConditionDescripitonWithColor);
        }
예제 #11
0
        private static bool CheckProfessionIDAndLevel(TaskConditionData taskConditionData)
        {
            if (taskConditionData.taskType != TaskType.ProfessionIDAndLevel)
            {
                return(false);
            }

            int        playerDataID  = taskConditionData.parameter1.ToInt32();
            int        levelRequired = taskConditionData.parameter2.ToInt32();
            PlayerInfo playerInfo    = PlayerProxy.instance.GetPlayerDataCorrespondingPlayerInfo(playerDataID);

            if (playerInfo != null)
            {
                if (playerInfo.level >= levelRequired)
                {
                    return(true);
                }
            }
            return(false);
        }
예제 #12
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);
            }
        }
예제 #13
0
        public static bool IsTaskConditionFinished(TaskConditionData taskConditionData)
        {
            switch (taskConditionData.taskType)
            {
            case TaskType.AccountLevelRequirement:
                return(CheckAccountLevelRequirement(taskConditionData));

            case TaskType.PassDungeonTimes:
                return(CheckPassDungeonTimes(taskConditionData));

            case TaskType.ProfessionIDAndLevel:
                return(CheckProfessionIDAndLevel(taskConditionData));

            case TaskType.VIPLevelRequirement:
                return(CheckVIPLevelRequirement(taskConditionData));

            case TaskType.MultipleHeroLevelRequirement:
                return(CheckMultipleHeroLevelRequirement(taskConditionData));

            case TaskType.MultipleHeroStarRequirement:
                return(CheckMultipleHeroStarRequirement(taskConditionData));

            case TaskType.OwnResouce:
                return(CheckOwnResource(taskConditionData));

            case TaskType.FirstTopUpInTime:
                return(CheckFirstTopUpInTime(taskConditionData));

            case TaskType.SingleTopUp:
                return(CheckSingleTopUp(taskConditionData));

            default:
                break;
            }
            return(false);
        }
예제 #14
0
        public static string GetTaskConditionDescription(TaskConditionData taskConditionData)
        {
            string taskConditionDescription = string.Empty;

            if (taskConditionData.taskType == TaskType.AccountLevelRequirement)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.account_level_requirement");
                taskConditionDescription = string.Format(taskConditionDescription, taskConditionData.parameter1);
            }
            else if (taskConditionData.taskType == TaskType.PassDungeonTimes)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.pass_dungeon_times");
                int         dungeonID   = taskConditionData.parameter1.ToInt32();
                DungeonInfo dungeonInfo = DungeonProxy.instance.GetDungeonInfo(dungeonID);
                string      dungeonName = Localization.Get(dungeonInfo.dungeonData.name);
                taskConditionDescription = string.Format(taskConditionDescription, dungeonName, taskConditionData.parameter2);
            }
            else if (taskConditionData.taskType == TaskType.ProfessionIDAndLevel)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.profession_id_and_level");
                taskConditionDescription = string.Format(taskConditionDescription, taskConditionData.parameter1, taskConditionData.parameter2);
            }
            else if (taskConditionData.taskType == TaskType.VIPLevelRequirement)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.vip_level_requirement");
                taskConditionDescription = string.Format(taskConditionDescription, taskConditionData.parameter1);
            }
            else if (taskConditionData.taskType == TaskType.MultipleHeroLevelRequirement)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.multiple_hero_level_requirement");
                taskConditionDescription = string.Format(taskConditionDescription, taskConditionData.parameter1, taskConditionData.parameter2);
            }
            else if (taskConditionData.taskType == TaskType.MultipleHeroStarRequirement)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.multiple_hero_star_requirement");
                taskConditionDescription = string.Format(taskConditionDescription, taskConditionData.parameter1, taskConditionData.parameter2);
            }
            else if (taskConditionData.taskType == TaskType.OwnResouce)
            {
                GameResData requiredGameResData = new GameResData(taskConditionData.parameter1);
                if (requiredGameResData.type == BaseResType.Gold)
                {
                    taskConditionDescription = Localization.Get("game.task_condition_description.own_gold");
                    taskConditionDescription = string.Format(taskConditionDescription, requiredGameResData.count);
                }
                else if (requiredGameResData.type == BaseResType.Diamond)
                {
                    taskConditionDescription = Localization.Get("game.task_condition_description.own_diamond");
                    taskConditionDescription = string.Format(taskConditionDescription, requiredGameResData.count);
                }
                else if (requiredGameResData.type == BaseResType.Crystal)
                {
                    taskConditionDescription = Localization.Get("game.task_condition_description.own_crystal");
                    taskConditionDescription = string.Format(taskConditionDescription, requiredGameResData.count);
                }
                else if (requiredGameResData.type == BaseResType.Honor)
                {
                    taskConditionDescription = Localization.Get("game.task_condition_description.own_honor");
                    taskConditionDescription = string.Format(taskConditionDescription, requiredGameResData.count);
                }
                else if (requiredGameResData.type == BaseResType.Item)
                {
                    ItemData itemData = ItemData.GetItemDataByID(requiredGameResData.id);
                    taskConditionDescription = Localization.Get("game.task_condition_description.own_item");
                    taskConditionDescription = string.Format(taskConditionDescription, requiredGameResData.count, Localization.Get(itemData.name));
                }
                else if (requiredGameResData.type == BaseResType.Hero)
                {
                    HeroData heroData = HeroData.GetHeroDataByID(requiredGameResData.id);
                    taskConditionDescription = Localization.Get("game.task_condition_description.own_hero");
                    taskConditionDescription = string.Format(taskConditionDescription, requiredGameResData.count, Localization.Get(heroData.name));
                }
            }
            else if (taskConditionData.taskType == TaskType.FirstTopUpInTime)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.first_top_up_in_time");
                taskConditionDescription = string.Format(taskConditionDescription, taskConditionData.parameter1);
            }
            else if (taskConditionData.taskType == TaskType.SingleTopUp)
            {
                taskConditionDescription = Localization.Get("game.task_condition_description.single_top_up");
                taskConditionDescription = string.Format(taskConditionDescription, taskConditionData.parameter1);
            }
            return(taskConditionDescription);
        }
예제 #15
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;
//
//			}
        }