/// <summary> /// 设置功能相关红点显示 /// </summary> public void SetFunctionRed(FunctionType _func, bool isRed) { FunctionDataInfo funcInfo = null; if (functionList.ContainsKey((int)_func)) { funcInfo = functionList[(int)_func] as FunctionDataInfo; if (funcInfo != null && isRed != funcInfo.FuncBtnRed) { funcInfo.FuncBtnRed = isRed; } } else { OpenNewFunctionRef refData = ConfigMng.Instance.GetOpenNewFunctionRef((int)_func, mainPlayerInfo.Prof); if (refData == null) { funcInfo = new FunctionDataInfo(_func); funcInfo.FuncBtnRed = isRed; functionList[(int)_func] = funcInfo; } else { funcInfo = new FunctionDataInfo(refData); funcInfo.FuncBtnRed = isRed; functionList[refData.func_type] = funcInfo; } } }
void OpenFunction(TaskInfo task, bool taskNew) { if (task.FuncSequence.Count == 0 || task.TaskState == TaskStateType.ENDED || task.TaskState == TaskStateType.UnTake) { return; } for (int i = 0; i < task.FuncSequence.Count; i++) { OpenNewFunctionRef refData = ConfigMng.Instance.GetOpenNewFunctionRef(task.FuncSequence[i]); if (refData == null) { Debug.Log("任务task=" + task.Task + "step=" + task.Step + "的开启功能id。在功能表中没有找到数据"); continue; } if (refData.open_conditions == 2 && taskNew) { continue; } if (refData.open_conditions == 1 && !taskNew) { continue; } guildTask = task; FunctionDataInfo funcInfo = null; if (refData.func_type <= 0) {//没有与功能相关的引导或者其他处理 funcInfo = new FunctionDataInfo(refData); } else { if (functionList.ContainsKey(refData.func_type)) { funcInfo = functionList[refData.func_type] as FunctionDataInfo; } } if (funcInfo != null) { funcInfo.Update(true); if (GameCenter.noviceGuideMng.UpdateFunctionData != null) { GameCenter.noviceGuideMng.UpdateFunctionData(funcInfo);//开启多个功能时,只支持第一个功能有开启表现 } if (funcInfo.Seqencing != functionSequence) { functionSequence = funcInfo.Seqencing; GameCenter.noviceGuideMng.C2S_GuideSeqencing(funcInfo.Seqencing); } } } }
/// <summary> /// 有配表数据的功能构造 /// </summary> public FunctionDataInfo(OpenNewFunctionRef _refData) { refData = _refData; Update(); }