Merge branch 'dev' of git.juzugame.com:b6-client/b6-lua into dev

This commit is contained in:
CloudJ 2023-05-31 15:41:44 +08:00
commit 44a7937320
22 changed files with 291 additions and 217 deletions

View File

@ -89,6 +89,7 @@ setmetatable(ModuleManager, MODULE_METATABLE)
function ModuleManager:init()
ModuleManager.TaskManager:init()
ModuleManager.DailyChallengeManager:init()
end
-- 功能是否开启

View File

@ -1,6 +1,6 @@
local recharge = {
[1]={
["payId"]="com.idle.ko.io.0.99dollar",
["payId"]="com.knight.connect.rpg.0.99dollar",
["price"]=0.99,
["price_cn"]=6,
["same_price"]=1,
@ -8,7 +8,7 @@ local recharge = {
["score"]=1
},
[2]={
["payId"]="com.idle.ko.io.1.99dollar",
["payId"]="com.knight.connect.rpg.1.99dollar",
["price"]=1.99,
["price_cn"]=12,
["same_price"]=2,
@ -16,7 +16,7 @@ local recharge = {
["score"]=2
},
[3]={
["payId"]="com.idle.ko.io.2.99dollar",
["payId"]="com.knight.connect.rpg.2.99dollar",
["price"]=2.99,
["price_cn"]=18,
["same_price"]=3,
@ -24,7 +24,7 @@ local recharge = {
["score"]=3
},
[4]={
["payId"]="com.idle.ko.io.3.99dollar",
["payId"]="com.knight.connect.rpg.3.99dollar",
["price"]=3.99,
["price_cn"]=24,
["same_price"]=4,
@ -32,7 +32,7 @@ local recharge = {
["score"]=4
},
[5]={
["payId"]="com.idle.ko.io.4.99dollar",
["payId"]="com.knight.connect.rpg.4.99dollar",
["price"]=4.99,
["price_cn"]=30,
["same_price"]=5,
@ -40,7 +40,7 @@ local recharge = {
["score"]=5
},
[6]={
["payId"]="com.idle.ko.io.5.99dollar",
["payId"]="com.knight.connect.rpg.5.99dollar",
["price"]=5.99,
["price_cn"]=38,
["same_price"]=6,
@ -48,7 +48,7 @@ local recharge = {
["score"]=6
},
[7]={
["payId"]="com.idle.ko.io.6.99dollar",
["payId"]="com.knight.connect.rpg.6.99dollar",
["price"]=6.99,
["price_cn"]=45,
["same_price"]=7,
@ -56,7 +56,7 @@ local recharge = {
["score"]=7
},
[8]={
["payId"]="com.idle.ko.io.7.99dollar",
["payId"]="com.knight.connect.rpg.7.99dollar",
["price"]=7.99,
["price_cn"]=52,
["same_price"]=8,
@ -64,7 +64,7 @@ local recharge = {
["score"]=8
},
[9]={
["payId"]="com.idle.ko.io.8.99dollar",
["payId"]="com.knight.connect.rpg.8.99dollar",
["price"]=8.99,
["price_cn"]=60,
["same_price"]=9,
@ -72,7 +72,7 @@ local recharge = {
["score"]=9
},
[10]={
["payId"]="com.idle.ko.io.9.99dollar",
["payId"]="com.knight.connect.rpg.9.99dollar",
["price"]=9.99,
["price_cn"]=68,
["same_price"]=10,
@ -80,7 +80,7 @@ local recharge = {
["score"]=10
},
[11]={
["payId"]="com.idle.ko.io.11.99dollar",
["payId"]="com.knight.connect.rpg.11.99dollar",
["price"]=11.99,
["price_cn"]=78,
["same_price"]=12,
@ -88,7 +88,7 @@ local recharge = {
["score"]=12
},
[12]={
["payId"]="com.idle.ko.io.14.99dollar",
["payId"]="com.knight.connect.rpg.14.99dollar",
["price"]=14.99,
["price_cn"]=98,
["same_price"]=15,
@ -96,7 +96,7 @@ local recharge = {
["score"]=15
},
[13]={
["payId"]="com.idle.ko.io.19.99dollar",
["payId"]="com.knight.connect.rpg.19.99dollar",
["price"]=19.99,
["price_cn"]=128,
["same_price"]=20,
@ -104,7 +104,7 @@ local recharge = {
["score"]=20
},
[14]={
["payId"]="com.idle.ko.io.24.99dollar",
["payId"]="com.knight.connect.rpg.24.99dollar",
["price"]=24.99,
["price_cn"]=168,
["same_price"]=25,
@ -112,7 +112,7 @@ local recharge = {
["score"]=25
},
[15]={
["payId"]="com.idle.ko.io.29.99dollar",
["payId"]="com.knight.connect.rpg.29.99dollar",
["price"]=29.99,
["price_cn"]=198,
["same_price"]=30,
@ -120,7 +120,7 @@ local recharge = {
["score"]=30
},
[16]={
["payId"]="com.idle.ko.io.49.99dollar",
["payId"]="com.knight.connect.rpg.49.99dollar",
["price"]=49.99,
["price_cn"]=328,
["same_price"]=50,
@ -128,7 +128,7 @@ local recharge = {
["score"]=50
},
[17]={
["payId"]="com.idle.ko.io.69.99dollar",
["payId"]="com.knight.connect.rpg.69.99dollar",
["price"]=69.99,
["price_cn"]=448,
["same_price"]=70,
@ -136,7 +136,7 @@ local recharge = {
["score"]=70
},
[18]={
["payId"]="com.idle.ko.io.99.99dollar",
["payId"]="com.knight.connect.rpg.99.99dollar",
["price"]=99.99,
["price_cn"]=648,
["same_price"]=100,
@ -144,7 +144,7 @@ local recharge = {
["score"]=100
},
[19]={
["payId"]="com.idle.ko.io.199.99dollar",
["payId"]="com.knight.connect.rpg.199.99dollar",
["price"]=199.99,
["price_cn"]=1298,
["same_price"]=200,

View File

@ -1231,11 +1231,11 @@ local skill = {
["skill_type"]=4,
["boardrange"]={
{
["type"]=3,
["type"]=1,
["range"]=2
},
{
["type"]=4,
["type"]=2,
["range"]=2
}
},
@ -2623,7 +2623,7 @@ local skill = {
},
{
["type"]="poison",
["num"]=5000,
["num"]=2500,
["ratio"]=5000,
["round"]=2
}
@ -2710,7 +2710,7 @@ local skill = {
},
{
["type"]="poison",
["num"]=5000,
["num"]=2500,
["ratio"]=10000,
["round"]=2
}
@ -2886,7 +2886,7 @@ local skill = {
["effect"]={
{
["type"]="vulnerable",
["num"]=3500,
["num"]=2500,
["ratio"]=10000,
["round"]=2
}
@ -3868,7 +3868,7 @@ local skill = {
["effect"]={
{
["type"]="poison",
["num"]=5000,
["num"]=2500,
["ratio"]=1000,
["round"]=2
}
@ -4011,7 +4011,7 @@ local skill = {
["effect"]={
{
["type"]="poison",
["num"]=5000,
["num"]=2500,
["ratio"]=10000,
["round"]=2
}
@ -4039,7 +4039,7 @@ local skill = {
["effect"]={
{
["type"]="poison",
["num"]=10000,
["num"]=5000,
["ratio"]=10000,
["round"]=2
}
@ -4850,7 +4850,7 @@ local skill = {
},
{
["type"]="poison",
["num"]=5000,
["num"]=2500,
["ratio"]=10000,
["round"]=2
}
@ -5598,9 +5598,9 @@ local skill = {
},
{
["type"]="poison",
["num"]=5000,
["num"]=2500,
["ratio"]=10000,
["round"]=2
["round"]=3
}
},
["obj"]=2,
@ -6406,7 +6406,7 @@ local skill = {
},
{
["type"]="poison",
["num"]=5000,
["num"]=2500,
["ratio"]=10000,
["round"]=2
}

View File

@ -1919,19 +1919,11 @@ local skill_rogue = {
["boardrange"]={
{
["type"]=1,
["range"]=1
["range"]=2
},
{
["type"]=2,
["range"]=1
},
{
["type"]=3,
["range"]=1
},
{
["type"]=4,
["range"]=1
["range"]=2
}
},
["icon"]="82"

View File

@ -357,7 +357,7 @@ local skill_rogue = {
["desc"]="急速治疗使用时本次普攻伤害提升<color=#3cff28>15%</color>。"
},
[3300103]={
["desc"]="急速治疗沿+方向可额外消除<color=#3cff28>4</color>格。"
["desc"]="急速治疗向可额外消除<color=#3cff28>4</color>格。"
},
[3300104]={
["desc"]="急速治疗额外为团队提供技能伤害提升效果,<color=#3cff28>2</color>回合。"

View File

@ -1677,6 +1677,15 @@ function GFunc.recycleTempMap()
end
end
-- 获取table长度
function GFunc.getTableLength(table)
local length = 0
for k, v in pairs(table) do
length = length + 1
end
return length
end
--[[
tabLe只速 Lua error
locaL readOnlyCfg = GFunc.readOnlyTab(cfg) return readOnlyCfg

View File

@ -763,7 +763,7 @@ BattleConst.BATTLE_TASK_FIELD = {
LINK_COUNT_OVER_6 = "clear_6_combo", -- 6连消个数
LINK_COUNT_OVER_8 = "clear_8_combo", -- 8连消个数
COMBO_OVER_10 = "clear_10_hit", -- 10连击以上次数
BOARD_SKILL_RELEASE_COUNT = "skills_cast", -- 释放技能次数
BOARD_SKILL_RELEASE_COUNT = "skill_cast", -- 释放技能次数
PASS_WAVE = "pass_wave", -- 通关波数
}

View File

@ -124,7 +124,7 @@ function BattleControllerStage:getInitBoard()
if config.mystery_box and config.mystery_box_reward then
for i, index in ipairs(config.mystery_box) do
if not DataManager.ChapterData:getChapterMysteryBoxIsGot(self.chapterId, index) then
if not DataManager.ChapterData:getChapterMysteryBoxIsGot(self.chapterId, i) then
self.mysteryBoxIndexMap[index] = config.mystery_box_reward[i]
end
end

View File

@ -29,12 +29,12 @@ end
local function _bleedOn(buffSender, buff, target, buffEffect)
target.unitEntity:addAttr(buff:getName(), buff:getEffectNum(), false)
return target.unitEntity:addAttr(BattleConst.ATTR_NAME.BE_SUCKED, 1000, false) -- 写死10%
return target.unitEntity:addAttr(BattleConst.ATTR_NAME.BE_SUCKED, 500, false) -- 写死5%
end
local function _bleedOff(buffSender, target, buff, buffEffect)
target.unitEntity:addAttr(buff:getName(), -buff:getEffectNum(), false)
target.unitEntity:addAttr(BattleConst.ATTR_NAME.BE_SUCKED, -1000, false) -- 写死10%
target.unitEntity:addAttr(BattleConst.ATTR_NAME.BE_SUCKED, -500, false) -- 写死5%
return 1
end

View File

@ -404,11 +404,15 @@ function BattleTeam:doBuffWork()
break
end
buffEffect.round = buffEffect.round - 1
BattleBuffHandle.doBuffWork(self.mainUnit, buffEffect)
local target = self.mainUnit
if buffEffect.target then
target = buffEffect.target
end
BattleBuffHandle.doBuffWork(target, buffEffect)
if buffEffect.round <= 0 then
self:updateBuffState(buffEffect.buff, -1)
table.remove(self.buffList, i)
BattleBuffHandle.removeBuff(self.mainUnit, buffEffect)
BattleBuffHandle.removeBuff(target, buffEffect)
end
end
self.battleController:refreshBuff(self.side, self.buffList)

View File

@ -50,10 +50,17 @@ function ChapterManager:startFightFinish(result)
end
function ChapterManager:endFight(id, combatReport, gotMysteryBoxIndexs, taskProgress)
local cfg = ConfigManager:getConfig("chapter")[id]
local mystery_box_idx = {}
if gotMysteryBoxIndexs then
for index, _ in pairs(gotMysteryBoxIndexs) do
table.insert(mystery_box_idx, index)
if gotMysteryBoxIndexs and cfg.mystery_box then
local indexMap = {}
for index, wave in ipairs(cfg.mystery_box) do
indexMap[wave] = index
end
for boardIndex, _ in pairs(gotMysteryBoxIndexs) do
if indexMap[boardIndex] then
table.insert(mystery_box_idx, indexMap[boardIndex])
end
end
end
local parmas = {

View File

@ -1,6 +1,14 @@
local DailyChallengeManager = class("DailyChallengeManager", BaseModule)
function DailyChallengeManager:init()
self:addEventListener(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, function(idx)
DataManager.DailyChallengeData:setShowingMainComp(idx == GConst.MainCityConst.BOTTOM_PAGE.MAIN)
end)
self:addEventListener(EventManager.CUSTOM_EVENT.UI_CLOSE, function(index)
if index == UIManager.UI_PATH.MAINCITY_UI then
DataManager.DailyChallengeData:setShowingMainComp(false)
end
end)
end
function DailyChallengeManager:showBattleBuffUI()
@ -20,9 +28,14 @@ function DailyChallengeManager:checkDayChange()
if not DataManager.DailyChallengeData:getIfCanReset() then
return
end
if not DataManager.DailyChallengeData:isShowingMainComp() then
return
end
-- 跨天了,请求新数据
self:onResetState()
self:performWithDelayGlobal(function()
self:onResetState()
end, math.random())
end
-- 开始挑战
@ -91,10 +104,15 @@ function DailyChallengeManager:endChallengeFinish(result)
end
function DailyChallengeManager:onResetState()
if DataManager.DailyChallengeData:getIsInReset() then
return
end
DataManager.DailyChallengeData:setInReset(true)
self:sendMessage(ProtoMsgType.FromMsgEnum.ChapterDailyChallengeResetReq, {}, {}, self.rspResetState, BIReport.ITEM_GET_TYPE.DAILY_CHALLENGE_RESET)
end
function DailyChallengeManager:rspResetState(result)
DataManager.DailyChallengeData:setInReset(false)
DataManager.DailyChallengeData:init(result.daily_challenge)
end

View File

@ -12,7 +12,8 @@ MainCityConst.BOTTOM_ICON = {
MainCityConst.BOTTOM_CLOSE_ICON = {
}
MainCityConst.BOTTOM_MODULE_KEY = {
-- main界面模块序号是模块从左往右的切换顺序需要是连续的
MainCityConst.MAIN_MODULE = {
DAILY_CHALLENGE = 1,
CHAPTER = 2,
}

View File

@ -125,7 +125,7 @@ function BattleResultUI:refreshRewards()
end)
self.scrollRectComp:addRefreshCallback(function(index, cell)
cell:refresh(self.rewards[index])
cell:showLeftUpIcon(index <= self.mysteryBoxIdx, GConst.ATLAS_PATH.COMMON, "common_chest_1")
cell:showRightUpIcon(index <= self.mysteryBoxIdx, GConst.ATLAS_PATH.COMMON, "common_chest_1")
end)
self.scrollRectComp:setFadeArgs(0.05, 0.3)
self.scrollRectComp:clearCells()

View File

@ -8,7 +8,7 @@ function RewardCell:init()
self.check = uiMap["reward_cell.check"]
self.numTx = uiMap["reward_cell.item_bg.num"]
self.fragment = uiMap["reward_cell.item_bg.fragment"]
self.leftUpIcon = uiMap["reward_cell.item_bg.left_up_icon"]
self.rightUpIcon = uiMap["reward_cell.item_bg.right_up_icon"]
self.sImg = uiMap["reward_cell.item_bg.s"]
self.matchImg = uiMap["reward_cell.item_bg.match_img"]
self.frameAni = uiMap["reward_cell.frame_ani"]
@ -149,12 +149,12 @@ function RewardCell:hideFrameAnimation()
self.frameAni:setVisible(false)
end
function RewardCell:showLeftUpIcon(show, atlas, iconName)
self.leftUpIcon:setVisible(show)
function RewardCell:showRightUpIcon(show, atlas, iconName)
self.rightUpIcon:setVisible(show)
if not show then
return
end
self.leftUpIcon:setSprite(atlas, iconName)
self.rightUpIcon:setSprite(atlas, iconName)
end
return RewardCell

View File

@ -1,4 +1,5 @@
local ChapterComp = class("ChapterComp", LuaComponent)
local MainCompBaseCell = require "app/ui/main_city/component/main_comp_base_cell"
local ChapterComp = class("ChapterComp", MainCompBaseCell)
local CHAPTER_PATH = "assets/arts/textures/background/chapter/%s.png"
local BOX_ICON = {
@ -6,6 +7,26 @@ local BOX_ICON = {
"common_chest_4"
}
function ChapterComp:getIsOpen()
return true
end
function ChapterComp:getEntranceName()
return "主线章节"
end
function ChapterComp:getEntranceIcon()
return GConst.ATLAS_PATH.COMMON,"common_dec_1"
end
function ChapterComp:getHpCost()
return DataManager.ChapterData:getFightCost()
end
function ChapterComp:onClickFight()
ModuleManager.ChapterManager:startFight()
end
function ChapterComp:init()
self.uiMap = self:getBaseObject():genAllChildren()
self:initChapter()
@ -150,7 +171,7 @@ function ChapterComp:refreshChapter(force)
end
end
self.root:refreshFightBtn()
self:refreshFightBtn()
end
end

View File

@ -1,4 +1,33 @@
local DailyChallengeComp = class("DailyChallengeComp", LuaComponent)
local MainCompBaseCell = require "app/ui/main_city/component/main_comp_base_cell"
local DailyChallengeComp = class("DailyChallengeComp", MainCompBaseCell)
function DailyChallengeComp:getIsOpen()
return DataManager.DailyChallengeData:isOpen()
end
function DailyChallengeComp:getEntranceName()
return "每日挑战"
end
function DailyChallengeComp:getEntranceIcon()
return GConst.ATLAS_PATH.MAIN,"main_dec_1"
end
function DailyChallengeComp:getShowEntranceRedPoint()
return DataManager.DailyChallengeData:isMeetChallenge()
end
function DailyChallengeComp:getHpCost()
return DataManager.DailyChallengeData:getChallengeHpCost()
end
function DailyChallengeComp:getTodayRemainCount()
return DataManager.DailyChallengeData:getTodayRemainLimitCount()
end
function DailyChallengeComp:onClickFight()
ModuleManager.DailyChallengeManager:startChallenge()
end
function DailyChallengeComp:ctor()
ModuleManager.DailyChallengeManager:checkDayChange()

View File

@ -2,81 +2,44 @@ local MainComp = class("MainComp", LuaComponent)
local CHAPTER_COMP = "app/ui/main_city/component/chapter_comp"
local DAILY_CHALLENGE_COMP = "app/ui/main_city/component/daily_challenge_comp"
local MODULE_DATA = {
[1] = {
["type"] = GConst.MainCityConst.BOTTOM_MODULE_KEY.DAILY_CHALLENGE,
["title"] = "每日挑战",-- 标题
["atlas"] = GConst.ATLAS_PATH.MAIN,-- 图集路径
["icon"] = "main_dec_1",-- 图片名
["numFunc"] = function()-- 挑战按钮显示数值
return DataManager.DailyChallengeData:getChallengeHpCost()
end,
["clickFunc"] = function()-- 点击回调
ModuleManager.DailyChallengeManager:startChallenge()
end,
["redDot"] = function()-- 显示红点
return DataManager.DailyChallengeData:isMeetChallenge()
end,
["fightNum"] = function()-- 显示今日剩余次数
return DataManager.DailyChallengeData:getTodayRemainLimitCount()
end,
["isClose"] = function()-- 活动开关状态
return not DataManager.DailyChallengeData:isOpen()
end,
},
[2] = {
["type"] = GConst.MainCityConst.BOTTOM_MODULE_KEY.CHAPTER,
["title"] = "主线章节",
["atlas"] = GConst.ATLAS_PATH.COMMON,
["icon"] = "common_dec_1",
["numFunc"] = function()
return DataManager.ChapterData:getFightCost()
end,
["clickFunc"] = function()
ModuleManager.ChapterManager:startFight()
end
}
}
function MainComp:init()
self.uiMap = self:getBaseObject():genAllChildren()
self.curModuleType = GConst.MainCityConst.BOTTOM_MODULE_KEY.CHAPTER
self:refreshModule(GConst.MainCityConst.MAIN_MODULE.CHAPTER)
self:initStageFormation()
self:refreshBtns()
self:refreshModuleComp()
end
function MainComp:refreshModuleComp()
if not self.chapterComp then
function MainComp:refreshModule(selectModule)
if not self.moduleMap then
self.moduleMap = {}
-- 章节
local chapterComp = self.uiMap["main_comp.chapter_comp"]
chapterComp:initPrefabHelper()
chapterComp:genAllChildren()
self.chapterComp = chapterComp:addLuaComponent(CHAPTER_COMP)
self.chapterComp.root = self
end
if not self.dailyChallengeComp then
local chapterComp = self.uiMap["main_comp.chapter_comp"]
self.chapterComp = CellManager:addCellComp(chapterComp, CHAPTER_COMP)
self.chapterComp:initWithParentUI(self)
self.moduleMap[GConst.MainCityConst.MAIN_MODULE.CHAPTER] = self.chapterComp
-- 每日挑战
local dailyChallengeComp = self.uiMap["main_comp.daily_challenge_comp"]
dailyChallengeComp:initPrefabHelper()
dailyChallengeComp:genAllChildren()
dailyChallengeComp:setActive(false)
self.dailyChallengeComp = dailyChallengeComp:addLuaComponent(DAILY_CHALLENGE_COMP)
self.dailyChallengeComp.root = self
self.dailyChallengeComp = CellManager:addCellComp(dailyChallengeComp, DAILY_CHALLENGE_COMP)
self.dailyChallengeComp:initWithParentUI(self)
self.moduleMap[GConst.MainCityConst.MAIN_MODULE.DAILY_CHALLENGE] = self.dailyChallengeComp
end
self.chapterComp:getBaseObject():setActive(false)
self.dailyChallengeComp:getBaseObject():setActive(false)
if self.curModuleType == GConst.MainCityConst.BOTTOM_MODULE_KEY.CHAPTER then
self.chapterComp:getBaseObject():setActive(true)
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.GO_CHAPTER)
elseif self.curModuleType == GConst.MainCityConst.BOTTOM_MODULE_KEY.DAILY_CHALLENGE then
self.dailyChallengeComp:getBaseObject():setActive(true)
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.GO_DAILY_CHALLENGE)
if self.curModuleType ~= selectModule then
self.curModuleType = selectModule
if self.curModuleType == GConst.MainCityConst.MAIN_MODULE.CHAPTER then
-- 切换到主线章节
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.GO_CHAPTER)
elseif self.curModuleType == GConst.MainCityConst.MAIN_MODULE.DAILY_CHALLENGE then
-- 切换到每日挑战
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.GO_DAILY_CHALLENGE)
end
end
for idx, cell in pairs(self.moduleMap) do
cell:getBaseObject():setActive(self.curModuleType == idx)
end
self:refreshBtns()
end
function MainComp:refreshBtns()
@ -86,54 +49,48 @@ function MainComp:refreshBtns()
end
function MainComp:refreshFightBtn()
local module = nil
for type, data in pairs(MODULE_DATA) do
if self.curModuleType == type then
module = data
end
end
if not module then
return
end
local moduleCell = self.moduleMap[self.curModuleType]
self.uiMap["main_comp.fight_btn.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.START_DESC))
local cost = module["numFunc"]()
local cost = moduleCell:getHpCost()
if cost then
self.uiMap["main_comp.fight_btn.desc_2"]:setText(GFunc.getRewardNum(cost))
else
self.uiMap["main_comp.fight_btn.desc_2"]:setText("0")
end
self.uiMap["main_comp.fight_btn"]:addClickListener(module["clickFunc"])
self.uiMap["main_comp.fight_btn"]:addClickListener(moduleCell.onClickFight)
if module["fightNum"] ~= nil then
local remainCount = moduleCell:getTodayRemainCount()
if remainCount >= 0 then
self.uiMap["main_comp.fight_btn.num_tx"]:setActive(true)
self.uiMap["main_comp.fight_btn.num_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, module["fightNum"]()))
self.uiMap["main_comp.fight_btn.num_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, remainCount))
else
self.uiMap["main_comp.fight_btn.num_tx"]:setActive(false)
end
end
function MainComp:refreshLeftBtn()
local module = MODULE_DATA[self:getCurLeftModuleIdx()]
local leftBtn = self.uiMap["main_comp.left_btn"]
leftBtn:setActive(false)
if module == nil then
local leftIdx = self:getCurLeftModuleIdx()
if leftIdx == nil then
return
end
if module["isClose"] and module["isClose"]() then
local moduleCell = self.moduleMap[leftIdx]
if not moduleCell:getIsOpen() then
return
end
leftBtn:setActive(true)
self.uiMap["main_comp.left_btn.desc"]:setText(module["title"])
self.uiMap["main_comp.left_btn.icon"]:setSprite(module["atlas"],module["icon"])
local iconAtlas, iconName = moduleCell:getEntranceIcon()
self.uiMap["main_comp.left_btn.desc"]:setText(moduleCell:getEntranceName())
self.uiMap["main_comp.left_btn.icon"]:setSprite(iconAtlas, iconName)
leftBtn:addClickListener(function()
self.curModuleType = module["type"]
self:refreshBtns()
self:refreshModuleComp()
self:refreshModule(leftIdx)
end)
if module["redDot"] ~= nil and module["redDot"]() then
if moduleCell:getShowEntranceRedPoint() then
leftBtn:addRedPoint(65, 35, 0.6)
else
leftBtn:removeRedPoint()
@ -141,25 +98,26 @@ function MainComp:refreshLeftBtn()
end
function MainComp:refreshRightBtn()
local module = MODULE_DATA[self:getCurRightModuleIdx()]
local rightBtn = self.uiMap["main_comp.right_btn"]
rightBtn:setActive(false)
if module == nil then
local rightIdx = self:getCurRightModuleIdx()
if rightIdx == nil then
return
end
if module["isClose"] and module["isClose"]() then
local moduleCell = self.moduleMap[rightIdx]
if not moduleCell:getIsOpen() then
return
end
rightBtn:setActive(true)
self.uiMap["main_comp.right_btn.desc"]:setText(module["title"])
self.uiMap["main_comp.right_btn.icon"]:setSprite(module["atlas"],module["icon"])
local iconAtlas, iconName = moduleCell:getEntranceIcon()
self.uiMap["main_comp.right_btn.desc"]:setText(moduleCell:getEntranceName())
self.uiMap["main_comp.right_btn.icon"]:setSprite(iconAtlas, iconName)
rightBtn:addClickListener(function()
self.curModuleType = module["type"]
self:refreshBtns()
self:refreshModuleComp()
self:refreshModule(rightIdx)
end)
if module["redDot"] ~= nil and module["redDot"]() then
if moduleCell:getShowEntranceRedPoint() then
rightBtn:addRedPoint(-65, 35, 0.6)
else
rightBtn:removeRedPoint()
@ -167,27 +125,20 @@ function MainComp:refreshRightBtn()
end
function MainComp:getCurLeftModuleIdx()
for idx, data in pairs(MODULE_DATA) do
if self.curModuleType == data["type"] then
if idx == 1 then
return nil
else
return idx - 1
end
end
if self.curModuleType == 1 then
return nil
end
return self.curModuleType - 1
end
function MainComp:getCurRightModuleIdx()
for idx, data in pairs(MODULE_DATA) do
if self.curModuleType == data["type"] then
if idx == #MODULE_DATA then
return nil
else
return idx + 1
end
end
local totalModuleNum = GFunc.getTableLength(GConst.MainCityConst.MAIN_MODULE)
if self.curModuleType == totalModuleNum then
return nil
end
return self.curModuleType + 1
end
function MainComp:initStageFormation()

View File

@ -0,0 +1,43 @@
local MainCompBaseCell = class("MainCompBaseCell", BaseCell)
-- 需要继承重写的部分 ***********************************************************
function MainCompBaseCell:getIsOpen()
return false
end
function MainCompBaseCell:getEntranceName()
return ""
end
function MainCompBaseCell:getEntranceIcon()
return "",""
end
function MainCompBaseCell:getShowEntranceRedPoint()
return false
end
function MainCompBaseCell:getHpCost()
return 0
end
function MainCompBaseCell:getTodayRemainCount()
return -1
end
function MainCompBaseCell:onClickFight()
end
-- 常规逻辑 ***********************************************************
function MainCompBaseCell:initWithParentUI(parentUI)
self.parentUI = parentUI
end
function MainCompBaseCell:refreshFightBtn()
self.parentUI:refreshFightBtn()
end
return MainCompBaseCell

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: ef1793d1eec0aea4a9c6856933a190a5
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -311,6 +311,10 @@ function MainCityUI:refreshBottom(selectedIndex, playAnim)
self.selectedIndex = selectedIndex and selectedIndex or MAIN_COMP_INDEX
self:switchComp()
if oldIndex ~= selectedIndex then
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, self.selectedIndex)
end
-- 动效
if playAnim and (oldIndex ~= selectedIndex) then
local targetX = self.bottomBtnCells[self.selectedIndex]:getCurLocalPosX()
@ -599,7 +603,7 @@ end
function MainCityUI:refreshBounty()
local isOpen = DataManager.BountyData:getIsOpen()
if not isOpen or self.mainComp:getCurModuleType() == GConst.MainCityConst.BOTTOM_MODULE_KEY.DAILY_CHALLENGE then
if not isOpen or self.mainComp:getCurModuleType() == GConst.MainCityConst.MAIN_MODULE.DAILY_CHALLENGE then
self.bountyNode:setVisible(false)
return
end

View File

@ -10,44 +10,15 @@ function DailyChallengeData:ctor()
end
function DailyChallengeData:init(data)
if EDITOR_MODE then
Logger.logHighlight("每日挑战 更新数据...")
end
data = data or GConst.EMPTY_TABLE
Logger.logHighlight("每日挑战 更新数据...")
Logger.printTable(data)
-- data = data or {}
-- data = { -- 临时数据
-- max_wave = 1,
-- today_fixed_chapter_id = 1,
-- rand_chapter_daily_id = 1,
-- tasks = {
-- {
-- task_id = 1,
-- param = 0,
-- progress = 100,
-- claimed = true
-- },
-- {
-- task_id = 3,
-- param = 0,
-- progress = 100,
-- claimed = false
-- },
-- {
-- task_id = 7,
-- param = 12001,
-- progress = 0,
-- claimed = false
-- }
-- },
-- buff_id = {1, 11},
-- totalFightCount = 0,
-- today_challenge_count = 0,
-- }
-- 服务器的初始数据
self.maxWave = data.max_wave or 0
self.fixedChapterId = data.today_fixed_chapter_id or 1
self.chapterDailyId = data.rand_chapter_daily_id or 1
self.tasks = data.tasks or {}
self.buffIds = data.buff_id or {}
self.tasks = data.tasks or GConst.EMPTY_TABLE
self.buffIds = data.buff_id or GConst.EMPTY_TABLE
self.totalFightCount = data.total_challenge_count or 0
self.todayFightCount = data.today_challenge_count or 0
self.initDay = Time:getBeginningOfServerToday()
@ -62,6 +33,14 @@ function DailyChallengeData:onGetedTaskReward(idx)
end
function DailyChallengeData:clear()
self.maxWave = nil
self.fixedChapterId = nil
self.chapterDailyId = nil
self.tasks = nil
self.buffIds = nil
self.totalFightCount = nil
self.todayFightCount = nil
self.initDay = nil
end
function DailyChallengeData:isOpen()
@ -119,14 +98,6 @@ function DailyChallengeData:getMapConfig()
return ConfigManager:getConfig("chapter_daily_challenge")[self:getChapterDailyId()]
end
function DailyChallengeData:getBuffTips(id)
return I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE)
end
function DailyChallengeData:getTaskTips(id)
return I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE)
end
function DailyChallengeData:getTaskCfg()
if self.taskCfg == nil then
self.taskCfg = ConfigManager:getConfig("task_daily_challenge")
@ -311,11 +282,24 @@ function DailyChallengeData:getTotalFightCount()
return self.totalFightCount
end
function DailyChallengeData:dealTask(taskProgressInfo)
end
function DailyChallengeData:getIfCanReset()
return self.initDay < Time:getBeginningOfServerToday()
end
function DailyChallengeData:setShowingMainComp(isShow)
self.showing = isShow
end
function DailyChallengeData:isShowingMainComp()
return self.showing
end
function DailyChallengeData:setInReset(isInReset)
self.isInReset = isInReset
end
function DailyChallengeData:getIsInReset()
return self.isInReset
end
return DailyChallengeData