| | |
| | | public float ParentPosition = 74;
|
| | | public float TaskScrollViewTaskScrollView = 230f;
|
| | | public float m_SizeHeight = 72f;//单条任务的宽度
|
| | | [SerializeField] Transform Parent;//父级
|
| | |
|
| | | [SerializeField] TreasureCollectBriefInfoBehaviour m_HumanTreasure;//人族法宝
|
| | | [SerializeField] Transform TaskScrollView;//任务条位置
|
| | | [SerializeField] Transform Content;//任务条父节点
|
| | | [SerializeField] ScrollRect m_ScrollRect;
|
| | |
|
| | | public int TaskId = 0;//任务ID
|
| | | List<int> _list = new List<int>();//用来控制进行排序
|
| | | TreasureModel m_Model;
|
| | | TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); } }
|
| | | TaskModel m_TaskModel;
|
| | | TaskModel taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<TaskModel>()); } }
|
| | | PackModel _playerPack;
|
| | | PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } }
|
| | | PlayerMainDate m_MainModel;
|
| | | PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
|
| | | TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
| | | TaskModel taskmodel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } }
|
| | |
|
| | | List<int> ListSort = new List<int>();//用于排列顺序(未卡级)
|
| | | List<int> ListSort1 = new List<int>();//用于排序(卡级)
|
| | | private void Start()
|
| | | {
|
| | |
|
| | |
|
| | | }
|
| | |
|
| | | void DisplayTreasure(int _treasureIdHuman)
|
| | | {
|
| | | if (FuncOpen.Instance.IsFuncOpen(106) && model.newGotTreasureId != TreasureModel.TREASURE_GUIDE_ID)
|
| | | {
|
| | | m_HumanTreasure.gameObject.SetActive(true);
|
| | | m_HumanTreasure.Display();
|
| | | }
|
| | | else
|
| | | {
|
| | | m_HumanTreasure.gameObject.SetActive(false);
|
| | | m_HumanTreasure.Dispose();
|
| | | }
|
| | | }
|
| | |
|
| | | void UpdateControllerPosition()//更新控件位置
|
| | | {
|
| | | if (m_HumanTreasure.gameObject.activeSelf)
|
| | | {
|
| | | (Parent as RectTransform).sizeDelta = (Parent as RectTransform).sizeDelta.SetY(ParentPosition);
|
| | | (TaskScrollView as RectTransform).sizeDelta = (TaskScrollView as RectTransform).sizeDelta.SetY(TaskScrollViewTaskScrollView - ParentPosition);
|
| | | }
|
| | | else
|
| | | {
|
| | | (Parent as RectTransform).sizeDelta = (Parent as RectTransform).sizeDelta.SetY(0);
|
| | | (TaskScrollView as RectTransform).sizeDelta = (TaskScrollView as RectTransform).sizeDelta.SetY(TaskScrollViewTaskScrollView);
|
| | | }
|
| | | }
|
| | |
|
| | | public void Init()//初始化
|
| | | {
|
| | |
|
| | | var TaskSortType = FuncConfigConfig.Get("TaskSortType");
|
| | | var RenzhuTaskID = FuncConfigConfig.Get("RenzhuTaskID");
|
| | | if (ListSort.Count <= 0)
|
| | |
| | | ListSort1.Add(TaskSortType2[i]);
|
| | | }
|
| | | }
|
| | |
|
| | | TaskModel.Event_TaskToAdd += TaskToAdd;//任务的添加
|
| | | TaskModel.Event_TaskRefreshes += TaskRefreshes;//任务的刷新
|
| | | TaskModel.Event_TaskToDelete += OnTaskToDelete;//任务的删除
|
| | | TaskModel.Event_TaskInformation += TaskInformation;//任务字典信息
|
| | | TaskModel.MainCardLevelChange += MainCardLevelChange;//卡级任务修改
|
| | | TaskModel.CardLevelChange += CardLevelChangeEvent;//卡级任务状态改变
|
| | | model.collectingTreasureChangeEvent += OnCollectingTreasureChangeEvent;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
| | |
| | | private void CloseTreasureNewGotWinEvent()
|
| | | {
|
| | | DisplayTreasure(model.collectingHuman);
|
| | | UpdateControllerPosition();
|
| | | }
|
| | |
|
| | | private void OnCollectingTreasureChangeEvent(TreasureCategory _category)
|
| | | {
|
| | | DisplayTreasure(model.collectingHuman);
|
| | | }
|
| | |
|
| | | void DisplayTreasure(int _treasureIdHuman)
|
| | | {
|
| | | if (model.newGotTreasureId != TreasureModel.TREASURE_GUIDE_ID)
|
| | | {
|
| | | m_HumanTreasure.gameObject.SetActive(true);
|
| | | m_HumanTreasure.Display();
|
| | | }
|
| | | else
|
| | | {
|
| | | m_HumanTreasure.gameObject.SetActive(false);
|
| | | m_HumanTreasure.Dispose();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnFuncStateChangeEvent(int obj)
|
| | |
| | | TaskModel.Event_TaskToDelete -= OnTaskToDelete;//任务的删除
|
| | | TaskModel.Event_TaskInformation -= TaskInformation;//任务字典信息
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
|
| | | TreasureNewGotWin.CloseTreasureNewGotWinEvent -= CloseTreasureNewGotWinEvent;
|
| | | TaskModel.MainCardLevelChange -= MainCardLevelChange;//卡级任务修改
|
| | | TaskModel.CardLevelChange -= CardLevelChangeEvent;//卡级任务状态改变
|
| | | TreasureNewGotWin.CloseTreasureNewGotWinEvent -= CloseTreasureNewGotWinEvent;
|
| | | PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
|
| | | StopAllCoroutines(); |
| | | StopAllCoroutines();
|
| | | }
|
| | |
|
| | | private void Updatefighting(PlayerDataType obj)//等级刷新
|
| | |
| | | int leng = Content.childCount;
|
| | | for (int i = 0; i < leng; i++)
|
| | | {
|
| | | GameObject childObj = Content.GetChild(i).gameObject;
|
| | | TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | var childObj = Content.GetChild(i).gameObject;
|
| | | var childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | if (childObj.activeSelf && childObjTaskType.TaskID == key)
|
| | | {
|
| | | childObj.GetComponent<FlyingShoesTask>().FlyingShoes_Task(key);
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void CardLevelChangeEvent(int taskID)//卡级状态改变
|
| | | {
|
| | | if (taskmodel.allMissionDict.ContainsKey(taskID) && taskmodel.allMissionDict[taskID].Type == 3)
|
| | |
| | | ChangeSort();
|
| | | TaskJump(taskID);
|
| | | }
|
| | | }
|
| | | private void MainCardLevelChange(int _id)//主线任务卡级状态改变
|
| | | {
|
| | | //TaskScheduling();
|
| | | //ChangeSort();
|
| | | //TaskJump(_id);
|
| | | }
|
| | |
|
| | | private void SetLength()
|
| | |
| | | int leng = Content.childCount;
|
| | | for (int i = 0; i < leng; i++)
|
| | | {
|
| | | GameObject childObj = Content.GetChild(i).gameObject;
|
| | | TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | var childObj = Content.GetChild(i).gameObject;
|
| | | var childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | childObjTaskType.ClearTaskName();
|
| | | if (childObj.activeSelf)
|
| | | {
|
| | |
| | | childObj.GetComponent<FlyingShoesTask>().FlyingShoes_Task(_list[i]);
|
| | | }
|
| | | }
|
| | |
|
| | | void TaskToAdd(int MissionID, int MissionState, int DiscriptionIndex)//添加任务
|
| | | {
|
| | | if (MissionID == 2000 || MissionID == 3000 || MissionState == 3 || MissionState == 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (Parent.gameObject.activeInHierarchy)
|
| | | {
|
| | | StartCoroutine(WaitAddTask(MissionID, MissionState));
|
| | | } |
| | |
|
| | | StartCoroutine(WaitAddTask(MissionID, MissionState));
|
| | | }
|
| | |
|
| | | IEnumerator WaitAddTask(int MissionID, int MissionState)
|
| | |
| | | TaskAddAndDelete(MissionID);
|
| | | if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
|
| | | {
|
| | | yield break ;
|
| | | yield break;
|
| | | }
|
| | | TaskJump(MissionID);
|
| | | yield break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void TaskAddAndDelete(int TaskID)
|
| | | {
|
| | | for (int i = 0; i < Content.childCount; i++)
|
| | | {
|
| | | GameObject childObj = Content.GetChild(i).gameObject;
|
| | | TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | var childObj = Content.GetChild(i).gameObject;
|
| | | var childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | if (i < _list.Count)
|
| | | {
|
| | | if (!childObj.activeSelf)
|
| | |
| | | {
|
| | | if (i <= Content.childCount - 1)
|
| | | {
|
| | | GameObject childObj = Content.GetChild(i).gameObject;
|
| | | TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | var childObj = Content.GetChild(i).gameObject;
|
| | | var childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | if (childObj.activeSelf && childObjTaskType.TaskID == MissionID)
|
| | | {
|
| | | if (childObjTaskType.m_TypeBool)
|
| | |
| | | {
|
| | | for (int i = 0; i < Content.childCount; i++)
|
| | | {
|
| | | GameObject obj = Content.GetChild(i).gameObject;
|
| | | TaskType taskType = obj.GetComponent<TaskType>();
|
| | | var obj = Content.GetChild(i).gameObject;
|
| | | var taskType = obj.GetComponent<TaskType>();
|
| | | if (obj.activeSelf && taskType.TaskID == taskID)
|
| | | {
|
| | | taskType.TaskID = 0;
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void ChangeSort()//关于任务变更排序
|
| | | {
|
| | |
|
| | | for (int i = 0; i < _list.Count; i++)
|
| | | {
|
| | |
|
| | | for (int j = 0; j < Content.childCount; j++)
|
| | | {
|
| | | GameObject obj = Content.GetChild(j).gameObject;
|
| | | TaskType taskType = obj.GetComponent<TaskType>();
|
| | | var obj = Content.GetChild(j).gameObject;
|
| | | var taskType = obj.GetComponent<TaskType>();
|
| | | if (taskType.TaskID != 0 && taskType.TaskID == _list[i])
|
| | | {
|
| | | int Inedx = _list.IndexOf(taskType.TaskID);
|
| | |
| | | int leng = Content.childCount;
|
| | | for (int i = 0; i < leng; i++)
|
| | | {
|
| | | GameObject childObj = Content.GetChild(i).gameObject;
|
| | | TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | var childObj = Content.GetChild(i).gameObject;
|
| | | var childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
|
| | | if (childObj.activeSelf && childObjTaskType.TaskID == _Taskid)
|
| | | {
|
| | | childObj.GetComponent<FlyingShoesTask>().FlyingShoes_Task(_Taskid);
|
| | |
| | | _list.Sort(Compare1);//卡级排序
|
| | | }
|
| | | }
|
| | |
|
| | | int Compare(int x, int y)//默认排序(无卡级)
|
| | | {
|
| | | MissionDetailDates xPack = taskmodel.allMissionDict[x];
|
| | | MissionDetailDates yPack = taskmodel.allMissionDict[y];
|
| | | bool IsMainTaskx = xPack.Type == 0;
|
| | | bool IsMainTasky = yPack.Type == 0;
|
| | | var xPack = taskmodel.allMissionDict[x];
|
| | | var yPack = taskmodel.allMissionDict[y];
|
| | | var IsMainTaskx = xPack.Type == 0;
|
| | | var IsMainTasky = yPack.Type == 0;
|
| | | if (IsMainTaskx.CompareTo(IsMainTasky) != 0)//优先主线
|
| | | {
|
| | | return -IsMainTaskx.CompareTo(IsMainTasky);
|
| | | }
|
| | | bool IsStateTaskx = xPack.MissionState == 2;
|
| | | bool IsStateTasky = yPack.MissionState == 2;
|
| | | var IsStateTaskx = xPack.MissionState == 2;
|
| | | var IsStateTasky = yPack.MissionState == 2;
|
| | | if (IsStateTaskx.CompareTo(IsStateTasky) != 0)//优先可领取
|
| | | {
|
| | | return -IsStateTaskx.CompareTo(IsStateTasky);
|
| | |
| | |
|
| | | int Compare1(int x, int y)//排序有卡级
|
| | | {
|
| | | MissionDetailDates xPack = taskmodel.allMissionDict[x];
|
| | | MissionDetailDates yPack = taskmodel.allMissionDict[y];
|
| | | bool IsMainTaskx = xPack.Type == 0;
|
| | | bool IsMainTasky = yPack.Type == 0;
|
| | | var xPack = taskmodel.allMissionDict[x];
|
| | | var yPack = taskmodel.allMissionDict[y];
|
| | | var IsMainTaskx = xPack.Type == 0;
|
| | | var IsMainTasky = yPack.Type == 0;
|
| | | if (IsMainTaskx.CompareTo(IsMainTasky) != 0)//优先主线
|
| | | {
|
| | | return -IsMainTaskx.CompareTo(IsMainTasky);
|
| | | }
|
| | | bool IsStateTaskx = xPack.MissionState == 2;
|
| | | bool IsStateTasky = yPack.MissionState == 2;
|
| | | var IsStateTaskx = xPack.MissionState == 2;
|
| | | var IsStateTasky = yPack.MissionState == 2;
|
| | | if (IsStateTaskx.CompareTo(IsStateTasky) != 0)//优先可领取
|
| | | {
|
| | | return -IsStateTaskx.CompareTo(IsStateTasky);
|
| | |
| | | }
|
| | |
|
| | | return 1;
|
| | | }
|
| | |
|
| | | private void OnCollectingTreasureChangeEvent(TreasureCategory _category)
|
| | | {
|
| | | DisplayTreasure(model.collectingHuman);
|
| | | UpdateControllerPosition();
|
| | | }
|
| | |
|
| | | private bool IsDungeon()//判断是否在副本中
|
| | |
| | | {
|
| | | bool _IsBool = false;
|
| | | var taskList = TaskListConfig.Get(taskmodel.GetNowTaskID);
|
| | | if (taskList!=null)
|
| | | if (taskList != null)
|
| | | {
|
| | | _IsBool = true;
|
| | | }
|
| | |
| | | if (_IsBool)//主线卡级
|
| | | {
|
| | | var task_List = TaskListConfig.Get(_list[i]);
|
| | | if (task_List==null)
|
| | | if (task_List == null)
|
| | | {
|
| | | taskmodel.GetNowTaskID = _list[i];
|
| | | return;
|
| | |
| | | {
|
| | | taskmodel.GetNowTaskID = _list[i];
|
| | | return;
|
| | | } |
| | | } |
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | |
|