| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using UnityEngine; | 
					
						
							|  |  |  |  | using UnityEngine.UI; | 
					
						
							|  |  |  |  | using DG.Tweening; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace MMO | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |     public class MMOTaskCell : MMOListCell | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  |     { | 
					
						
							|  |  |  |  |         public Action<int> DelRedeem; | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |         public Action DelWatchRV; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         [SerializeField] GameObject mGobRobux24000; | 
					
						
							|  |  |  |  |         [SerializeField] GameObject mGobRobux48000; | 
					
						
							|  |  |  |  |         [SerializeField] GameObject mGobRobuxOther; | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         [SerializeField] Text mTxtReward; | 
					
						
							|  |  |  |  |         [SerializeField] Text mTxtTaskDesc; | 
					
						
							|  |  |  |  |         [SerializeField] Image mImgTaskIcon; | 
					
						
							|  |  |  |  |         [SerializeField] Text mTxtProgress; | 
					
						
							|  |  |  |  |         [SerializeField] Image mImgProgress; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         [SerializeField] Text mTxtTaskFinal; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         [SerializeField] GameObject mGobNormal; | 
					
						
							|  |  |  |  |         [SerializeField] GameObject mGobFinal; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |         [SerializeField] GameObject mGobRedeemOK; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         [SerializeField] GameObject mGobBack; | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  |         [SerializeField] Button mBtnWatchAd; | 
					
						
							|  |  |  |  |         [SerializeField] Button mBtnRedeem; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         private MMODataTask mData; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |         private bool mIsAdTask => mData.TaskType == MMOTaskType.WatchRV || mData.TaskType == MMOTaskType.DailyAds || mData.TaskType == MMOTaskType.RiseRank; | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         private void Awake() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mBtnRedeem.onClick.AddListener(OnClickRedeem); | 
					
						
							|  |  |  |  |             mBtnWatchAd.onClick.AddListener(OnClickWatchAd); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |         public void ConfigTask(MMOTaskRecord pRecord) | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             mData = MMOTableTask.Instance.GetData(pRecord.TaskID); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |             mGobRobux24000.SetActive(pRecord.RewardNum == 24000); | 
					
						
							|  |  |  |  |             mGobRobux48000.SetActive(pRecord.RewardNum == 48000); | 
					
						
							|  |  |  |  |             mGobRobuxOther.SetActive(pRecord.RewardNum != 24000 && pRecord.RewardNum != 48000); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             string tRewardStr = pRecord.RewardNum.ToString(); | 
					
						
							|  |  |  |  |             tRewardStr = tRewardStr.Insert(tRewardStr.Length - 2, ","); | 
					
						
							|  |  |  |  |             mTxtReward.text = tRewardStr; | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             mBtnRedeem.transform.DOKill(); | 
					
						
							|  |  |  |  |             mBtnRedeem.transform.localScale = Vector3.one; | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |             if (pRecord.TaskType != MMOTaskType.Final) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 mGobNormal.SetActive(true); | 
					
						
							|  |  |  |  |                 mGobFinal.SetActive(false); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 int tCurrentValue = MMOUserData.Instance.GetTaskValue(pRecord.RecordKey); | 
					
						
							|  |  |  |  |                 mTxtTaskDesc.text = mData.TaskName; | 
					
						
							|  |  |  |  |                 mImgTaskIcon.sprite = MMOUtils.LoadTaskIcon(pRecord.TaskType); | 
					
						
							|  |  |  |  |                 mImgTaskIcon.SetNativeSize(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (pRecord.TaskType == MMOTaskType.RiseRank) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     mTxtProgress.text = string.Format("{0:f1}%", Mathf.Min(((float)tCurrentValue / mData.TargetNum) * 100, 100)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     mTxtProgress.text = string.Format("{0}/{1}", tCurrentValue, mData.TargetNum); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 mImgProgress.fillAmount = (float)tCurrentValue / mData.TargetNum; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (pRecord.IsFinished) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |                     mGobBack.SetActive(false); | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  |                     mBtnRedeem.gameObject.SetActive(true); | 
					
						
							|  |  |  |  |                     mBtnWatchAd.gameObject.SetActive(false); | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |                     mGobRedeemOK.SetActive(true); | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                     mBtnRedeem.transform.DOScale(1.1f, 0.3f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |                     bool tHasFinishedSameTaskToday = MMOUserData.Instance.HasFinishedTaskToday(mData.TaskType); | 
					
						
							|  |  |  |  |                     bool tIsDailyDone = (pRecord.TaskType == MMOTaskType.DailyLevel || pRecord.TaskType == MMOTaskType.DailyAds) && tHasFinishedSameTaskToday; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     mGobBack.SetActive(tIsDailyDone); | 
					
						
							|  |  |  |  |                     mBtnRedeem.gameObject.SetActive(!tIsDailyDone && !mIsAdTask); | 
					
						
							|  |  |  |  |                     mBtnWatchAd.gameObject.SetActive(!tIsDailyDone && mIsAdTask); | 
					
						
							|  |  |  |  |                     mGobRedeemOK.SetActive(false); | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 mGobNormal.SetActive(false); | 
					
						
							|  |  |  |  |                 mGobFinal.SetActive(true); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 mTxtTaskFinal.text = mData.TaskDesc; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         private void OnClickRedeem() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             DelRedeem?.Invoke(mIndex); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         private void OnClickWatchAd() | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-09-09 14:35:49 +00:00
										 |  |  |  |             DelWatchRV?.Invoke(); | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |