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); }
private static bool CheckPassDungeonTimes(TaskConditionData taskConditionData) { if (taskConditionData.taskType != TaskType.PassDungeonTimes) { return(false); } return(DungeonProxy.instance.GetDungeonInfo(taskConditionData.parameter1.ToInt32()).star > 0); }
private static bool CheckVIPLevelRequirement(TaskConditionData taskConditionData) { if (taskConditionData.taskType != TaskType.VIPLevelRequirement) { return(false); } return(false); }
private static bool CheckSingleTopUp(TaskConditionData taskConditionData) { if (taskConditionData.taskType != TaskType.SingleTopUp) { return(false); } return(false); }
private static bool CheckFirstTopUpInTime(TaskConditionData taskConditionData) { if (taskConditionData.taskType != TaskType.FirstTopUpInTime) { return(false); } return(false); }
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); }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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; // // } }