slot0 = class("GuildEventInfoPage", import(".GuildEventBasePage")) function slot0.getUIName(slot0) return "GuildEventInfoPage" end function slot0.OnLoaded(slot0) slot0.closeBtn = slot0:findTF("frame/close") slot0.icon = slot0:findTF("frame/icon"):GetComponent(typeof(Image)) slot0.goBtn = slot0:findTF("frame/go_btn") slot0.joinBtn = slot0:findTF("frame/join_btn") slot0.descTxt = slot0:findTF("frame/desc"):GetComponent(typeof(Text)) slot0.consumeTF = slot0:findTF("frame/consume") slot0.consumeTxt = slot0:findTF("frame/consume/Text"):GetComponent(typeof(Text)) slot0.cntTF = slot0:findTF("frame/cnt") slot0.cntTxt = slot0:findTF("frame/cnt/Text"):GetComponent(typeof(Text)) slot0.nameTxt = slot0:findTF("frame/title/Text"):GetComponent(typeof(Text)) slot0.scaleTxt = slot0:findTF("frame/title/scale"):GetComponent(typeof(Text)) slot0.scaleCntTxt = slot0:findTF("frame/title/scale/Text"):GetComponent(typeof(Text)) slot0.progressTF = slot0:findTF("frame/cnt/progress") slot0.progressTxt = slot0:findTF("frame/cnt/progress/Text"):GetComponent(typeof(Text)) slot0.missionList = UIItemList.New(slot0:findTF("frame/events/icons"), slot0:findTF("frame/events/icons/tpl")) slot0.awardList = UIItemList.New(slot0:findTF("frame/award/displays"), slot0:findTF("frame/award/displays/item")) setText(slot0:findTF("frame/events/Text"), i18n("guild_word_may_happen_event")) setText(slot0:findTF("frame/award/Text"), i18n("guild_battle_award")) setText(slot0:findTF("frame/consume/label"), i18n("guild_word_consume")) setText(slot0:findTF("frame/cnt/label"), i18n("guild_join_event_cnt_label")) setText(slot0:findTF("frame/cnt/progress/label"), i18n("guild_join_event_progress_label")) end function slot0.OnInit(slot0) onButton(slot0, slot0.closeBtn, function () uv0:Hide() end, SFX_PANEL) onButton(slot0, slot0._tf, function () uv0:Hide() end, SFX_PANEL) onButton(slot0, slot0.goBtn, function () if not GuildMember.IsAdministrator(uv0.guild:getSelfDuty()) then pg.TipsMgr:GetInstance():ShowTips(i18n("guild_commander_and_sub_op")) return end pg.MsgboxMgr:GetInstance():ShowMsgBox({ content = i18n("guild_start_event_consume_tip", uv0.gevent:GetConsume(), uv0.gevent:GetName()), onYes = function () uv0:emit(GuildEventMediator.ON_ACTIVE_EVENT, uv0.gevent.id) end }) end, SFX_PANEL) onButton(slot0, slot0.joinBtn, function () if not uv0.activeEvent then return end if uv0.activeEvent:IsLimitedJoin() then pg.TipsMgr:GetInstance():ShowTips(i18n("guild_join_event_max_cnt_tip")) return end uv0:JoinEvent() end, SFX_PANEL) end function slot0.JoinEvent(slot0) if slot0.activeEvent:GetLeftTime() <= 604800 then pg.MsgboxMgr:GetInstance():ShowMsgBox({ content = i18n("guild_tip_operation_time_is_not_ample"), onYes = function () slot0, slot1 = uv0.activeEvent:GetMainMissionCntAndFinishCnt() if slot1 ~= 0 then pg.MsgboxMgr:GetInstance():ShowMsgBox({ content = i18n("guild_join_event_exist_finished_mission_tip"), onYes = function () uv0:emit(GuildEventMediator.ON_JOIN_EVENT) end }) else uv0:emit(GuildEventMediator.ON_JOIN_EVENT) end end }) else slot1() end end function slot0.Refresh(slot0, slot1, slot2) slot0:UpdateData(slot1, slot2, slot0.extraData) slot0:UpdateBtnState() end function slot0.OnShow(slot0) slot0.gevent = slot0.extraData.gevent slot1 = slot0.gevent slot0.icon.sprite = GetSpriteFromAtlas("guildevent/i_" .. slot1.id, "") setActive(slot0.icon.gameObject, true) slot0.descTxt.text = slot1:GetDesc() slot0.consumeTxt.text = "" .. slot2 .. "/" .. slot3 slot0.nameTxt.text = slot1:GetName() slot0.scaleTxt.text = slot1:GetScaleDesc() slot0.scaleCntTxt.text = "" slot0:UpdateMissions(slot1) slot0:UpdateAwards(slot1) slot0:UpdateBtnState() end function slot0.UpdateBtnState(slot0) slot0.activeEvent = slot0.guild:GetActiveEvent() setActive(slot0.goBtn, not slot0.activeEvent) setActive(slot0.consumeTF, not slot0.activeEvent) setActive(slot0.joinBtn, slot0.activeEvent) setActive(slot0.cntTF, slot0.activeEvent) setActive(slot0.progressTF, slot0.activeEvent) if slot0.activeEvent then slot0.cntTxt.text = string.format("%d/%d", slot0.activeEvent:GetMaxJoinCnt() - slot0.activeEvent:GetJoinCnt() + slot0.activeEvent:GetExtraJoinCnt() <= 0 and COLOR_RED or COLOR_WHITE, slot3, slot2) slot6, slot7 = slot0.activeEvent:GetMainMissionCntAndFinishCnt() slot0.progressTxt.text = slot7 .. "/" .. slot6 + 1 end end function slot0.UpdateAwards(slot0, slot1) slot0.awardList:make(function (slot0, slot1, slot2) if slot0 == UIItemList.EventUpdate then slot3 = uv0[slot1 + 1] updateDrop(slot2, { id = slot3[2], type = slot3[1], count = slot3[3] }) onButton(uv1, slot2, function () uv0:emit(BaseUI.ON_DROP, uv1) end, SFX_PANEL) end end) slot0.awardList:align(#slot1:GetDisplayAward()) end function slot0.UpdateMissions(slot0, slot1) slot0.missionList:make(function (slot0, slot1, slot2) if slot0 == UIItemList.EventUpdate then slot2:GetComponent(typeof(Image)).sprite = GetSpriteFromAtlas("GuildEventIcon", uv0[slot1 + 1]) end end) slot0.missionList:align(#slot1:GetDisplayMission()) end return slot0