| | |
| | | [SerializeField] Image m_ReceiveImage;//奖励按钮
|
| | | [SerializeField] Button Btn_Receive;//奖励领取
|
| | | [SerializeField] Button Btn_Finish;//立即完成按钮
|
| | | [SerializeField] Button Btn_Pass;//放弃任务按钮
|
| | | [SerializeField] Button Btn_Leave;//立即前往按钮
|
| | | [SerializeField] Button CloseBtn;//关闭按钮
|
| | | [SerializeField] Text RewardsText;//奖励
|
| | | [SerializeField] Text Text_FinishRound;//本周完成数
|
| | | [SerializeField] RichText ObjectiveText;//任务目标
|
| | | [SerializeField] Text RoundText;//任务环数
|
| | | [SerializeField] Transform _Grid;
|
| | |
|
| | | [SerializeField] Text _ReceiveImageText;
|
| | | [SerializeField] Transform m_GridLeft;//左侧奖励
|
| | | [SerializeField] Slider m_Slider;//进度条 |
| | |
|
| | | [Header("等待时间(秒)")]
|
| | | public int Second = 20;
|
| | | private float timeType = 0f;
|
| | |
| | | private int TaskID;//获取任务ID
|
| | | private int _requireNumber = 0;//立即完成所需的仙玉数量
|
| | | private List<RewardAnalysis.RewardInfo> rewardList = new List<RewardAnalysis.RewardInfo>();
|
| | | private ImpactRankModel.RankAwardItem RankAwardItem = new ImpactRankModel.RankAwardItem();//新增奖励物品
|
| | | PlayerTaskDatas m_TaskModel;
|
| | | PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
|
| | |
|
| | | ItemTipsModel _itemTipsModel;
|
| | | ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
|
| | |
|
| | | PlayerMainDate m_MainModel;
|
| | | PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
|
| | | PlayerDeadModel _deadModel;
|
| | |
| | | CoinTaskTipModel coinTaskTip { get { return m_CoinTaskTip ?? (m_CoinTaskTip = ModelCenter.Instance.GetModel<CoinTaskTipModel>()); } }
|
| | | VipModel m_Vipmodel;
|
| | | VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } }
|
| | | public int Length = 7;//所需长度
|
| | | public int Finalvalue = 0;//最终值
|
| | | int Default = 0;
|
| | | int Value = -1;
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | | string _requireNumberStr = Config.Instance.Get<FuncConfigConfig>("TaskExpend").Numerical1;
|
| | | _requireNumber = int.Parse(_requireNumberStr);
|
| | | AddReceiveLeft();
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | | {
|
| | | Btn_Receive.AddListener(ReceiveButton);
|
| | | Btn_Finish.AddListener(FinishButton);
|
| | | Btn_Pass.AddListener(PassButton);
|
| | | Btn_Leave.AddListener(LeaveButton);
|
| | | CloseBtn.AddListener(CloseButton);
|
| | | }
|
| | |
| | | {
|
| | | timeType = 0;
|
| | | DeadModel.playerDieEvent += OnPlayerDie;
|
| | | Btn_Pass.gameObject.SetActive(false);//仙盟任务放弃任务按钮暂时隐藏
|
| | | PlayerTaskDatas.Event_FairyAuTask += FairyAuRefresh;
|
| | | PlayerTaskDatas.Event_FairyAuReward += FairyAuGrades;
|
| | | RewardFor();
|
| | | // PlayerTaskDatas.Event_FairyAuReward += FairyAuGrades;
|
| | | RewardsToOpen();
|
| | | ContentAssignment();
|
| | | ReceiveLeft();//左侧奖励面板赋值
|
| | | int GetCylinderNumber = TaskAllocation.Instance.FairyAuNumber();//获取仙盟总环数
|
| | | if (coinTaskTip.IsFairy && GetCylinderNumber == 10 && vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1)
|
| | | {
|
| | |
| | | _ReceiveImageText.text = Language.Get("TaskBoxWin_BtnGetReward_Text_1");
|
| | | }
|
| | |
|
| | | }
|
| | | void RewardFor()//奖励默认金
|
| | | {
|
| | | if (taskmodel.OnFairyAuNumber != 0)
|
| | | {
|
| | | theTarget.Length = 0;
|
| | | theTarget.Append('0', 7 - taskmodel.OnFairyAuNumber.ToString().Length);
|
| | | theTarget.Append(taskmodel.OnFairyAuNumber);
|
| | | RewardsText.text = theTarget.ToString();
|
| | | }
|
| | | else
|
| | | {
|
| | | RewardsText.text = "0000000";
|
| | | }
|
| | | }
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | |
| | | {
|
| | | DeadModel.playerDieEvent -= OnPlayerDie;
|
| | | PlayerTaskDatas.Event_FairyAuTask -= FairyAuRefresh;
|
| | | PlayerTaskDatas.Event_FairyAuReward -= FairyAuGrades;
|
| | | // PlayerTaskDatas.Event_FairyAuReward -= FairyAuGrades;
|
| | | taskmodel.FairyAuBool = false;
|
| | | if (!WindowJumpMgr.Instance.IsJumpState)
|
| | | {
|
| | | WindowCenter.Instance.Open<MainInterfaceWin>();
|
| | | }
|
| | | }
|
| | | protected override void LateUpdate()
|
| | | {
|
| | | if (coinTaskTip.IsFairy && vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1)
|
| | | {
|
| | | int GetCylinderNumber = TaskAllocation.Instance.FairyAuNumber();//获取仙盟完成环数
|
| | | timeType += Time.deltaTime;
|
| | | if (Second >= timeType)
|
| | | {
|
| | | _ReceiveImageText.text = string.Format(Language.Get("TaskContinueCount_1"), Second - (int)timeType);
|
| | | }
|
| | | else
|
| | | {
|
| | | _ReceiveImageText.text = string.Format(Language.Get("TaskContinueCount_1"), 0);
|
| | | }
|
| | | if (timeType >= Second && GetCylinderNumber == 10)
|
| | | {
|
| | | ReceiveButton();
|
| | | CloseImmediately();
|
| | | WindowCenter.Instance.Open<MainInterfaceWin>();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | private void OnPlayerDie()
|
| | | {
|
| | | CloseImmediately();
|
| | |
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | void ReceiveButton()//领取奖励
|
| | | {
|
| | | CA221_tagCMGetRunTaskEndAward _CA221 = new CA221_tagCMGetRunTaskEndAward();
|
| | |
| | | ConfirmCancel.ToggleConfirmCancel(Language.Get("FairyAu_Task"), Language.Get("Accomplish_Task"), Language.Get("ConfirmCancel101"), (bool isOk, bool IsToggle) =>
|
| | | {
|
| | | if (isOk)
|
| | |
|
| | | {
|
| | | AccomplishTask();
|
| | |
|
| | | }
|
| | | if (IsToggle)
|
| | | {
|
| | | mainModel.IsBoolFairyAuTask = true;
|
| | |
|
| | | }
|
| | |
|
| | | });
|
| | | }
|
| | | }
|
| | |
|
| | | private void AccomplishTask()
|
| | | {
|
| | |
|
| | | if ((int)UIHelper.GetMoneyCnt(1) >= _requireNumber || (int)UIHelper.GetMoneyCnt(2) >= _requireNumber)
|
| | | {
|
| | | taskmodel.CompletionOfTask(TaskID);
|
| | |
| | | return;
|
| | | }
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | |
|
| | | }
|
| | | void PassButton()//放弃任务
|
| | | {
|
| | | if (mainModel.IsBoolFairyAuTaskAbandon)
|
| | | {
|
| | | AbortMission();
|
| | | }
|
| | | else
|
| | | {
|
| | | ConfirmCancel.ToggleConfirmCancel(Language.Get("FairyAu_Task"), Language.Get("UnionTaskPass"), Language.Get("ConfirmCancel101"), (bool isOk, bool IsToggle) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | AbortMission();
|
| | | }
|
| | | if (IsToggle)
|
| | | {
|
| | | mainModel.IsBoolFairyAuTaskAbandon = true;
|
| | |
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | | void LeaveButton()//立即前往
|
| | |
| | | {
|
| | | if (taskmodel.FairyAuDic[key].MissionState == 3 || taskmodel.FairyAuDic[key].MissionState == 0)
|
| | | _ListArray.Add(key);
|
| | |
|
| | | }
|
| | | for (int i = 0; i < _ListArray.Count; i++)
|
| | | {
|
| | |
| | |
|
| | | void RewardsToOpen()
|
| | | {
|
| | |
|
| | | if (TaskAllocation.Instance.FairyAuNumber() == 10)
|
| | | {
|
| | | m_ReceiveImage.SetSprite("ReceiveBG_a");
|
| | | Btn_Receive.gameObject.SetActive(true);
|
| | |
|
| | | }
|
| | | else
|
| | | {
|
| | | m_ReceiveImage.SetSprite("UnReceiveBG");
|
| | | Btn_Receive.gameObject.SetActive(false);
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | |
| | |
|
| | | void FairyAuTask(int _taskID)//仙盟任务
|
| | | {
|
| | |
|
| | | if (TaskAllocation.Instance.FairyAuNumber() >= 10)
|
| | | {
|
| | | // Btn_Pass.gameObject.SetActive(false);
|
| | | Btn_Leave.gameObject.SetActive(false);
|
| | | RoundText.text ="10/10";
|
| | | RoundText.text = "10/10";
|
| | | Btn_Finish.gameObject.SetActive(false);
|
| | | }
|
| | | else
|
| | | {
|
| | | // Btn_Pass.gameObject.SetActive(true);
|
| | | Btn_Leave.gameObject.SetActive(true);
|
| | | Btn_Finish.gameObject.SetActive(true);
|
| | |
|
| | | RoundText.text = (TaskAllocation.Instance.FairyAuNumber() + 1)+"/10";
|
| | | RoundText.text = (TaskAllocation.Instance.FairyAuNumber() + 1) + "/10";
|
| | | }
|
| | | Text_FinishRound.text = TaskAllocation.Instance.FairyAuAllNumber() + "/70";
|
| | | |
| | | Text_FinishRound.text = TaskAllocation.Instance.FairyAuAllNumber() + "/70";
|
| | |
|
| | | string strINfor = taskmodel.FairyAuDic[_taskID].InforList;
|
| | | TaskID = _taskID;
|
| | |
|
| | | var taskObjectConfig = Config.Instance.Get<TASKINFOConfig>(strINfor);
|
| | | string str = TaskAllocation.Instance.GetTaskInfo(taskObjectConfig.show_writing, _taskID);
|
| | | ObjectiveText.text = str;
|
| | |
|
| | | var rewardConfig = Config.Instance.Get<TASKINFOConfig>(taskmodel.FairyAuDic[_taskID].RewardList);
|
| | | string _RewardStr = TaskAllocation.Instance.GetTaskInfo(rewardConfig.show_writing, _taskID);
|
| | | RewardAnalysis.Inst.GetReward(_RewardStr, ref rewardList);
|
| | |
| | |
|
| | | void TheDefaultTask(int _taskID)//仙盟任务未接取特殊状态
|
| | | {
|
| | |
|
| | | Btn_Finish.gameObject.SetActive(false);
|
| | | Btn_Leave.gameObject.SetActive(true);
|
| | | RoundText.text = "0/10";
|
| | | Text_FinishRound.text = "0/70";
|
| | | string strINfor = taskmodel.SpecialTask[_taskID].InforList;
|
| | | TaskID = _taskID;
|
| | |
|
| | | var taskObjectConfig = Config.Instance.Get<TASKINFOConfig>(strINfor);
|
| | | string _str = TaskAllocation.Instance.GetTaskInfo(taskObjectConfig.show_writing, _taskID);
|
| | | ObjectiveText.text = _str;
|
| | |
| | | ContentAssignment();
|
| | | }
|
| | |
|
| | | void FairyAuGrades(int _number, int _AwardState)
|
| | | private void ReceiveLeft()//左侧奖励信息
|
| | | {
|
| | | BFairyAuRewards(_number, _AwardState);
|
| | | }
|
| | | StringBuilder theTarget = new StringBuilder();//目标值
|
| | | StringBuilder variation = new StringBuilder();//变化值
|
| | | void BFairyAuRewards(int Number, int _AwardState)
|
| | | {
|
| | | Finalvalue = Number;
|
| | | Value = Length - 1;
|
| | | Default = 0;
|
| | | int length = 0;
|
| | | length = Finalvalue.ToString().Length;
|
| | | theTarget.Length = 0;
|
| | | theTarget.Append('0', Length - length);
|
| | | theTarget.Append(Finalvalue);
|
| | | theTarget.ToString();
|
| | | variation.Length = 0;
|
| | | variation.Append('0', Length);
|
| | |
|
| | | }
|
| | | protected override void LateUpdate()
|
| | | {
|
| | | if (coinTaskTip.IsFairy && vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.AutoFairyMisstion) >= 1)
|
| | | for (int i = 0; i < m_GridLeft.childCount; i++)
|
| | | {
|
| | | int GetCylinderNumber = TaskAllocation.Instance.FairyAuNumber();//获取仙盟完成环数
|
| | | timeType += Time.deltaTime;
|
| | | if (Second >= timeType)
|
| | | {
|
| | | _ReceiveImageText.text = string.Format(Language.Get("TaskContinueCount_1"), Second - (int)timeType);
|
| | | }
|
| | | else
|
| | | {
|
| | | _ReceiveImageText.text = string.Format(Language.Get("TaskContinueCount_1"), 0);
|
| | | }
|
| | | if (timeType >= Second && GetCylinderNumber == 10)
|
| | | {
|
| | | ReceiveButton();
|
| | | CloseImmediately();
|
| | | WindowCenter.Instance.Open<MainInterfaceWin>();
|
| | | }
|
| | |
|
| | | m_GridLeft.GetChild(i).gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | | if (Value < 0) return;
|
| | | if (theTarget[Value] != variation[Value])
|
| | | List<AwardItem> AwardItemList = new List<AwardItem>();
|
| | | AwardItemList = RankAwardItem.GetAwardItem(12);
|
| | | for (int i = 0; i < AwardItemList.Count; i++)
|
| | | {
|
| | | Default += (int)Mathf.Pow(10, Length - 1 - Value);
|
| | | variation.Length = 0;
|
| | | int length = Default.ToString().Length;
|
| | | variation.Append('0', Length - length);
|
| | | variation.Append(Default);
|
| | | variation.ToString();
|
| | | RewardsText.text = variation.ToString();
|
| | | if (i < m_GridLeft.childCount)
|
| | | {
|
| | | m_GridLeft.GetChild(i).gameObject.SetActive(true);
|
| | | ItemCell itemCell = m_GridLeft.GetChild(i).GetComponent<ItemCell>();
|
| | | ulong Number = 0;
|
| | | Number = (ulong)AwardItemList[i].item.count;
|
| | | if (AwardItemList[i].item.id == 2103)
|
| | | {
|
| | | Equation.Instance.Clear();
|
| | | int playerlv = PlayerDatas.Instance.baseData.LV;
|
| | | var config = Config.Instance.Get<PlayerLVConfig>(playerlv);
|
| | | Equation.Instance.AddKeyValue("reExp", config.ReExp*5625);
|
| | | Number = Equation.Instance.Eval<ulong>("reExp");
|
| | | }
|
| | | |
| | | ItemCellModel cellModel = new ItemCellModel(AwardItemList[i].item.id, true, Number, AwardItemList[i].isBind);
|
| | | itemCell.Init(cellModel);
|
| | | int tab = i;
|
| | | itemCell.cellBtn.SetListener(()=> |
| | | {
|
| | | ItemAttrData attrData = new ItemAttrData(AwardItemList[tab].item.id, false, Number, -1, AwardItemList[tab].isBind);
|
| | | itemTipsModel.SetItemTipsModel(attrData);
|
| | | });
|
| | | }
|
| | | }
|
| | | else Value--;
|
| | | }
|
| | |
|
| | |
|
| | | private void AbortMission()//放弃任务
|
| | | private void AddReceiveLeft()//添加任务奖励
|
| | | {
|
| | | C0809_tagCCancelTask _C0809 = new C0809_tagCCancelTask();
|
| | | _C0809.TaskID = (uint)TaskID;
|
| | | GameNetSystem.Instance.SendInfo(_C0809);
|
| | | var runTaskAward = Config.Instance.Get<FuncConfigConfig>("RunTaskAward");
|
| | | if (runTaskAward.Numerical3 != string.Empty)
|
| | | {
|
| | | ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem();
|
| | | var _jsonData = LitJson.JsonMapper.ToObject(runTaskAward.Numerical3);
|
| | | if (runTaskAward.Numerical4 != string.Empty)//经验
|
| | | {
|
| | | _award.Add(12, new AwardItem()
|
| | | {
|
| | | item = new Item(2103, 1),
|
| | | isBind = 1,
|
| | | });
|
| | | }
|
| | | foreach (string key in _jsonData.Keys)
|
| | | {
|
| | | var _job = int.Parse(key);
|
| | | var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson());
|
| | | for (int j = 0; j < _itemArray.Length; j++)
|
| | | {
|
| | | _award.Add(_job, new AwardItem()
|
| | | {
|
| | | item = new Item(_itemArray[j][0], _itemArray[j][1]),
|
| | | isBind = _itemArray[j][2],
|
| | | });
|
| | | }
|
| | | }
|
| | | |
| | | RankAwardItem = _award;
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|