//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, September 21, 2018
|
//--------------------------------------------------------
|
|
using DG.Tweening;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.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] Text m_Text_VIPuP;//VIP提升转动次数
|
[SerializeField] Text m_GO;
|
[SerializeField] Button m_PromotionBtn;
|
[SerializeField] RotationTween m_RotationTween;
|
[SerializeField] GameObject m_RequiredConsumption;
|
[SerializeField] Text m_NeedMoney_Text;
|
[SerializeField] UIEffect m_UIEffect_1;
|
[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;
|
bool IsSend = true;
|
public float Second = 1f;
|
private float timeType = 0f;
|
#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()
|
{
|
IsSend = true;
|
FairyJade = (int)UIHelper.GetMoneyCnt(1);
|
Money1_Text.text = FairyJade.ToString();
|
m_NeedMoney_Text.text = wheelOfFortuneModel.NeedJade.ToString();
|
m_RotatePointer.Init();
|
m_LotteryBtn.interactable = true;
|
m_RequiredConsumption.SetActive(true);
|
m_LotteryImage.gray = false;
|
TextGo();
|
IncreaseInFrequency();//次数提升
|
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.playerDataRefreshEvent += 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.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
|
}
|
|
private void Updatefighting(PlayerDataType obj)
|
{
|
if (obj == PlayerDataType.VIPLv)
|
{
|
TextGo();
|
RemainingTimes();//剩余次数
|
IncreaseInFrequency();//次数提升
|
}
|
if (obj == PlayerDataType.Gold)
|
{
|
Money2_Text.text = UIHelper.GetMoneyCnt(1).ToString();
|
}
|
}
|
|
private void EndOfFlashing()
|
{
|
TiedJadeChange();
|
SoundPlayer.Instance.PlayUIAudio(72);
|
m_UIEffect_1.Play();
|
}
|
|
private void WheelOfFortuneUpdate(float Angel)
|
{
|
m_LotteryBtn.interactable = false;
|
m_RequiredConsumption.SetActive(false);
|
m_LotteryImage.gray = true;
|
m_RotatePointer.SetTime(m_Toggle.isOn);
|
TextGo();
|
RemainingTimes();//剩余次数
|
IncreaseInFrequency();//次数提升
|
}
|
protected override void LateUpdate()
|
{
|
timeType += Time.deltaTime;
|
if (timeType >= Second && !IsSend)
|
{
|
timeType = 0;
|
IsSend = true;
|
}
|
}
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void OnClickButton()
|
{
|
int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
|
if (LotteryNumber <= wheelOfFortuneModel.Number)
|
{
|
if (PlayerDatas.Instance.baseData.VIPLv >= 10)
|
{
|
SysNotifyMgr.Instance.ShowTip("BindJadeNoNum");
|
}
|
else
|
{
|
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)
|
{
|
if (IsSend)
|
{
|
m_CheckDisplay.CloseAll();
|
FairyJade = (int)UIHelper.GetMoneyCnt(1);
|
Money1_Text.text = FairyJade.ToString();
|
wheelOfFortuneModel.StartTheDraw();//开始抽奖
|
IsSend = false;
|
}
|
}
|
}
|
private void OnClickToggle(bool _bool)
|
{
|
if (_bool)
|
{
|
m_RotatePointer._isRotate = false;
|
}
|
else
|
{
|
m_RotatePointer._isRotate = true;
|
}
|
}
|
private void OnClickPromotionBtn()
|
{
|
if (PlayerDatas.Instance.baseData.VIPLv >= 10)
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1);
|
}
|
else
|
{
|
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(1), RollingTime));
|
mScoreSequence.AppendCallback(() =>
|
{
|
Money1_Text.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
m_RotationTween.enabled = false;
|
|
});
|
FairyJade = (int)UIHelper.GetMoneyCnt(1);
|
}
|
|
private void LackOfVIP()//VIP 不足
|
{
|
string str = Language.Get("Turntable_2");
|
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).ToString();
|
}
|
else
|
{
|
m_Text_remainingTimes.text = 0.ToString();
|
}
|
|
}
|
|
|
private void IncreaseInFrequency()//次数提升
|
{
|
if (PlayerDatas.Instance.baseData.VIPLv >= 10)
|
{
|
m_Text_VIPuP.SetActive(false);
|
return;
|
}
|
else
|
{
|
m_Text_VIPuP.SetActive(true);
|
}
|
int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
|
for (int i = 0; i <= 10; i++)
|
{
|
var VipConfig = VipPrivilegeConfig.GetVipPrivilegeData(VipPrivilegeType.BindJadeWheel, i);
|
if (VipConfig != 0 && VipConfig > LotteryNumber)
|
{
|
int type = i;
|
int number = VipConfig - LotteryNumber;
|
m_Text_VIPuP.text = string.Format(Language.Get("Turntable_1"), type, Number(number));
|
return;
|
}
|
}
|
}
|
private string Number(int number)
|
{
|
string Str = string.Empty;
|
switch (number)
|
{
|
case 1:
|
Str = Language.Get("Num_CHS_1");
|
return Str;
|
case 2:
|
Str = Language.Get("Turntable5");
|
return Str;
|
case 3:
|
Str = Language.Get("Num_CHS_3");
|
return Str;
|
case 4:
|
Str = Language.Get("Num_CHS_4");
|
return Str;
|
case 5:
|
Str = Language.Get("Num_CHS_5");
|
return Str;
|
case 6:
|
Str = Language.Get("Num_CHS_6");
|
return Str;
|
case 7:
|
Str = Language.Get("Num_CHS_7");
|
return Str;
|
case 8:
|
Str = Language.Get("Num_CHS_8");
|
return Str;
|
case 9:
|
Str = Language.Get("Num_CHS_9");
|
return Str;
|
case 10:
|
Str = Language.Get("Num_CHS_10");
|
return Str;
|
}
|
return Str;
|
}
|
|
private void TextGo()
|
{
|
if (PlayerDatas.Instance.baseData.VIPLv >= 10)
|
{
|
m_GO.text = Language.Get("Turntable_4");
|
}
|
else
|
{
|
m_GO.text = Language.Get("Turntable_3");
|
}
|
}
|
#endregion
|
|
}
|
|
}
|
|
|
|
|