125 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			125 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEngine; | |||
|  | using UnityEngine.UI; | |||
|  | using DG.Tweening; | |||
|  | 
 | |||
|  | namespace MMO | |||
|  | { | |||
|  |     public class MMOUISkinPiece : MMOUIBase | |||
|  |     { | |||
|  |         [SerializeField] Image mImgIcon; | |||
|  |         [SerializeField] Text mTxtName; | |||
|  |         [SerializeField] Text mTxtAddCount; | |||
|  | 
 | |||
|  |         [SerializeField] Image mImgProgress; | |||
|  |         [SerializeField] Text mTxtProgress; | |||
|  | 
 | |||
|  |         [SerializeField] Button mBtnDouble; | |||
|  |         [SerializeField] Button mBtnClaim; | |||
|  | 
 | |||
|  |         [SerializeField] GameObject mGobSkin; | |||
|  | 
 | |||
|  |         [SerializeField] Transform mTsfHead; | |||
|  |         [SerializeField] Transform mTsfBtns; | |||
|  |         [SerializeField] Transform mTsfCard; | |||
|  |         [SerializeField] Transform mTsfFront; | |||
|  |         [SerializeField] Transform mTsfBack; | |||
|  | 
 | |||
|  |         private MMODataSkin mData; | |||
|  |         private int mAddCount; | |||
|  | 
 | |||
|  |         protected override void OnInit() | |||
|  |         { | |||
|  |             base.OnInit(); | |||
|  | 
 | |||
|  |             BindBtn(mBtnDouble, OnClickDouble); | |||
|  |             BindBtn(mBtnClaim, OnClickClaim); | |||
|  |         } | |||
|  | 
 | |||
|  |         public override void OnOpen() | |||
|  |         { | |||
|  |             base.OnOpen(); | |||
|  | 
 | |||
|  |             mBtnDouble.enabled = true; | |||
|  |             mBtnClaim.enabled = true; | |||
|  | 
 | |||
|  |             mGobSkin.SetActive(false); | |||
|  |             mGobSkin.transform.localScale = Vector3.one; | |||
|  |             mTsfHead.localScale = Vector3.zero; | |||
|  |             mTsfBtns.localScale = Vector3.zero; | |||
|  |             mTsfCard.localPosition = Vector3.zero; | |||
|  |             mTsfCard.localScale = Vector3.one; | |||
|  |             mTsfBack.localScale = Vector3.one; | |||
|  |             mTsfFront.localScale = new Vector3(0, 1, 1); | |||
|  | 
 | |||
|  |             mTsfCard.DOKill(); | |||
|  | 
 | |||
|  |             Sequence tShowSQ = DOTween.Sequence(); | |||
|  | 
 | |||
|  |             tShowSQ.Append(mTsfCard.DOLocalJump(Vector3.up * 100, 200, 1, 0.3f)); | |||
|  |             tShowSQ.Join(mTsfBack.DOScaleX(0, 0.3f).SetEase(Ease.Linear)); | |||
|  |             tShowSQ.Append(mTsfFront.DOScaleX(1, 0.3f).SetEase(Ease.Linear)); | |||
|  |             tShowSQ.Join(mTsfHead.DOScale(1, 0.3f).SetEase(Ease.OutBack)); | |||
|  |             tShowSQ.Join(mTsfBtns.DOScale(1, 0.3f).SetEase(Ease.OutBack)); | |||
|  | 
 | |||
|  |             tShowSQ.Play(); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void ConfigSkin(MMODataSkin pData, int pAddCount) | |||
|  |         { | |||
|  |             mData = pData; | |||
|  |             mAddCount = pAddCount; | |||
|  | 
 | |||
|  |             mImgIcon.sprite = MMOResourceManager.Instance.LoadRes<Sprite>(string.Format("MMOImage/SkinIcon/Skin{0:D3}", mData.SkinID)); | |||
|  |             mTxtName.text = mData.SkinName; | |||
|  |             mTxtAddCount.text = "+" + mAddCount; | |||
|  | 
 | |||
|  |             int tOwnedCount = MMOUserData.Instance.GetSkinPieceCount(pData.SkinID); | |||
|  |             mImgProgress.fillAmount = tOwnedCount / (float)mData.TotalCount; | |||
|  |             mTxtProgress.text = string.Format("{0}/{1}", tOwnedCount, mData.TotalCount); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void OnClickDouble() | |||
|  |         { | |||
|  |             MMOInnerSDKManager.Instance.ShowRV(MMOEventValue.RvDoubleSkin, DoubleGet); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void DoubleGet(bool pResult) | |||
|  |         { | |||
|  |             if (pResult) | |||
|  |             { | |||
|  |                 MMOInnerSDKManager.Instance.LogClaimSkin(MMOEventValue.Double_Claim); | |||
|  |                 MMOUserData.Instance.AddSkinPieceCount(mData.SkinID, mAddCount); | |||
|  |                 mTxtAddCount.text = "+" + (mAddCount * 2); | |||
|  | 
 | |||
|  |                 Collect(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private void OnClickClaim() | |||
|  |         { | |||
|  |             MMOInnerSDKManager.Instance.LogClaimSkin(MMOEventValue.Normal_Claim); | |||
|  |             Collect(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void Collect() | |||
|  |         { | |||
|  |             mBtnDouble.enabled = false; | |||
|  |             mBtnClaim.enabled = false; | |||
|  | 
 | |||
|  |             Sequence tCollectSQ = DOTween.Sequence(); | |||
|  | 
 | |||
|  |             tCollectSQ.Append(mTsfCard.DOScale(0.2f, 0.5f).SetEase(Ease.InBack)); | |||
|  |             tCollectSQ.Join(mTsfHead.DOScale(0, 0.3f).SetEase(Ease.InBack)); | |||
|  |             tCollectSQ.Join(mTsfBtns.DOScale(0, 0.3f).SetEase(Ease.InBack)); | |||
|  |             tCollectSQ.AppendCallback(() => mGobSkin.SetActive(true)); | |||
|  |             tCollectSQ.Append(mTsfCard.DOJump(mGobSkin.transform.position, 100, 1, 0.8f)); | |||
|  |             tCollectSQ.Append(mTsfCard.DOScale(0, 0.3f)); | |||
|  |             //tCollectSQ.Join(mGobSkin.transform.DOScale(0, 0.3f)); | |||
|  |             tCollectSQ.AppendCallback(Close); | |||
|  | 
 | |||
|  |             tCollectSQ.Play(); | |||
|  |         } | |||
|  |     } | |||
|  | } |