社稷大典
parent
3f00df0ee7
commit
22832d895e
File diff suppressed because it is too large
Load Diff
|
|
@ -1045,6 +1045,7 @@ ActivityTypeDef = {
|
|||
DynamicAct = 20000,--主题活动任务
|
||||
DynamicAct_TimeLimitShop = 20001,--主题活动限时商市
|
||||
DynamicAct_Treasure = 20002,--主题活动珍奇宝阁
|
||||
DynamicAct_Celebration = 20003,--主题活动 社稷大典
|
||||
|
||||
TreasureStore = 6000,--百宝商会
|
||||
|
||||
|
|
|
|||
|
|
@ -19,27 +19,31 @@ local tabs = {
|
|||
default = "c_ccfy_icon2", lock = "c_ccfy_icon2", select = "c_ccfy_icon1",
|
||||
rpType = RedPointType.DynamicActTask,panelType = PanelType.Main,ActType = ActivityTypeDef.DynamicAct
|
||||
},
|
||||
[4] = { --限时召唤
|
||||
[4] = { --社稷大典
|
||||
default = "x_xianshizaohuan_02", lock = "x_xianshizaohuan_02", select = "x_xianshizaohuan_01",
|
||||
rpType = "",panelType = PanelType.Main,ActType = ActivityTypeDef.DynamicAct_Celebration
|
||||
},
|
||||
[5] = { --限时召唤
|
||||
default = "x_xianshizaohuan_02", lock = "x_xianshizaohuan_02", select = "x_xianshizaohuan_01",
|
||||
rpType = RedPointType.TimeLimited,panelType = PanelType.TimelimitCall,ActType = ActivityTypeDef.FindFairy
|
||||
},
|
||||
[5] = { --乾坤宝盒
|
||||
[6] = { --乾坤宝盒
|
||||
default = "q_qiankun_baoheanniu_02", lock = "q_qiankun_baoheanniu_02", select = "q_qiankun_baoheanniu_01",
|
||||
rpType = RedPointType.QianKunBox,panelType = PanelType.QianKunBox,ActType = ActivityTypeDef.QianKunBox
|
||||
},
|
||||
[6] = { --珍奇礼包
|
||||
[7] = { --珍奇礼包
|
||||
default = "z_zhenqibaoge_anniu_02", lock = "z_zhenqibaoge_anniu_02", select = "z_zhenqibaoge_anniu_01",
|
||||
rpType = "",panelType = PanelType.Main,ActType = ActivityTypeDef.DynamicAct_Treasure
|
||||
},
|
||||
[7] = { --累计充值
|
||||
[8] = { --累计充值
|
||||
default = "r_huodong_leijichengzhianniu_01", lock = "r_huodong_leijichengzhianniu_01", select = "r_huodong_leijichengzhianniu",
|
||||
rpType = RedPointType.DynamicActRecharge,panelType = PanelType.Main,ActType = ActivityTypeDef.DynamicAct_recharge
|
||||
},
|
||||
[8] = { --限时商市
|
||||
[9] = { --限时商市
|
||||
default = "x_xianshishangshi_anniu_02", lock = "x_xianshishangshi_anniu_02", select = "x_xianshishangshi_anniu_01",
|
||||
rpType = "",panelType = PanelType.Main,ActType = ActivityTypeDef.DynamicAct_TimeLimitShop
|
||||
},
|
||||
[9] = { --限时兑换
|
||||
[10] = { --限时兑换
|
||||
default = "r_xianshiduihuan_anniu_01", lock = "r_xianshiduihuan_anniu_01", select = "r_xianshiduihuan_anniu",
|
||||
rpType = "",panelType = PanelType.Main,ActType = ActivityTypeDef.LimitExchange
|
||||
},
|
||||
|
|
@ -54,6 +58,7 @@ local _PageInfo = {--后期可以做成tableInsert,icon名字都去读表
|
|||
[7] = 5,
|
||||
[8] = 6,
|
||||
[9] = 7,
|
||||
[10] = 8,
|
||||
}
|
||||
|
||||
local TimeLimitedCall = require("Modules/DynamicActivity/TimeLimitedCall")
|
||||
|
|
@ -63,6 +68,7 @@ local ZhenQiYiBaoPage=require("Modules/DynamicActivity/ZhenQiYiBaoPage")
|
|||
local LeiJiChongZhiPage=require("Modules/DynamicActivity/LeiJiChongZhiPage")
|
||||
local XianShiShangShi=require("Modules/DynamicActivity/XianShiShangShi")
|
||||
local XianShiDuiHuan=require("Modules/Expert/ExChange")
|
||||
local SheJiDaDian=require("Modules/DynamicActivity/SheJiDaDian")
|
||||
|
||||
--初始化组件(用于子类重写)
|
||||
function DynamicActivityPanel:InitComponent()
|
||||
|
|
@ -73,12 +79,13 @@ function DynamicActivityPanel:InitComponent()
|
|||
|
||||
this.PageList = {
|
||||
[1] = DynamicActPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_3")),
|
||||
[2] = TimeLimitedCall.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_1")),
|
||||
[3] = QianKunBox.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_2")),
|
||||
[4] = ZhenQiYiBaoPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_4")),
|
||||
[5] = LeiJiChongZhiPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_5")),
|
||||
[6] = XianShiShangShi.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_6")),
|
||||
[7] = XianShiDuiHuan.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_7")),
|
||||
[2] = SheJiDaDian.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_8")),
|
||||
[3] = TimeLimitedCall.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_1")),
|
||||
[4] = QianKunBox.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_2")),
|
||||
[5] = ZhenQiYiBaoPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_4")),
|
||||
[6] = LeiJiChongZhiPage.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_5")),
|
||||
[7] = XianShiShangShi.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_6")),
|
||||
[8] = XianShiDuiHuan.new(self, Util.GetGameObject(self.transform, "bg/pageContent/page_7")),
|
||||
}
|
||||
|
||||
-- 上部货币显示
|
||||
|
|
|
|||
|
|
@ -0,0 +1,272 @@
|
|||
local SheJiDaDian = quick_class("SheJiDaDian")
|
||||
local orginLayer = 0
|
||||
|
||||
function SheJiDaDian:ctor(mainPanel, gameObject)
|
||||
self.mainPanel = mainPanel.transform
|
||||
self.gameObject = gameObject
|
||||
self:InitComponent(gameObject)
|
||||
self:BindEvent()
|
||||
end
|
||||
|
||||
function SheJiDaDian:InitComponent(gameObject)
|
||||
|
||||
self.tabList = Util.GetGameObject(self.mainPanel,"bg/tabbox")
|
||||
self.btnBack = Util.GetGameObject(self.mainPanel,"bg/btnBack")
|
||||
self.bottomBar = Util.GetGameObject(self.mainPanel,"bg/bottomBar")
|
||||
--midDown
|
||||
self.midDown = Util.GetGameObject(gameObject,"midDown")
|
||||
self.midDowntips1 = Util.GetGameObject(self.midDown,"tips/tips1"):GetComponent("Text")
|
||||
self.leftUptips1 = Util.GetGameObject(self.midDown,"tips/tips1/times"):GetComponent("Text")
|
||||
self.leftUpTime = Util.GetGameObject(self.midDown,"tips/tips2/time"):GetComponent("Text")
|
||||
self.btnHelp= Util.GetGameObject(gameObject,"btnHelp")
|
||||
self.helpPosition=self.btnHelp:GetComponent("RectTransform").localPosition
|
||||
--rightUp
|
||||
self.rightUp = Util.GetGameObject(gameObject,"rightUp")
|
||||
self.btnReward = Util.GetGameObject(self.rightUp,"reward")
|
||||
self.btnStore = Util.GetGameObject(self.rightUp,"store")
|
||||
--center
|
||||
self.center = Util.GetGameObject(gameObject,"center")
|
||||
self.icons = Util.GetGameObject(self.center,"icons")
|
||||
--bottom
|
||||
self.bottom = Util.GetGameObject(gameObject,"bottom")
|
||||
self.btnOne = Util.GetGameObject(self.bottom,"btnOne")
|
||||
self.di1 = Util.GetGameObject(self.bottom,"countDown/di1")
|
||||
self.btnTime = Util.GetGameObject(self.bottom,"countDown/di1/time"):GetComponent("Text")
|
||||
self.btnTen1 = Util.GetGameObject(self.bottom,"btnTen1")
|
||||
self.btnTen2 = Util.GetGameObject(self.bottom,"btnTen2")
|
||||
self.btnTimes= Util.GetGameObject(self.bottom,"countDown/di2/time"):GetComponent("Text")
|
||||
--limit
|
||||
self.limit = Util.GetGameObject(gameObject,"limitdi/limit"):GetComponent("Text")
|
||||
--detail
|
||||
self.detail = Util.GetGameObject(gameObject,"detail")
|
||||
--shop
|
||||
self.shop = Util.GetGameObject(gameObject,"shop")
|
||||
self.shopBack = Util.GetGameObject(self.shop,"shopBack/btnBack")
|
||||
self.content = Util.GetGameObject(self.shop,"content")
|
||||
self.livename=nil
|
||||
self.live = Util.GetGameObject(self.shop,"live")
|
||||
self.effect = Util.GetGameObject(self.gameObject, "Effect_UI_changjing_qiankuanbaoguo")
|
||||
end
|
||||
|
||||
function SheJiDaDian:BindEvent()
|
||||
Util.AddClick(self.btnHelp,function()
|
||||
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.QianKunBox,self.helpPosition.x,self.helpPosition.y)
|
||||
end)
|
||||
Util.AddClick(self.btnReward,function()
|
||||
self.effect:SetActive(false)
|
||||
ActivityDetail.new(self.detail,2,self.effect)
|
||||
end)
|
||||
Util.AddClick(self.btnStore,function()
|
||||
self.effect:SetActive(false)
|
||||
self.shop:SetActive(true)
|
||||
self.btnBack:SetActive(false)
|
||||
self.tabList:SetActive(false)
|
||||
self.bottomBar:SetActive(false)
|
||||
self.livename = "live2d_ui_h_52_xx_pf1"
|
||||
self.liveNode = poolManager:LoadLive(self.livename, self.live.transform, Vector3.New(0.25,0.25,0.25), Vector3.New(123,214,0))
|
||||
self:storeShow()--商店
|
||||
end)
|
||||
Util.AddClick(self.shopBack,function()
|
||||
self.effect:SetActive(true)
|
||||
self.shop:SetActive(false)
|
||||
self.btnBack:SetActive(true)
|
||||
self.tabList:SetActive(true)
|
||||
self.bottomBar:SetActive(true)
|
||||
poolManager:UnLoadLive(self.livename, self.liveNode)
|
||||
self.livename = nil
|
||||
end)
|
||||
end
|
||||
|
||||
function SheJiDaDian:OnShow(sortingOrder,_parent)
|
||||
parent = _parent
|
||||
Util.AddParticleSortLayer(self.effect, sortingOrder - orginLayer)
|
||||
orginLayer = sortingOrder
|
||||
activityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.DynamicAct_Celebration)
|
||||
local array = ConfigManager.GetAllConfigsDataByKey(ConfigName.LotterySetting,"ActivityId",activityId)
|
||||
singleRecruit = array[1]
|
||||
tenRecruit = array[2]
|
||||
iconsData = ConfigManager.GetAllConfigsDataByKey(ConfigName.LotteryRewardConfig,"Pool",singleRecruit.DiamondBoxContain[1][1])
|
||||
self.gameObject:SetActive(true)
|
||||
self:refreshMagicNum()
|
||||
self:refreshBtnShow()--刷新按钮显示
|
||||
|
||||
self:timeCountDown()--时间
|
||||
|
||||
end
|
||||
|
||||
function SheJiDaDian:refreshBtnShow()
|
||||
|
||||
local freeTimesId=lotterySetting[singleRecruit.Id].FreeTimes
|
||||
local maxtimesId=lotterySetting[singleRecruit.Id].MaxTimes --lotterySetting表中的MaxTimes对应privilegeConfig表中的id
|
||||
local curTimes=PrivilegeManager.GetPrivilegeUsedTimes(maxtimesId)
|
||||
local freeTime= 0
|
||||
self.limit.text = Language[12225]..curTimes.."/"..privilegeConfig[maxtimesId].Condition[1][2]
|
||||
self.di1:SetActive(true)
|
||||
if freeTimesId>0 then
|
||||
freeTime= PrivilegeManager.GetPrivilegeRemainValue(freeTimesId)
|
||||
RecruitManager.freeUseTimeList[freeTimesId]=freeTime
|
||||
end
|
||||
|
||||
--按钮赋值
|
||||
for n, m in ipairs(btns) do
|
||||
local btn=Util.GetGameObject(self.gameObject,m.name)
|
||||
local redPot=Util.GetGameObject(btn.gameObject,"redPoint")
|
||||
local info=Util.GetGameObject(btn.gameObject,"layout/info"):GetComponent("Text")
|
||||
local icon=Util.GetGameObject(btn.gameObject,"layout/icon"):GetComponent("Image")
|
||||
local num=Util.GetGameObject(btn.gameObject,"layout/num"):GetComponent("Text")
|
||||
|
||||
--存在免费次数 并且 免费>=1 并且是1按钮
|
||||
local isFree=freeTime and freeTime >= 1 and n==bType.Btn1
|
||||
redPot.gameObject:SetActive(isFree)
|
||||
icon.gameObject:SetActive(not isFree)
|
||||
num.gameObject:SetActive(not isFree)
|
||||
if n==bType.Btn1 and isFree then
|
||||
self.di1:SetActive(false)
|
||||
end
|
||||
|
||||
|
||||
local itemId=0
|
||||
local itemNum=0
|
||||
local type = 0
|
||||
if n==bType.Btn1 then
|
||||
type = singleRecruit.Id
|
||||
else
|
||||
type = tenRecruit.Id
|
||||
end
|
||||
local d=RecruitManager.GetExpendData(type)
|
||||
if(isFree) then
|
||||
info.text=Language[11759]
|
||||
else
|
||||
itemId=d[1]
|
||||
itemNum=d[2]
|
||||
-- LogPink("itemId:"..itemId.." itemNum:"..itemNum)
|
||||
icon.sprite=Util.LoadSprite(artResourcesConfig[itemConfig[itemId].ResourceID].Name)
|
||||
info.text=m.isInfo
|
||||
num.text= tostring(itemNum)
|
||||
end
|
||||
|
||||
Util.AddOnceClick(btn,function()
|
||||
if not isFree then
|
||||
if BagManager.GetItemCountById(itemId)<d[2] then
|
||||
PopupTipPanel.ShowTip(itemConfig[itemId].Name..Language[10492])
|
||||
return
|
||||
end
|
||||
end
|
||||
local state = PlayerPrefs.GetInt(PlayerManager.uid.."GeneralPopup_RecruitConfirm"..RecruitType.QianKunBoxTen)
|
||||
if n==bType.Btn1 then
|
||||
if PrivilegeManager.GetPrivilegeUsedTimes(maxtimesId)+1>privilegeConfig[maxtimesId].Condition[1][2] then
|
||||
PopupTipPanel.ShowTip(Language[11760])
|
||||
return
|
||||
end
|
||||
local recruitOne = function()
|
||||
RecruitManager.RecruitRequest(singleRecruit.Id, function(msg)
|
||||
PrivilegeManager.RefreshPrivilegeUsedTimes(maxtimesId,1)--记录抽卡次数
|
||||
UIManager.OpenPanel(UIName.QianKunBoxBuyOnePanel, msg.drop,singleRecruit.Id)
|
||||
CheckRedPointStatus(RedPointType.SheJiDaDian)
|
||||
end,freeTimesId)
|
||||
end
|
||||
if state==0 and d[1] ==16 and not isFree then
|
||||
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.RecruitConfirm,singleRecruit.Id,recruitOne)
|
||||
else
|
||||
recruitOne()
|
||||
end
|
||||
elseif n==bType.Btn10 then
|
||||
if PrivilegeManager.GetPrivilegeUsedTimes(maxtimesId)+10>privilegeConfig[maxtimesId].Condition[1][2] then
|
||||
PopupTipPanel.ShowTip(Language[11760])
|
||||
return
|
||||
end
|
||||
local recruitTen = function()
|
||||
RecruitManager.RecruitRequest(tenRecruit.Id, function(msg)
|
||||
PrivilegeManager.RefreshPrivilegeUsedTimes(maxtimesId,10)--记录抽卡次数
|
||||
UIManager.OpenPanel(UIName.QianKunBoxBuyTenPanel, msg.drop,tenRecruit.Id)
|
||||
CheckRedPointStatus(RedPointType.SheJiDaDian)
|
||||
end,freeTimesId)
|
||||
end
|
||||
if state==0 and d[1] ==16 and not isFree then
|
||||
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.RecruitConfirm,tenRecruit.Id,recruitTen)
|
||||
else
|
||||
recruitTen()
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
--商店
|
||||
function SheJiDaDian:storeShow()
|
||||
if not self.shopView then
|
||||
self.shopView = SubUIManager.Open(SubUIConfig.ShopView, self.content.transform)
|
||||
end
|
||||
self.shopView:ShowShop(SHOP_TYPE.QIANKUNBOX_SHOP,orginLayer)
|
||||
end
|
||||
|
||||
--时间
|
||||
function SheJiDaDian:timeCountDown()
|
||||
local timeDown=CalculateSecondsNowTo_N_OClock(5)--领取按钮的倒计时
|
||||
self.btnTime.text = TimeToHMS(timeDown)
|
||||
-- self.shopData = ShopManager.GetShopDataByType(SHOP_TYPE.QIANKUNBOX_SHOP)--获取活动信息
|
||||
self.shopData =ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.SheJiDaDian)
|
||||
self.leftUpTime.text = self:TimeToDHMS(self.shopData.endTime - PlayerManager.serverTime)--活动结束的倒计时
|
||||
self.timer = Timer.New(function()
|
||||
self.leftUpTime.text = self:TimeToDHMS(self.shopData.endTime - PlayerManager.serverTime)
|
||||
self.btnTime.text = TimeToHMS(timeDown)
|
||||
if timeDown < 1 then
|
||||
self.timer:Stop()
|
||||
self.timer = nil
|
||||
parent:ClosePanel()
|
||||
return
|
||||
end
|
||||
timeDown = timeDown -1
|
||||
end, 1, -1, true)
|
||||
self.timer:Start()
|
||||
end
|
||||
|
||||
--- 将一段时间转换为天时分秒
|
||||
function SheJiDaDian:TimeToDHMS(second)
|
||||
local day = math.floor(second / (24 * 3600))
|
||||
local minute = math.floor(second / 60) % 60
|
||||
local sec = second % 60
|
||||
local hour = math.floor(math.floor(second - day * 24 * 3600 - sec - minute * 60) / 3600)
|
||||
if day <= 0 and hour <= 0 then
|
||||
return string.format(Language[12231],minute, sec)
|
||||
else
|
||||
return string.format(Language[12232],day, hour)
|
||||
end
|
||||
end
|
||||
|
||||
function SheJiDaDian:refreshMagicNum()
|
||||
local actData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.SheJiDaDian)
|
||||
local d = ConfigManager.GetAllConfigsDataByKey(ConfigName.LotterySpecialConfig,"Type",singleRecruit.MergePool)
|
||||
self.leftUptips1.text = d[1].Count-math.floor(actData.value/1000)
|
||||
self.btnTimes.text = tostring(d[2].Count-actData.value%1000)..Language[12264]
|
||||
self.midDowntips1.text = Language[12239]
|
||||
end
|
||||
|
||||
function SheJiDaDian:OnSortingOrderChange(_sortingOrder)
|
||||
orginLayer = _sortingOrder
|
||||
end
|
||||
|
||||
function SheJiDaDian:OnHide()
|
||||
self.gameObject:SetActive(false)
|
||||
self.detail.gameObject:SetActive(false)
|
||||
if self.timer then
|
||||
self.timer:Stop()
|
||||
self.timer = nil
|
||||
end
|
||||
if self.shopView then
|
||||
self.shopView = SubUIManager.Close(self.shopView)
|
||||
self.shopView = nil
|
||||
end
|
||||
end
|
||||
|
||||
--添加事件监听(用于子类重写)
|
||||
function SheJiDaDian:AddListener()
|
||||
|
||||
end
|
||||
|
||||
--移除事件监听(用于子类重写)
|
||||
function SheJiDaDian:RemoveListener()
|
||||
|
||||
end
|
||||
|
||||
return SheJiDaDian
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f8eca17b581a0f2469022ff408179dee
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Reference in New Issue