slot0 = class("BobingPage", import("...base.BaseActivityPage"))
function slot0.OnInit(slot0)
if PLATFORM_CODE == PLATFORM_CHT or PLATFORM_CODE == PLATFORM_CH then
setActive(findTF(slot0._tf, "bobing"), true)
setActive(findTF(slot0._tf, "lottery"), false)
else
setActive(findTF(slot0._tf, "bobing"), false)
setActive(findTF(slot0._tf, "lottery"), true)
end
slot0:bind(ActivityMediator.ON_BOBING_RESULT, function (slot0, slot1, slot2)
if PLATFORM_CODE == PLATFORM_CHT or PLATFORM_CODE == PLATFORM_CH then
uv0:displayBBResult(slot1.awards, slot1.numbers, function ()
uv0.callback()
end)
else
uv0:displayLotteryAni(slot1.awards, slot1.numbers, function ()
uv0.callback()
end)
end
end)
end
function slot0.OnUpdateFlush(slot0)
if PLATFORM_CODE == PLATFORM_CHT or PLATFORM_CODE == PLATFORM_CH then
slot0:bobingUpdate()
else
slot0:lotteryUpdate()
end
end
function slot0.lotteryUpdate(slot0)
slot1 = slot0.activity
slot2 = findTF(slot0._tf, "lottery/layer")
if not slot0.lotteryWrap then
slot0.lotteryWrap = {
btnLotteryBtn = findTF(slot2, "lottery_btn"),
phase = findTF(slot2, "phase"),
nums = findTF(slot2, "nums")
}
end
if slot1:getConfig("config_id") <= slot1.data1 then
setActive(findTF(slot3.phase, "bg"), false)
setActive(findTF(slot3.phase, "Text"), false)
setActive(findTF(slot3.phase, "finish"), true)
else
setActive(findTF(slot3.phase, "bg"), true)
setActive(findTF(slot3.phase, "Text"), true)
setText(findTF(slot3.phase, "Text"), setColorStr(slot1.data1, "FFD43F") .. "/" .. slot4)
setActive(findTF(slot3.phase, "finish"), false)
end
if slot1.data2 < 1 then
LeanTween.alpha(slot3.btnLotteryBtn, 1, 1):setLoopPingPong()
setActive(findTF(slot3.btnLotteryBtn, "mask"), false)
onButton(slot0, slot3.btnLotteryBtn, function ()
if uv0.activity.data2 < 1 then
uv0:emit(ActivityMediator.EVENT_OPERATION, {
cmd = 1,
activity_id = uv0.activity.id
})
uv0._event:emit(ActivityMainScene.LOCK_ACT_MAIN, true)
end
end, SFX_PANEL)
else
LeanTween.cancel(slot3.btnLotteryBtn.gameObject)
setActive(findTF(slot3.btnLotteryBtn, "mask"), true)
setActive(findTF(slot3.btnLotteryBtn, "mask/1"), slot0:getIndexByNumbers(slot1.data1_list) == 1)
setActive(findTF(slot3.btnLotteryBtn, "mask/2"), slot5 == 2)
setActive(findTF(slot3.btnLotteryBtn, "mask/3"), slot5 == 3)
onButton(slot0, slot3.btnLotteryBtn, function ()
if uv0.activity.data2 < 1 then
uv0:emit(ActivityMediator.EVENT_OPERATION, {
cmd = 1,
activity_id = uv0.activity.id
})
uv0._event:emit(ActivityMainScene.LOCK_ACT_MAIN, true)
end
end, SFX_PANEL)
end
setText(findTF(slot3.nums, "text"), string.format("%s / %s", slot1.data2 == 0 and "FFD43F" or "d2d4db", 1 - slot1.data2, 1))
end
function slot0.getIndexByNumbers(slot0, slot1)
slot3 = 3
if ActivityConst.BBRule(slot1) and slot2 >= 1 and slot2 <= 2 then
slot3 = 1
end
if slot2 and slot2 >= 3 and slot2 <= 4 then
slot3 = 2
end
return slot3
end
function slot0.displayLotteryAni(slot0, slot1, slot2, slot3)
slot4 = slot0:getIndexByNumbers(slot2)
slot6 = slot0:findTF("omikuji_anim", findTF(slot0._tf, "lottery")):GetComponent(typeof(DftAniEvent))
slot6:SetEndEvent(function (slot0)
setActive(uv0.gameObject, false)
slot1 = uv1:findTF("omikuji_result", uv2)
setActive(slot1, true)
for slot6 = 1, uv1:findTF("title", slot1).childCount do
setActive(slot2:GetChild(slot6 - 1), slot6 == uv3)
end
setText(uv1:findTF("desc", slot1), i18n("draw_" .. ({
"big",
"medium",
"little"
})[uv3] .. "_luck_" .. math.random(1, 3)))
setActive(uv1:findTF("award", slot1), false)
removeAllChildren(uv1:findTF("award_list", slot1))
if uv4 then
for slot11, slot12 in ipairs(uv4) do
slot13 = cloneTplTo(slot6, slot7)
updateDrop(slot13, {
type = slot12.type,
id = slot12.id,
count = slot12.count
})
onButton(uv1, slot13, function ()
uv0:emit(BaseUI.ON_DROP, uv1)
end, SFX_PANEL)
end
end
uv1._event:emit(ActivityMainScene.LOCK_ACT_MAIN, false)
onButton(uv1, slot1, function ()
setActive(uv0, false)
uv1()
end)
end)
setActive(slot6.gameObject, true)
end
function slot0.bobingUpdate(slot0)
slot1 = slot0.activity
slot2 = findTF(slot0._tf, "bobing")
if not slot0.bobingWrap then
slot3 = {
bg = slot0:findTF("AD", slot0._tf),
progress = slot0:findTF("award/nums", slot2),
get = slot0:findTF("award/get", slot2),
nums = slot0:findTF("nums/text", slot2),
bowlDisable = slot0:findTF("bowl_disable", slot2),
bowlEnable = slot0:findTF("bowl_enable", slot2)
}
slot3.bowlShine = slot0:findTF("bowl_shine", slot3.bowlEnable)
slot3.btnRule = slot0:findTF("btnRule", slot2)
slot3.layerRule = slot0:findTF("rule", slot2)
slot3.btnReturn = slot0:findTF("btnReturn", slot3.layerRule)
slot3.item = slot0:findTF("item", slot3.layerRule)
slot3.top = slot0:findTF("top", slot3.layerRule)
slot3.itemRow = slot0:findTF("row", slot3.layerRule)
slot3.itemColumn = slot0:findTF("column", slot3.layerRule)
setActive(slot3.layerRule, false)
setActive(slot3.item, false)
setActive(slot3.itemRow, false)
setActive(slot3.itemColumn, true)
slot4 = pg.gameset.bb_front_awards.description
slot7 = UIItemList.New(slot3.top, slot3.item)
slot7:make(function (slot0, slot1, slot2)
if slot0 == UIItemList.EventUpdate then
updateDrop(slot2, {
type = uv0[slot1 + 1][1],
id = uv0[slot1 + 1][2],
count = uv0[slot1 + 1][3]
})
onButton(uv1, slot2, function ()
uv0:emit(BaseUI.ON_DROP, uv1)
end, SFX_PANEL)
end
end)
slot7:align(#slot4[1])
slot8 = UIItemList.New(slot3.itemColumn, slot3.itemRow)
slot8:make(function (slot0, slot1, slot2)
if slot0 == UIItemList.EventUpdate then
slot4 = UIItemList.New(slot2, uv1.item)
slot4:make(function (slot0, slot1, slot2)
if slot0 == UIItemList.EventUpdate then
updateDrop(slot2, {
type = uv0[slot1 + 1][1],
id = uv0[slot1 + 1][2],
count = uv0[slot1 + 1][3]
})
onButton(uv1, slot2, function ()
uv0:emit(BaseUI.ON_DROP, uv1)
end, SFX_PANEL)
end
end)
slot4:align(#uv0[slot1 + 1])
end
end)
slot8:align(#_.slice(slot4, 2, #slot4 - 1))
onButton(slot0, slot3.btnRule, function ()
setActive(uv0.layerRule, true)
end, SFX_PANEL)
onButton(slot0, slot3.btnReturn, function ()
setActive(uv0.layerRule, false)
end, SFX_CANCEL)
onButton(slot0, slot3.bowlEnable, function ()
uv0._event:emit(ActivityMainScene.LOCK_ACT_MAIN, true)
uv0:displayBBAnim(function ()
uv0:emit(ActivityMediator.EVENT_OPERATION, {
cmd = 1,
activity_id = uv1.id
})
end)
end, SFX_PANEL)
slot0.bobingWrap = slot3
end
setActive(slot3.layerRule, false)
setActive(slot3.get, slot1:getConfig("config_id") <= slot1.data1)
setActive(slot3.bowlDisable, slot1.data2 == 0)
setActive(slot3.bowlEnable, slot1.data2 > 0)
if slot1.data2 < 1 then
LeanTween.alpha(slot3.bowlShine, 1, 1):setLoopPingPong()
else
LeanTween.cancel(slot3.bowlShine.gameObject)
end
setText(slot3.progress, string.format("%s %s", "FFD43F", math.min(slot1.data1, slot4) .. "/", slot4))
setActive(slot3.progress, slot1.data1 < slot4)
setText(slot3.nums, string.format("%s", slot1.data2 == 0 and "FFD43F" or "d2d4db", slot1.data2))
end
function slot0.displayBBAnim(slot0, slot1)
slot2 = slot0:findTF("bobing/bb_anim")
slot3 = slot0:findTF("ship", slot2)
if not slot0.animBowl then
slot0.animBowl = slot0:findTF("bowl", slot2):GetComponent(typeof(SpineAnimUI))
slot0.animBowl:SetAction("bobing", 0)
slot0.animBowl:SetActionCallBack(function (slot0)
if slot0 == "finsih" then
setActive(uv0, false)
setActive(uv1, false)
uv2()
end
end)
end
function slot5()
setActive(uv0, true)
setActive(uv1, true)
uv2.model:GetComponent(typeof(SpineAnimUI)):SetAction("victory", 0)
end
if not slot0.model then
PoolMgr.GetInstance():GetSpineChar(getProxy(BayProxy):getShipById(getProxy(PlayerProxy):getRawData().character):getPrefab(), false, function (slot0)
uv0.model = slot0
uv0.model.transform.localScale = Vector3(0.5, 0.5, 1)
uv0.model.transform:SetParent(uv1, false)
uv2()
end)
else
slot5()
end
setActive(slot2, true)
end
function slot0.displayBBResult(slot0, slot1, slot2, slot3)
slot0.animation = findTF(slot0._tf, "bobing")
setActive(slot0:findTF("bb_anim", slot0.animation), false)
slot4 = slot0:findTF("bb_result", slot0.animation)
slot5 = slot0:findTF("numbers", slot4)
slot7 = slot0:findTF("rank", slot4)
slot8 = slot0:findTF("bgRank", slot4)
setActive(slot0:findTF("number", slot4), false)
setActive(slot0:findTF("award", slot4), false)
removeAllChildren(slot0:findTF("award_list", slot4))
if slot1 then
for slot14, slot15 in ipairs(slot1) do
slot16 = cloneTplTo(slot9, slot10)
updateDrop(slot16, {
type = slot15.type,
id = slot15.id,
count = slot15.count
})
onButton(slot0, slot16, function ()
uv0:emit(BaseUI.ON_DROP, uv1)
end, SFX_PANEL)
end
end
slot11 = UIItemList.New(slot5, slot6)
slot11:make(function (slot0, slot1, slot2)
if slot0 == UIItemList.EventUpdate then
uv0:setSpriteTo("bobing/bb_icon/dice" .. uv1[slot1 + 1], slot2)
setImageAlpha(slot2, 0)
end
end)
slot11:align(#slot2)
setActive(slot7, ActivityConst.BBRule(slot2) < 7)
setActive(slot8, slot12 < 7)
if slot12 < 7 then
slot0:setSpriteTo("bobing/bb_icon/rank" .. slot12, slot7)
setImageAlpha(slot7, 0)
end
slot13 = false
if slot12 == 7 then
LeanTween.value(go(slot5), 0, 1, 1):setOnUpdate(System.Action_float(function (slot0)
uv0:each(function (slot0, slot1)
setImageAlpha(slot1, uv0)
end)
end)):setOnComplete(System.Action(function ()
uv0._event:emit(ActivityMainScene.LOCK_ACT_MAIN, false)
uv1 = true
end))
else
LeanTween.value(go(slot7), 0, 1, 0.2):setDelay(1):setOnUpdate(System.Action_float(function (slot0)
setImageAlpha(uv0, slot0)
uv0.localScale = Vector3.Lerp(Vector3(2, 2, 2), Vector3.one, slot0)
end))
slot15 = slot0:findTF("rank_p", slot4) or cloneTplTo(slot7, slot4, "rank_p")
slot0:setSpriteTo("bobing/bb_icon/rank" .. slot12, slot15)
slot0:setSpriteTo("bobing/bb_icon/rank" .. slot12, slot7)
LeanTween.value(go(slot15), 1, 0, 0.3):setDelay(1.5):setOnUpdate(System.Action_float(function (slot0)
setImageAlpha(uv0, slot0)
uv0.localScale = Vector3.Lerp(Vector3(2, 2, 2), Vector3.one, slot0)
end)):setOnComplete(System.Action(function ()
uv0._event:emit(ActivityMainScene.LOCK_ACT_MAIN, false)
uv1 = true
end))
end
setActive(slot4, true)
onButton(slot0, slot4, function ()
if uv0 then
setActive(uv1, false)
uv2()
end
end)
end
function slot0.setSpriteTo(slot0, slot1, slot2, slot3)
slot2:GetComponent(typeof(Image)).sprite = slot0:findTF(slot1):GetComponent(typeof(Image)).sprite
if slot3 then
slot4:SetNativeSize()
end
end
function slot0.OnDestroy(slot0)
if slot0.bobingWrap then
clearImageSprite(slot0.bobingWrap.bg)
LeanTween.cancel(slot0.bobingWrap.bowlShine.gameObject)
end
end
return slot0