//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, September 21, 2018
|
//--------------------------------------------------------
|
|
using DG.Tweening;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class WheelOfFortuneWin : Window
|
{
|
[SerializeField] Button m_LotteryBtn;
|
[SerializeField] ImageEx m_LotteryImage;
|
[SerializeField] RotatePointer m_RotatePointer;
|
[SerializeField] Toggle m_Toggle;
|
[SerializeField] CheckDisplay m_CheckDisplay;
|
[SerializeField] Text Money1_Text;
|
[SerializeField] Text Money2_Text;
|
[SerializeField] Text m_Text_remainingTimes;
|
[SerializeField] Button m_PromotionBtn;
|
[SerializeField] RotationTween m_RotationTween;
|
[SerializeField] GameObject m_RequiredConsumption;
|
[SerializeField] Text m_NeedMoney_Text;
|
[SerializeField] UIEffectFly m_UIEffectFly;
|
[Header("滚动时间")]
|
public float RollingTime = 1f;
|
VipModel m_Vipmodel;
|
VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } }
|
WheelOfFortuneModel wheelOfFortuneModel { get { return ModelCenter.Instance.GetModel<WheelOfFortuneModel>(); } }
|
private int remainingTimes = 0;//剩余次数
|
private int FairyJade = 0;//获取当前绑玉
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_LotteryBtn.AddListener(OnClickButton);
|
m_Toggle.onValueChanged.AddListener(OnClickToggle);
|
m_PromotionBtn.AddListener(OnClickPromotionBtn);
|
}
|
|
protected override void OnPreOpen()
|
{
|
FairyJade = (int)UIHelper.GetMoneyCnt(2);
|
Money1_Text.text = FairyJade.ToString();
|
Money2_Text.text = UIHelper.GetMoneyCnt(1).ToString();
|
m_NeedMoney_Text.text = wheelOfFortuneModel.NeedJade.ToString();
|
m_RotatePointer.Init();
|
m_LotteryBtn.interactable = true;
|
m_RequiredConsumption.SetActive(true);
|
m_LotteryImage.gray = false;
|
RemainingTimes();//剩余次数
|
}
|
protected override void OnActived()
|
{
|
Money1_Text.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
m_RotationTween.enabled = false;
|
}
|
protected override void OnAfterOpen()
|
{
|
wheelOfFortuneModel.WheelOfFortuneUpdate += WheelOfFortuneUpdate;
|
RotatePointer.IsButtonShow += IsButtonShow;
|
CheckDisplay.EndOfFlashing += EndOfFlashing;
|
PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
|
if (wheelOfFortuneModel.redPointStre1.state == RedPointState.Simple)
|
{
|
int GetDayOfYear = DateTime.Now.DayOfYear;
|
string strKey = "WheelOfRedPoint" + PlayerDatas.Instance.baseData.PlayerID;
|
LocalSave.SetInt(strKey, GetDayOfYear);
|
wheelOfFortuneModel.redPointStre1.state = RedPointState.None;
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
wheelOfFortuneModel.WheelOfFortuneUpdate -= WheelOfFortuneUpdate;
|
RotatePointer.IsButtonShow -= IsButtonShow;
|
CheckDisplay.EndOfFlashing -= EndOfFlashing;
|
PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
|
}
|
|
private void Updatefighting(PlayerDataRefresh obj)
|
{
|
if (obj == PlayerDataRefresh.VIPLv)
|
{
|
RemainingTimes();//剩余次数
|
}
|
if (obj == PlayerDataRefresh.Gold)
|
{
|
Money2_Text.text = UIHelper.GetMoneyCnt(1).ToString();
|
}
|
}
|
|
private void EndOfFlashing()
|
{
|
TiedJadeChange();
|
m_UIEffectFly.StartFly(wheelOfFortuneModel.Lattice);
|
}
|
|
private void WheelOfFortuneUpdate(float Angel)
|
{
|
m_LotteryBtn.interactable = false;
|
m_RequiredConsumption.SetActive(false);
|
m_LotteryImage.gray = true;
|
m_RotatePointer.SetTime(m_Toggle.isOn);
|
RemainingTimes();//剩余次数
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
private void OnClickButton()
|
{
|
int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
|
if (LotteryNumber <= wheelOfFortuneModel.Number)
|
{
|
LackOfVIP(); //VIP 不足
|
return;
|
}
|
else if (LotteryNumber > wheelOfFortuneModel.Number && (int)UIHelper.GetMoneyCnt(1) < wheelOfFortuneModel.NeedJade)
|
{
|
LackFairyJade();//仙玉不足
|
return;
|
}
|
else if (LotteryNumber > wheelOfFortuneModel.Number && (int)UIHelper.GetMoneyCnt(1) >= wheelOfFortuneModel.NeedJade)
|
{
|
m_CheckDisplay.CloseAll();
|
FairyJade = (int)UIHelper.GetMoneyCnt(2);
|
Money1_Text.text = FairyJade.ToString();
|
wheelOfFortuneModel.StartTheDraw();//开始抽奖
|
}
|
}
|
private void OnClickToggle(bool _bool)
|
{
|
if (_bool)
|
{
|
m_RotatePointer._isRotate = false;
|
}
|
else
|
{
|
m_RotatePointer._isRotate = true;
|
}
|
}
|
private void OnClickPromotionBtn()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4);
|
}
|
private void IsButtonShow(bool _bool)//是否可点击旋转
|
{
|
m_LotteryBtn.interactable = _bool;
|
m_RequiredConsumption.SetActive(_bool);
|
m_LotteryImage.gray = !_bool;
|
}
|
private Sequence mScoreSequence;
|
private void TiedJadeChange()//绑玉变化
|
{
|
m_RotationTween.enabled = true;
|
mScoreSequence = DOTween.Sequence();
|
mScoreSequence.SetAutoKill(false);
|
mScoreSequence.Append(DOTween.To(delegate (float value)
|
{
|
var temp = Math.Floor(value);
|
Money1_Text.text = temp + "";
|
}, FairyJade, (int)UIHelper.GetMoneyCnt(2), RollingTime));
|
mScoreSequence.AppendCallback(() =>
|
{
|
Money1_Text.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
m_RotationTween.enabled = false;
|
|
});
|
FairyJade = (int)UIHelper.GetMoneyCnt(2);
|
}
|
|
private void LackOfVIP()//VIP 不足
|
{
|
string str = "次数不足,请提升VIP";
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), str, (bool isOk) =>
|
{
|
if (isOk)
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4);
|
}
|
});
|
|
}
|
private void LackFairyJade()//仙玉不足
|
{
|
if (VersionConfig.Get().isBanShu)
|
{
|
SysNotifyMgr.Instance.ShowTip("GoldErr");
|
return;
|
}
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
|
private void RemainingTimes()//剩余次数
|
{
|
int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
|
if (LotteryNumber > wheelOfFortuneModel.Number)
|
{
|
m_Text_remainingTimes.text = "今日可转动次数:" + (LotteryNumber - wheelOfFortuneModel.Number);
|
}
|
else
|
{
|
m_Text_remainingTimes.text = "今日可转动次数:0";
|
}
|
|
}
|
#endregion
|
|
}
|
|
}
|