ball 项目提交
This commit is contained in:
@@ -0,0 +1,347 @@
|
||||
using FGUI.ZM_Common_01;
|
||||
using IgnoreOPS;
|
||||
using Spine.Unity;
|
||||
|
||||
namespace BallKingdomCrush
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using DG.Tweening;
|
||||
using FairyGUI;
|
||||
using FGUI.LG_Common;
|
||||
using UnityEngine;
|
||||
|
||||
public class RewardUI : BaseUI
|
||||
{
|
||||
private RewardUICtrl ctrl;
|
||||
private RewardModel model;
|
||||
private FGUI.ZM_Reward_10.com_reward ui;
|
||||
|
||||
private bool isMultiple = false;
|
||||
private Action closeCallback;
|
||||
|
||||
|
||||
|
||||
public RewardUI(RewardUICtrl ctrl) : base(ctrl)
|
||||
{
|
||||
uiName = UIConst.RewardUI;
|
||||
this.ctrl = ctrl;
|
||||
}
|
||||
|
||||
protected override void SetUIInfo(UIInfo uiInfo)
|
||||
{
|
||||
uiInfo.packageName = "ZM_Reward_10";
|
||||
uiInfo.assetName = "com_reward";
|
||||
uiInfo.layerType = UILayerType.Popup;
|
||||
uiInfo.isNeedOpenAnim = true;
|
||||
uiInfo.isNeedCloseAnim = true;
|
||||
uiInfo.isNeedUIMask = true;
|
||||
}
|
||||
|
||||
protected override void OnInit()
|
||||
{
|
||||
model = moduleManager.GetModel(ModelConst.RewardModel) as RewardModel;
|
||||
}
|
||||
|
||||
protected override void OnClose()
|
||||
{
|
||||
tween?.Kill();
|
||||
CommonHelper.FadeOut(ui);
|
||||
}
|
||||
|
||||
protected override void OnBind()
|
||||
{
|
||||
ui = baseUI as FGUI.ZM_Reward_10.com_reward;
|
||||
}
|
||||
|
||||
protected override void OnOpenBefore(object args)
|
||||
{
|
||||
|
||||
InitData();
|
||||
InitView();
|
||||
ui.btn_null.SetClick(() => { });
|
||||
}
|
||||
|
||||
protected override void OnOpen(object args)
|
||||
{
|
||||
CommonHelper.FadeIn(ui);
|
||||
if (GetRewardOrigin() == RewardOrigin.H5Icon)
|
||||
{
|
||||
uiMask.touchable = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void InitData()
|
||||
{
|
||||
foreach (var rewardSingleData in ctrl.rewardInfo.GetRewardDataList()
|
||||
.Where(rewardSingleData => rewardSingleData.multiRate == 1))
|
||||
{
|
||||
rewardSingleData.multiRate = rewardSingleData.origin == RewardOrigin.Play
|
||||
? GameHelper.GetQuizRate()
|
||||
: GameHelper.GetVideoRate();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void InitView()
|
||||
{
|
||||
Debug.Log(GetRewardOrigin());
|
||||
AudioManager.Instance.PlayDynamicEffect("reward_show");
|
||||
if (GetRewardOrigin() == RewardOrigin.H5Icon)
|
||||
{
|
||||
uiMask.touchable = false;
|
||||
}
|
||||
|
||||
var value = GetRewardValue();
|
||||
ui.text_num.text = GameHelper.Get101Str(value);
|
||||
|
||||
((btn_claim3)ui.btn_collect).title = GameHelper.Get101Str(value);
|
||||
|
||||
DOVirtual.DelayedCall(0.2f, () =>
|
||||
{
|
||||
var gamwin =
|
||||
FXManager.Instance.SetFx<SkeletonAnimation>(ui.fx_place, Fx_Type.gamwin, ref closeCallback);
|
||||
gamwin.state.SetAnimation(0, "out", true);
|
||||
});
|
||||
|
||||
ui.btn_multi.SetClick(OnClickDouble);
|
||||
ui.btn_collect.SetClick(OnClickClaim);
|
||||
|
||||
SetName();
|
||||
SetAvatar();
|
||||
Set101();
|
||||
|
||||
//boost_array = GameHelper.GetRewardBoost(2);
|
||||
int[] weight_array = null;
|
||||
Debug.Log(GetRewardIndex());
|
||||
if (GetRewardOrigin() == RewardOrigin.Passview)
|
||||
{
|
||||
boost_array = ConfigSystem.GetConfig<Passportrewards>()[GetRewardIndex()].Boost;
|
||||
weight_array = ConfigSystem.GetConfig<Passportrewards>()[GetRewardIndex()].weight;
|
||||
|
||||
}
|
||||
else if (GetRewardOrigin() == RewardOrigin.SignIn)
|
||||
{
|
||||
boost_array = ConfigSystem.GetConfig<SignDailyReward>()[GetRewardIndex()].Boost;
|
||||
weight_array = ConfigSystem.GetConfig<SignDailyReward>()[GetRewardIndex()].weight;
|
||||
|
||||
}
|
||||
else if (GetRewardOrigin() == RewardOrigin.LuckyWheel)
|
||||
{
|
||||
boost_array = ConfigSystem.GetConfig<Turntable>()[GetRewardIndex()].Boost;
|
||||
weight_array = ConfigSystem.GetConfig<Turntable>()[GetRewardIndex()].weight2;
|
||||
|
||||
}
|
||||
int rate_all = 0;
|
||||
for (int i = 0; i < weight_array.Length; i++)
|
||||
{
|
||||
rate_all += weight_array[i];
|
||||
}
|
||||
int random_ = UnityEngine.Random.Range(0, rate_all);
|
||||
int int_ = 0;
|
||||
for (int i = 0; i < weight_array.Length; i++)
|
||||
{
|
||||
int_ += weight_array[i];
|
||||
if (random_ < int_)
|
||||
{
|
||||
rate = boost_array[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
ch_num = value;
|
||||
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t0.Play(Scroll);
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t1.Play(() =>
|
||||
{
|
||||
rate_idnex++;
|
||||
ui.btn_multi.title = "" + ch_num * boost_array[rate_idnex % 5];
|
||||
});
|
||||
ui.btn_multi.title = "" + ch_num * boost_array[4];
|
||||
|
||||
list_1 = new List<item_wheel>() { (ui.wheel.GetChild("wheel_") as wheel_).item_0, (ui.wheel.GetChild("wheel_") as wheel_).item_1, (ui.wheel.GetChild("wheel_") as wheel_).item_2, (ui.wheel.GetChild("wheel_") as wheel_).item_3, (ui.wheel.GetChild("wheel_") as wheel_).item_4, (ui.wheel.GetChild("wheel_") as wheel_).item_5, (ui.wheel.GetChild("wheel_") as wheel_).item_6, (ui.wheel.GetChild("wheel_") as wheel_).item_7, };
|
||||
// list_1[2].img_light.visible = true;
|
||||
|
||||
for (int i = 0; i < list_1.Count; i++)
|
||||
{
|
||||
list_1[i].type.selectedIndex = (i + scroll_number) % 3;
|
||||
list_1[i].text_rate.text = "X" + boost_array[i % boost_array.Length];
|
||||
}
|
||||
if (SaveData.GetSaveObject().LargeRewardNum < ConfigSystem.GetCommonConf().FreeClaims)
|
||||
{
|
||||
(ui.btn_multi as FGUI.ZM_Common_01.btn_claim4).state.selectedIndex = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Tween tween;
|
||||
|
||||
public void Set101(decimal ch = -1)
|
||||
{
|
||||
if (ch < 0)
|
||||
{
|
||||
ch = GameHelper.Get101();
|
||||
}
|
||||
|
||||
// ui.text_num1.text = $"{GameHelper.Get101Str(ch)}";
|
||||
}
|
||||
|
||||
private void SetAvatar()
|
||||
{
|
||||
// GameHelper.SetSelfAvatar(((btn_avatar)ui.btn_av).loader_avatar);
|
||||
}
|
||||
|
||||
private void SetName()
|
||||
{
|
||||
// GameHelper.SetName(ui.text_name);
|
||||
}
|
||||
|
||||
private RewardSingleData GetRewardData(int index = 0)
|
||||
{
|
||||
return ctrl.rewardInfo.GetRewardDataList()[index];
|
||||
}
|
||||
|
||||
private decimal GetRewardValue(int index = 0)
|
||||
{
|
||||
return GetRewardData(index).value;
|
||||
}
|
||||
|
||||
private RewardOrigin GetRewardOrigin(int index = 0)
|
||||
{
|
||||
return GetRewardData(index).origin;
|
||||
}
|
||||
private int GetRewardIndex(int index = 0)
|
||||
{
|
||||
return GetRewardData(index).index;
|
||||
}
|
||||
private void OnClickClaim()
|
||||
{
|
||||
if (ctrl.rewardInfo.condition == RewardCondition.AD)
|
||||
{
|
||||
GameHelper.ShowInterstitial("interstitial_skipDouble");
|
||||
}
|
||||
ctrl.GetReward();
|
||||
CtrlCloseUI();
|
||||
}
|
||||
|
||||
private void OnClickDouble()
|
||||
{
|
||||
|
||||
if (SaveData.GetSaveObject().LargeRewardNum < ConfigSystem.GetCommonConf().FreeClaims)
|
||||
{
|
||||
StartScroll();
|
||||
ui.btn_collect.touchable = ui.btn_multi.touchable = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
GameHelper.ShowVideoAd("RewardBox", isSuccess =>
|
||||
{
|
||||
if (isSuccess)
|
||||
{
|
||||
StartScroll();
|
||||
ui.btn_collect.touchable = ui.btn_multi.touchable = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private decimal ch_num;
|
||||
private int[] boost_array;
|
||||
List<item_wheel> list_1;
|
||||
private int rate_idnex = 3;
|
||||
private int scroll_number;
|
||||
List<int> rate_list = new List<int>();
|
||||
private int scroll_type = 1;
|
||||
private int rate;
|
||||
private void StartScroll()
|
||||
{
|
||||
ui.btn_multi.SetClick(() => { });
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale = 5.0f;
|
||||
scroll_type = 2;
|
||||
}
|
||||
private void Scroll()
|
||||
{
|
||||
if (scroll_type == 1)
|
||||
{
|
||||
scroll_number++;
|
||||
rate_list.Clear();
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
rate_list.Add(boost_array[(scroll_number + i) % boost_array.Length]);
|
||||
}
|
||||
for (int i = 0; i < list_1.Count; i++)
|
||||
{
|
||||
list_1[i].type.selectedIndex = (i + scroll_number) % 3;
|
||||
list_1[i].text_rate.text = "X" + rate_list[i];
|
||||
}
|
||||
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t1.Play(() =>
|
||||
{
|
||||
rate_idnex++;
|
||||
ui.btn_multi.title = GameHelper.Get101Str((decimal)ch_num * boost_array[rate_idnex % boost_array.Length]);
|
||||
});
|
||||
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t0.Play(Scroll);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
scroll_number++;
|
||||
|
||||
rate_list.Clear();
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
rate_list.Add(boost_array[(scroll_number + i) % boost_array.Length]);
|
||||
}
|
||||
|
||||
// bool need_return = false;
|
||||
if (((ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale < 2f) && (list_1[4].text_rate.text == ("X" + rate)))
|
||||
{
|
||||
//开始领取
|
||||
// float reward = ch_num * rate;
|
||||
// if (GameHelper.GetVipLevel() >= 1)
|
||||
// {
|
||||
// reward *= 2;
|
||||
// }
|
||||
|
||||
// GameDispatcher.Instance.Dispatch(GameMsg.Ad_success, reward);
|
||||
|
||||
ctrl.GetReward(rate);
|
||||
CtrlCloseUI();
|
||||
|
||||
SaveData.GetSaveObject().LargeRewardNum++;
|
||||
SaveData.SaveDataFunc();
|
||||
DOVirtual.DelayedCall(1.5f, () =>
|
||||
{
|
||||
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RewardboxUI_Close);
|
||||
});
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < list_1.Count; i++)
|
||||
{
|
||||
list_1[i].type.selectedIndex = (i + scroll_number) % 3;
|
||||
list_1[i].text_rate.text = "X" + rate_list[i];
|
||||
}
|
||||
|
||||
// if (need_return)
|
||||
// {
|
||||
// (ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale = 0;
|
||||
// return;
|
||||
// }
|
||||
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t1.Play(() =>
|
||||
{
|
||||
rate_idnex++;
|
||||
ui.btn_multi.title = GameHelper.Get101Str((decimal)ch_num * boost_array[rate_idnex % boost_array.Length]);
|
||||
});
|
||||
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t0.Play(Scroll);
|
||||
(ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale = (ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale - 0.3f;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user