private void OnItemClick(ChaseTask task) { if (Window_TeamMatch.IsChooseStage) { bool isSend = moduleAwakeMatch.Request_SwitchStage(task.taskConfigInfo.ID); if (!isSend) { ShowAsync <Window_TeamMatch>(); } } else { currentTask = task; if (currentTask.taskConfigInfo.teamType == TeamType.Single) { SetWindowParam <Window_Assist>(currentTask); ShowAsync <Window_Assist>(); } else { SetWindowParam <Window_CreateRoom>(0, currentTask); ShowAsync <Window_CreateRoom>(); } } }
protected override void ExecuteRestoreData(WindowHolder holder) { _chapterIsInit = holder.GetData <bool>(0); _detailIsInit = holder.GetData <bool>(1); _currentType = holder.GetData <TaskType>(2); _currentTask = holder.GetData <ChaseTask>(3); }
public override bool Initialize(params object[] p) { if (!base.Initialize(p)) { return(false); } excuteOne?.onClick.AddListener(OnExcuteOne); excuteMulti?.onClick.AddListener(OnExcuteMulti); resetSweepTimes?.onClick.AddListener(OnBuySweepTimes); sweepIconButton?.onClick.AddListener(() => moduleGlobal.UpdateGlobalTip(602)); if (p.Length > 0) { task = p[0] as ChaseTask; } else { task = parentWindow.chaseTask; } var exception = Module_Chase.CheckMoppingUp(task, SingleMoppingUpMax); excuteMulti.SetInteractable(exception != MoppingUpException.NoChallengeTimes); excuteMulti.SafeSetActive(exception != MoppingUpException.MaxNotEnough); RefreshMatrial(); EnableExcuteButton(true); return(true); }
public void OpenStoryWindow(ChaseTask rTask) { if (storyWindow.Initialize(rTask)) { chapterWindow.UnInitialize(); } }
protected override void OnBecameVisible(bool oldState, bool forward) { var args = GetWindowParam(name); if (args == null) { return; } var type = (int)args.param1; currentTask = args.param2 as ChaseTask; if (type == 0) { if (taskConfirmWindow) { taskConfirmWindow.UnInitialize(); taskConfirmWindow.Initialize(currentTask); } } else { taskConfirmWindow.UnInitialize(); if (matchWindow) { matchWindow.UnInitialize(); } } }
private void InitAllGaidenTask() { var allGaidenInfos = ConfigManager.GetAll <GaidenTaskInfo>(); var allTasks = ConfigManager.GetAll <TaskInfo>(); gaidenTaskDic.Clear(); foreach (var item in allGaidenInfos) { //init info if (!gaidenInfoDic.ContainsKey(item)) { gaidenInfoDic.Add(item, false); } //init task list if (!gaidenTaskDic.ContainsKey(item.taskType)) { gaidenTaskDic.Add(item.taskType, new List <ChaseTask>()); } var ts = allTasks.FindAll(t => t.level == (int)item.taskType); if (ts != null && ts.Count > 0) { foreach (var task in ts) { gaidenTaskDic[item.taskType].Add(ChaseTask.Create(task)); } } } }
protected override void OnBecameVisible(bool oldState, bool forward) { base.OnBecameVisible(oldState, forward); var data = GetWindowParam <Window_ResetTimes>(); _chaseTask = data.param1 as ChaseTask; Refresh(); }
public void RefreshPanel(ChaseTask info, bool isInSettlement = false) { RefreshComponent(isInSettlement, info.star); foreach (var item in m_starPreviews) { item.RefreshStarPreview(info); } }
protected override void RefreshData(params object[] p) { if (p.Length <= 0) { return; } _currentTask = p[0] as ChaseTask; RefreshData(); }
public GaidenTaskInfo GetGaidenInfo(ChaseTask task) { if (task == null) { Logger.LogError("cannot load GaidenTaskInfo,because chasetask is null"); return(null); } return(GetGaidenInfo(task.taskType)); }
public Module_Npc.NpcMessage GetNpcFromTask(ChaseTask task) { var gaiden = GetGaidenInfo(task); if (gaiden == null) { return(null); } return(moduleNpc.GetTargetNpc((NpcTypeID)gaiden.ID)); }
private void EnterRoom(bool noCreat, ChaseTask task) { if (moduleEquip.bloodCardNum < cost) { moduleGlobal.ShowMessage(ConfigText.GetDefalutString(TextForMatType.ChaseUIText, 55)); return; } Window.SetWindowParam <Window_CreateRoom>(1, task); Window.ShowAsync <Window_CreateRoom>(null, w => moduleAwakeMatch.Request_EnterRoom(noCreat, task)); }
public void SendResetChallenge(ChaseTask task) { if (task?.taskData == null) { return; } cacheResetTask = task; CsChaseResetOverTimes p = PacketObject.Create <CsChaseResetOverTimes>(); p.taskId = cacheResetTask.taskData.taskId; session.Send(p); }
void _Packet(ScChaseStateChange p) { ChaseTask targetTask = GetGaidenTask(p.taskId); if (targetTask == null) { return; } //replace task data targetTask.taskData.state = p.state; DispatchModuleEvent(EventRefreshTargetTask, targetTask); }
/// <summary> /// 检测某一个任务的条件。返回一个掩码值。0 表示可做 1 体力不足 2进入次数不足 4 人数不足 8 人数过多 /// </summary> /// <param name="rData"></param> /// <param name="data"></param> /// <returns></returns> public static int CheckTask(ChaseTask data) { var mask = 0; if (data.taskConfigInfo.teamType == TeamType.Double && !moduleAwakeMatch.HasTeamMember) { mask |= 4; } else if (data.taskConfigInfo.teamType == TeamType.Single && moduleAwakeMatch.HasTeamMember) { mask |= 8; } //客户端都不做预检测了。因为服务器不发数据过来了 // if (taskInfo.limitEnter) // { // //体力消耗只检测了自己。客户端只是预检测,最终由服务器去判断 // if (taskInfo.costItem != null) // { // for (var c = 0; c < taskInfo.costItem.Length; c++) // { // var itemPair = taskInfo.costItem[c]; // if (!moduleAwakeMatch.IsMaterialEnough(itemPair)) // mask |= 1; // } // } // if (moduleAwakeMatch.matchInfos != null) // { // if (data.Item2.type == AwakeTaskInfo.eAwakeTaskType.Normal) // { // for (var c = 0; c < moduleAwakeMatch.matchInfos.Length; c++) // { // var p = moduleAwakeMatch.matchInfos[c]; // if (p.enterTimes <= 0) // mask |= 2; // } // } // else // { // for (var c = 0; c < moduleAwakeMatch.matchInfos.Length; c++) // { // var chaseData = moduleAwakeMatch.GetTaskData(moduleAwakeMatch.matchInfos[c].roleId, data.Item1.ID); // if (data.Item1.challengeCount - chaseData.dailyOverTimes <= 0) // mask |= 2; // } // } // } // } return(mask); }
private void Internal_RequestEnterRoom(bool enter, ChaseTask task) { StageId = task.taskConfigInfo.ID; DispatchModuleEvent(Notice_CurrentTaskChange); var msg = PacketObject.Create <CsTeamPveEnterRoom>(); msg.enterRoom = enter; msg.stageId = StageId; session.Send(msg); IsNeedBroad = !enter; moduleGlobal.LockUI(string.Empty, 0.5f); }
public override bool Initialize(params object[] p) { if (!base.Initialize(p)) { return(false); } if (p.Length > 0) { _chaseTask = p[0] as ChaseTask; } Refresh(); sureBtn?.onClick.AddListener(OnSure); cancelBtn?.onClick.AddListener(() => UnInitialize()); closeBtn?.onClick.AddListener(() => UnInitialize()); return(true); }
private void HandleTasks(PChaseTask[] tasks) { if (tasks == null) { return; } canEnterList.Clear(); for (var i = 0; i < tasks.Length; i++) { var t = ConfigManager.Get <TaskInfo>(tasks[i].taskId); if (t == null) { continue; } var type = moduleChase.GetCurrentTaskType(t); if (type != TaskType.Awake) { continue; } canEnterList.Add(ChaseTask.Create(tasks[i], t)); } ClassifyList(); //重新生成了ChaseTask对象,需要重新更新当前任务对象 var ta = ConfigManager.Get <TaskInfo>(StageId); if (ta != null) { var type = moduleChase.GetCurrentTaskType(ta); if (type == TaskType.Awake) { CurrentTask = CanEnterList.Find(item => item.taskConfigInfo && item.taskConfigInfo.ID == StageId); } else if (type == TaskType.Nightmare) { CurrentTask = moduleChase.CanEnterNightmareList.Find(item => item.taskConfigInfo.ID == StageId); } else if (type == TaskType.Emergency) { CurrentTask = moduleChase.emergencyList.Find(item => item.taskConfigInfo.ID == StageId); } } }
public override bool Initialize(params object[] p) { if (!base.Initialize(p)) { return(false); } task = p[0] as ChaseTask; chaseItem.RefreshDetailPanel(task, null); btnParent?.gameObject.SetActive(true); joinRoom?.onClick.AddListener(OnJoinRoomClick); createRoom?.onClick.AddListener(OnCreateRoomClick); close?.onClick.AddListener(() => { WindowCache.Hide(); UnInitialize(); }); return(true); }
private void _Packet(ScChaseTaskUnlock p) { PChaseTask[] tasks = null; p.chaseList.CopyTo(ref tasks); for (var i = 0; i < tasks?.Length; i++) { TaskInfo ti = ConfigManager.Get <TaskInfo>(tasks[i].taskId); TaskType _type = moduleChase.GetCurrentTaskType(ti); if (_type != TaskType.Awake) { continue; } if (!canEnterList.Exists(item => item.taskConfigInfo.ID == ti.ID)) { canEnterList.Add(ChaseTask.Create(tasks[i])); } } ClassifyList(); }
public void RefreshStarPreview(ChaseTask info) { if (info == null) { return; } SetPanelVisible(true); bool activeStar = info.IsStarActive(m_index); m_starActive.SafeSetActive(activeStar); TaskInfo.TaskStarDetail detail = info.taskConfigInfo?.GetStarDetail(m_star); string text = detail?.GetStarConditionDesc(); //一星显示 Util.SetText(m_grayDesc, text); Util.SetText(m_greenDesc, text); m_grayDesc.SafeSetActive(!activeStar); m_greenDesc.SafeSetActive(activeStar); RefreshReward(detail?.reward, activeStar); }
public void BindData(ChaseTask rTask, Action <ChaseTask> onClick) { AssertInit(); dataCache = rTask; _onClick = onClick; Util.SetText(generalText, rTask.taskConfigInfo.name); Util.SetText(challengeText, rTask.taskConfigInfo.name); locker.SafeSetActive(rTask.taskData == null); challengeLocker.SafeSetActive(rTask.taskData == null); if (rTask.taskData == null) { generalNode.SafeSetActive(rTask.taskConfigInfo.maxChanllengeTimes == 1); okNode.SafeSetActive(false); challengeNode.SafeSetActive(rTask.taskConfigInfo.maxChanllengeTimes != 1); notPassChallenge.SafeSetActive(true); passChallenge.SafeSetActive(false); generalText.SafeSetActive(false); } else { generalNode.SafeSetActive(rTask.taskConfigInfo.maxChanllengeTimes == 1 && rTask.taskData.state == 1); okNode.SafeSetActive(rTask.taskData.state == 3); challengeNode.SafeSetActive(rTask.taskConfigInfo.maxChanllengeTimes != 1); notPassChallenge.SafeSetActive(false); passChallenge.SafeSetActive(true); generalText.SafeSetActive(true); if (passChallenge?.gameObject.activeSelf ?? false) { for (var i = 0; i < _stars?.Length; i++) { _stars[i].SafeSetActive(rTask.star > i); } } } }
public void OnScStartAwake(ChaseTask task) { if (task == null || task.taskData == null) { Logger.LogError("start a awake task is wrong,task data is null"); return; } TaskInfo t = ConfigManager.Get <TaskInfo>(task.taskData.taskId); if (!t) { Logger.LogError("start a awake task is wrong,task data is null"); return; } int stageId = t.stageId; OnPVEStart(stageId, PVEReOpenPanel.Awake); isFirstEnterStage = task.taskData?.dailyOverTimes == 0; enterForFirstTime = task.taskData?.times == 0; }
public void Request_EnterRoom(bool enter, ChaseTask task) { if (task == null) { return; } if (!enter && !moduleGlobal.CheckSourceMd5(false)) { var ct = ConfigManager.Get <ConfigText>(25); Window_Alert.ShowAlertDefalut(ct[2], () => { Internal_RequestEnterRoom(enter, task); }, Game.Quit, ct[3], ct[4], false); return; } //if (task.Equals(CurrentTask)) // return; Internal_RequestEnterRoom(enter, task); }
public void RefreshTaskItem(bool isActiveTask, ChaseTask chaseTask, Action <ChaseTask> onItemClick) { InitComponent(); SetName(chaseTask.taskConfigInfo); OnClick = onItemClick; Data = chaseTask; taskInfo = chaseTask?.taskConfigInfo; BaseRestrain.SetRestrainData(gameObject, taskInfo ? taskInfo.ID : 0); itemButton.onClick.RemoveAllListeners(); itemButton.onClick.AddListener(() => { OnClick?.Invoke(Data); }); if (isActiveTask && Module_AwakeMatch.instance.TaskInfoDict.ContainsKey(chaseTask.taskConfigInfo.ID)) { SetState(chaseTask.taskData.state == 3 ? TaskState.ActiveNoTouch : TaskState.ActiveChallenge); } else { if (chaseTask.taskData == null) { SetState(TaskState.NoTouch); } else if (chaseTask.taskData.state == 3) { SetState(TaskState.Pass); } else { SetState(TaskState.CanChallenge); } } RefreshFlag(); }
public void RefreshPayPanel(ChaseTask rTask) { _buyTimesWindow.Initialize(rTask); }
public void RefreshDetailPanel(ChaseTask info, Action <ChaseTask> chaseFunc) { IniteDetailPanel(); if (info == null) { return; } this.gameObject.SetActive(true); awakePanel?.gameObject.SetActive(false); //描述 Util.SetText(detail_DescriptionText, info.taskConfigInfo.desc); //name detail_taskName.text = info.taskConfigInfo.name; //map string[] str = info.stageInfo.icon.Split(';'); if (str != null && str.Length >= 1) { UIDynamicImage.LoadImage(detail_Icon, str[0]); } //奖励 ShowRewards(info.taskConfigInfo, detail_items, true); //星级 for (int i = 0; i < detail_stars.Length; i++) { detail_stars[i].gameObject.SetActive(i < info.star); } //消耗体力 var s = Module_Player.instance.roleInfo.fatigue < info.taskConfigInfo.fatigueCount ? GeneralConfigInfo.GetNoEnoughColorString("×" + info.taskConfigInfo.fatigueCount) : "×" + info.taskConfigInfo.fatigueCount; Util.SetText(fatigue_text, (int)TextForMatType.ChaseUIText, 50, s); if (toChaseBtn) { toChaseBtn.gameObject.SetActive(info.taskType != TaskType.Nightmare && info.taskType != TaskType.Awake); //追捕 toChaseBtn.onClick.RemoveAllListeners(); toChaseBtn.onClick.AddListener(() => { if (info.taskType == TaskType.Active) { var activeInfo = Module_Chase.instance.allActiveItems.Find((p) => p.taskLv == info.taskConfigInfo.level); if (activeInfo == null) { return; } if (!Module_Chase.instance.activeChallengeCount.ContainsKey(activeInfo.taskLv)) { return; } if (Module_Chase.instance.activeChallengeCount[activeInfo.taskLv] >= activeInfo.crossLimit) { Module_Global.instance.ShowMessage(ConfigText.GetDefalutString(TextForMatType.ChaseUIText, 39)); return; } } this.gameObject.SetActive(false); chaseFunc?.Invoke(info); }); } //关闭 closeBtn?.onClick.RemoveAllListeners(); closeBtn?.onClick.AddListener(() => { if (Module_Chase.instance.targetTaskFromForge != null) { Module_Chase.instance.SetTargetTask(null); } }); //刷新关卡星级奖励 chaseStarPanel.RefreshPanel(info); int remainCount = info.taskConfigInfo.challengeCount - info.taskData.dailyOverTimes; //重置次数显示 if (remainRestTime) { remainRestTime.transform.parent.gameObject.SetActive(info.taskType == TaskType.Difficult); remainRestTime.text = $"{(remainCount >= 0 ? remainCount : 0)}/{info.taskConfigInfo.challengeCount}"; } if (resetBtn) { resetBtn.gameObject.SetActive(info.taskType == TaskType.Difficult && remainCount <= 0); resetBtn.onClick.RemoveAllListeners(); resetBtn.onClick.AddListener(() => { if (chaseFunc != null) { chaseFunc(info); this.gameObject.SetActive(false); } }); } }
public void RefreshTaskItem(ChaseTask info, int index, Action <ChaseTask> itemCilck) { InitComponent(); if (info == null) { return; } var finish = info.taskData.state == (byte)EnumChaseTaskFinishState.Finish; restrainId = info.taskConfigInfo.ID; chaseTaskItemId = info.taskConfigInfo.ID; accept_Image.gameObject.SetActive((info.taskType == TaskType.Easy || info.taskType == TaskType.Difficult || info.taskType == TaskType.Nightmare) && !finish); //icon m_chaseIcon.SafeSetActive(false); string[] str = info.stageInfo.icon.Split(';'); if (str != null && str.Length >= 1) { UIDynamicImage.LoadImage(m_chaseIcon, str[0], (a, b) => { m_chaseIcon.SafeSetActive(true); }); } //name if (info.taskType == TaskType.Emergency || info.taskType == TaskType.Awake) { m_chaseName.text = info.taskConfigInfo.name; } else { m_chaseName.text = Module_Chase.instance.allTasks_Name == null ? "" : Module_Chase.instance.allTasks_Name[info.taskConfigInfo.ID]; } //奖励 ShowRewards(info.taskConfigInfo, m_chaseRewardItems, false); //星级 for (int i = 0; i < stars.Length; i++) { stars[i].gameObject.SetActive(i < info.star); } //bossicon=每页的最后一关显示 bossIcon.SetActive(index == 5); itemButton.onClick.RemoveAllListeners(); itemButton.onClick.AddListener(() => { if (itemCilck != null && info != null) { itemCilck(info); } }); //困难关卡 challengeText.transform.parent.gameObject.SetActive(info.taskType == TaskType.Difficult || info.taskType == TaskType.Nightmare); int remainCount = info.canEnterTimes; challengeText.text = Util.Format("{0}/{1}", remainCount >= 0 ? remainCount : 0, info.taskConfigInfo.challengeCount); //掉落活动 var drop = Module_Welfare.instance.GetCurDropUp(info.taskData.taskId); dropUp.SafeSetActive(drop != null); if (drop != null) { rateUp.SafeSetActive(drop.type == 1); numberUp.SafeSetActive(drop.type == 2); //如果为-1全部提升 默认显示第一个道具 PropItemInfo prop = null; if (drop.itemTypeId == -1) { var stageInfo = ConfigManager.Get <StageInfo>(info.stageId); if (stageInfo == null || stageInfo.previewRewardItemId == null || stageInfo.previewRewardItemId.Length < 1 || stageInfo.previewRewardItemId[0] == -1) { return; } prop = ConfigManager.Get <PropItemInfo>(stageInfo.previewRewardItemId[0]); } else { prop = ConfigManager.Get <PropItemInfo>(drop.itemTypeId); } if (prop && dropItem) { Util.SetItemInfoSimple(dropItem, prop); dropItem.Find("quality").SafeSetActive(false); dropItem.Find("qualityRune").SafeSetActive(false); dropItem.Find("intentify").SafeSetActive(false); } else { dropItem.SafeSetActive(false); } } }
private void _Packet(ScTeamPveBuyEnterTime msg) { moduleGlobal.UnLockUI(); if (msg.result == 0) { if (msg.roleId.Equals(modulePlayer.id_)) { ChaseTask task = null; var info = ConfigManager.Get <TaskInfo>(msg.stageId); if (info == null) { Logger.LogError("there is no id={0} in taskinfo!", msg.stageId); return; } var type = moduleChase.GetCurrentTaskType(info); if (type == TaskType.Awake) { task = CanEnterActiveList.Find(item => item.taskConfigInfo.ID == msg.stageId); } else if (type == TaskType.Nightmare) { task = moduleChase.CanEnterNightmareList.Find(item => item.taskConfigInfo.ID == msg.stageId); } if (task != null) { task.taskData.resetTimes = msg.times; } else { buyTimes = msg.times; enterTimes = msg.enterTimes; } } for (var i = 0; i < matchInfos.Length; i++) { if (matchInfos[i].roleId.Equals(msg.roleId)) { var data = GetTaskData(msg.roleId, msg.stageId); if (data != null) { var info = ConfigManager.Get <TaskInfo>(msg.stageId); if (info) { var type = moduleChase.GetCurrentTaskType(info); if (type == TaskType.Awake) { data.resetTimes = msg.times; if (!CurrentTaskIsActive) { enterTimes = msg.enterTimes; } } else if (type == TaskType.Nightmare) { data.resetTimes = msg.times; } } } else { matchInfos[i].enterTimes = msg.enterTimes; } } } } DispatchModuleEvent(Response_BuyEnterTime, msg); }
public void SetCurrentTask(ChaseTask task) { currentTask = task; SetWindowParam <Window_CreateRoom>(0, currentTask); ShowAsync <Window_CreateRoom>(); }