This commit is contained in:
puxuan 2025-08-20 17:44:03 +08:00
parent afc8818849
commit 3824222f1c
11 changed files with 83 additions and 48 deletions

View File

@ -671,6 +671,8 @@ local LocalizationGlobalConst =
HERO_DESC_18 = "HERO_DESC_18",
HERO_DESC_19 = "HERO_DESC_19",
HERO_DESC_20 = "HERO_DESC_20",
SUMMON_DESC_3 = "SUMMON_DESC_3",
SUMMON_DESC_4 = "SUMMON_DESC_4",
}
return LocalizationGlobalConst

View File

@ -671,6 +671,8 @@ local localization_global =
["HERO_DESC_18"] = "去升级",
["HERO_DESC_19"] = "星级达到{0}",
["HERO_DESC_20"] = "可继续升级",
["SUMMON_DESC_3"] = "在[高级招聘]中,如果连续49次没有获得传说快递员,则第50次必 当获得传说快递员;且在[高级招聘]中获得任意传说快递员时,该",
["SUMMON_DESC_4"] = "概率预览",
}
return localization_global

View File

@ -36,10 +36,10 @@ local skill = {
["desc"]="光合特工:为团队回复一次生命。"
},
[3500120]={
["desc"]="快递仙人额外造成4次大量技能伤害。"
["desc"]="树懒镖师额外造成4次技能伤害。"
},
[3500220]={
["desc"]="树懒镖师额外造成4次技能伤害。"
["desc"]="快递仙人额外造成4次大量技能伤害。"
},
[4300120]={
["desc"]="气泡柴犬:额外造成一次技能伤害。"
@ -48,10 +48,10 @@ local skill = {
["desc"]="海的女儿:额外造成一次技能伤害。"
},
[4500120]={
["desc"]="冰鲜队长:额外造成一次技能伤害,附加<color=#3cff28><u>腐败</u></color><color=#3cff28>1</color>回合。"
["desc"]="外卖天使额外造成4次技能伤害附加<color=#3cff28><u>冰霜</u></color><color=#3cff28>1</color>回合。"
},
[4500220]={
["desc"]="外卖天使额外造成4次技能伤害附加<color=#3cff28><u>冰霜</u></color><color=#3cff28>1</color>回合。"
["desc"]="冰鲜队长:额外造成一次技能伤害,附加<color=#3cff28><u>腐败</u></color><color=#3cff28>1</color>回合。"
},
[5300120]={
["desc"]="圣盾卫士:为团队附加一个<color=#3cff28><u>护盾</u></color><color=#3cff28>1</color>回合。"
@ -60,10 +60,10 @@ local skill = {
["desc"]="混沌巫师:额外造成一次技能伤害。"
},
[5500120]={
["desc"]="血族快递伯爵额外造成4次大量技能伤害。"
["desc"]="死灵法师额外造成4次大量技能伤害。"
},
[5500220]={
["desc"]="死灵法师额外造成4次大量技能伤害。"
["desc"]="血族快递伯爵额外造成4次大量技能伤害。"
},
[10015]={
["desc"]="每2回合恢复生命"

View File

@ -333,9 +333,8 @@ GConst.QUALITY_TYPE =
[2] = "#A3FF94",
[3] = "#4DFFF5",
[4] = "#FA79FF",
[5] = "#FFEE79",
[6] = "#FFAC40",
[7] = "#FF5050",
[5] = "#F3A345",
[6] = "#F34545",
}
GConst.QUALITY_COLOR = {

View File

@ -54,7 +54,7 @@ function SummonManager:onForceSummonRsp(result)
-- DataManager.ForceData:setForceIsNew(reward.item.id, false)
-- end
if guarantee1 then
if DataManager.HeroData:getHeroQlt(reward.item.id) == 4 then
if DataManager.HeroData:getHeroQlt(reward.item.id) == 5 then
DataManager.SummonData:setSummonTrigger(result.reqData.id, true)
else
DataManager.SummonData:setSummonTrigger(result.reqData.id, false)

View File

@ -186,8 +186,8 @@ function MainComp:refreshChapter(force)
-- self:doMonsterAction()
self:refreshChapterBtn()
self.leftBtn:setActive(ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.IDLE_DROP, false))
self.rightBtn:setActive(ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.SUMMON_OPEN, false))
self.leftBtn:setActive(ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.IDLE_DROP, true))
self.rightBtn:setActive(ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.SUMMON_OPEN, true))
end
function MainComp:refreshChapterBg()

View File

@ -34,8 +34,8 @@ function SummonBallCell:refresh(wishHeroId, heroId, callback, select)
-- self.icon:setSprite(GConst.ATLAS_PATH.ICON_HERO, cfg.icon)
-- self.heroBg:setSprite(GConst.ATLAS_PATH.HERO, GConst.FRAME_QLT[cfg.qlt])
self.heroBg:setSprite(GConst.ATLAS_PATH.UI_SUMMON, "summon_card_" .. (cfg.qlt - 2))
self.heroDec:setSprite(GConst.ATLAS_PATH.HERO, GConst.HERO_DEC_QLT[cfg.qlt])
self.heroBg:setSprite(GConst.ATLAS_PATH.UI_SUMMON, "summon_card_" .. cfg.qlt)
self.heroDec:setSprite(GConst.ATLAS_PATH.ICON_HERO, GConst.HERO_DEC_QLT[cfg.qlt])
self.matchImg:setSprite(GConst.ATLAS_PATH.ICON_HERO, GConst.HeroConst.MATCH_ICON_NAME[cfg.position])
self.nameTx:setText(ModuleManager.HeroManager:getHeroName(heroId))
@ -71,8 +71,8 @@ function SummonBallCell:refreshInfo(heroId)
self.heroId = heroId
local cfg = DataManager.HeroData:getHeroConfig(heroId)
-- self.icon:setSprite(GConst.ATLAS_PATH.ICON_HERO, cfg.icon)
self.heroBg:setSprite(GConst.ATLAS_PATH.UI_SUMMON, "summon_card_" .. (cfg.qlt - 2))
self.heroDec:setSprite(GConst.ATLAS_PATH.HERO, GConst.HERO_DEC_QLT[cfg.qlt])
self.heroBg:setSprite(GConst.ATLAS_PATH.UI_SUMMON, "summon_card_" .. cfg.qlt)
self.heroDec:setSprite(GConst.ATLAS_PATH.ICON_HERO, GConst.HERO_DEC_QLT[cfg.qlt])
self.matchImg:setSprite(GConst.ATLAS_PATH.ICON_HERO, GConst.HeroConst.MATCH_ICON_NAME[cfg.position])
self.nameTx:setText(ModuleManager.HeroManager:getHeroName(heroId))

View File

@ -189,7 +189,7 @@ function SummonMainUI:onLoadRootComplete()
end
end)
self:bind(DataManager.SummonData, "isDirty", function()
self:refreshWishBtn()
self:onRefresh()
end)
-- self:bind(DataManager.ActTimeData, "isDirty", function()
-- self:onRefresh()
@ -405,8 +405,8 @@ function SummonMainUI:onSummonRsp(result, newForce)
if self.isJumpTween or self.selectSpineId ~= 1 then
ModuleManager.SummonManager:showSummonRewardUI({
rewards = self.summonResult.rewards,
callback = function(count)
self:onSummon(count)
callback = function(count, isAd)
self:onSummon(count, isAd)
end,
newForce = newForce,
page = self.page

View File

@ -17,8 +17,8 @@ end
function SummonOddsUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
uiMap["summon_odds_ui.bg.tx_title"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_FORCE_3))
uiMap["summon_odds_ui.bg.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_FORCE_3))
uiMap["summon_odds_ui.bg.tx_title"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_DESC_4))
uiMap["summon_odds_ui.bg.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_DESC_3))
self.content = uiMap["summon_odds_ui.bg.target_node.bg.scrollrect.viewport.content"]
self.layout_content = self.content:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
@ -45,7 +45,8 @@ function SummonOddsUI:onRefresh()
local shows = DataManager.SummonData:getSummonShow(self.page)
self.shadowObjs = {}
self.layoutObjs = {}
for i, data in pairs(shows) do
for i = #shows, 1, -1 do
local data = shows[i]
local shadowObj = CS.UnityEngine.Object.Instantiate(self.title:getGameObject())
local title_item = UIPrefabObject:create()
title_item:initWithPrefab(GConst.EMPTY_STRING, shadowObj)
@ -60,13 +61,16 @@ function SummonOddsUI:onRefresh()
-- local bg = uiMap["title.bg"]
-- local txName = uiMap["title.bg.tx_name"]
-- bg:setSprite(GConst.ATLAS_PATH.UI_SUMMON, "summon_bg_" .. data[1])
local str
if i == 1 then
descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_3) .. data[2] / 100 .. "%")
str = I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_3) .. data[2] / 100 .. "%"
elseif i == 2 then
descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_4) .. data[2] / 100 .. "%")
str = I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_4) .. data[2] / 100 .. "%"
else
descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_5) .. data[2] / 100 .. "%")
str = I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_5) .. data[2] / 100 .. "%"
end
local str = string.format("<color=%s>%s</color>", GConst.QUALITY_TYPE[i + 2], str)
descTx:setText(str)
-- descTx:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_GET_DESC_3, data[2] / 100))
local layoutObj = CS.UnityEngine.Object.Instantiate(self.layout:getGameObject())
local layout_item = UIPrefabObject:create()

View File

@ -60,9 +60,15 @@ function SummonRewardUI:onLoadRootComplete()
self.txOne = uiMap["summon_reward_ui.btn_summon_one.text"]
self.txNumOne = uiMap["summon_reward_ui.btn_summon_one.cost.tx_num_one"]
self.imgSummonOneIcon = uiMap["summon_reward_ui.btn_summon_one.cost.img_icon_1"]
self.btnSummonFree = uiMap["summon_reward_ui.bg.btn_summon_free"]
self.btnSummonFreeTx = uiMap["summon_reward_ui.bg.btn_summon_free.text_free"]
self.btnSummonAd = uiMap["summon_reward_ui.bg.btn_summon_ad"]
self.btnSummonAdTx = uiMap["summon_reward_ui.bg.btn_summon_ad.desc_tx"]
self.txTen:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_TEN))
self.txOne:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_ONE))
self.btnSummonFreeTx:setText(I18N:getGlobalText(I18N.GlobalConst.FREE_DESC_1))
self.btnSummonAdTx:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_DESC_1))
self.btnSummonTen:addClickListener(function()
self:closeUI()
@ -72,6 +78,12 @@ function SummonRewardUI:onLoadRootComplete()
self:closeUI()
self.callback(1)
end)
self.btnSummonAd:addClickListener(function()
self:closeUI()
SDKManager:showFullScreenAds(BIReport.ADS_CLICK_TYPE.SUMMON_AD, function()
self.callback(1, true)
end)
end)
end
function SummonRewardUI:setCellEffectOrder(cell)
local effects = cell:getEffectQlts()
@ -87,31 +99,37 @@ function SummonRewardUI:onClose()
end
function SummonRewardUI:refreshSummonBtn()
local freeCount = DataManager.SummonData:getSummonFreeCount(self.page)
local adCount = DataManager.SummonData:getSummonAdCount(self.page)
local itemCost = DataManager.SummonData:getSummonItemCost(self.page)
local costId = GFunc.getRewardId(itemCost)
local costNum = GFunc.getRewardNum(itemCost)
local count = DataManager.BagData.ItemData:getItemNumById(costId)
local obj = DataManager.BagData.ItemData:getItemById(costId)
local cost = DataManager.SummonData:getSummonGemCost(self.page)
if count >= 1 then
self.txNumOne:setText(1)
self.btnSummonOne:addRedPoint(100, 30, 0.6)
else
self.btnSummonOne:removeRedPoint()
if cost then
local costGemNum = GFunc.getRewardNum(cost)
if count == 0 and GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, costGemNum, false) then
self.txNumOne:setText(costGemNum)
obj = DataManager.BagData.ItemData:getItemById(GConst.ItemConst.ITEM_ID_GEM)
self.btnSummonAd:setActive(adCount > 0)
self.btnSummonFree:setActive(freeCount > 0)
self.btnSummonOne:setActive(freeCount <= 0)
if freeCount <= 0 then
if count >= 1 then
self.txNumOne:setText(1)
self.btnSummonOne:addRedPoint(100, 30, 0.6)
else
self.btnSummonOne:removeRedPoint()
if cost then
local costGemNum = GFunc.getRewardNum(cost)
if count == 0 and GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, costGemNum, false) then
self.txNumOne:setText(costGemNum)
obj = DataManager.BagData.ItemData:getItemById(GConst.ItemConst.ITEM_ID_GEM)
else
self.txNumOne:setText("<color=#EC3636>1</color>")
end
else
self.txNumOne:setText("<color=#EC3636>1</color>")
end
else
self.txNumOne:setText("<color=#EC3636>1</color>")
end
end
self.imgSummonOneIcon:setSprite(obj:getIconRes())
end
self.imgSummonOneIcon:setSprite(obj:getIconRes())
obj = DataManager.BagData.ItemData:getItemById(costId)
if count >= 10 then
@ -200,6 +218,7 @@ function SummonRewardUI:onRefresh()
end
self:refreshSummonBtn()
end
function SummonRewardUI:doUITweenShake(delayTime)
if self.shakeSeq then
self.shakeSeq:Kill()

View File

@ -36,14 +36,23 @@ end
function SummonData:initData(data)
self.summonDataMap = {}
for k,v in pairs(data) do
self.summonDataMap[k] = {}
self.summonDataMap[k].freeCount = v.free_count
self.summonDataMap[k].adCount = v.ad_count
self.summonDataMap[k].statCount = v.stat_count
self.summonDataMap[k].triggerCount = v.trigger_count
self.summonDataMap[k].wishId = v.wish_id
self.summonDataMap[k].wishCount = v.wish_count
for i = 1, 2 do
self.summonDataMap[i] = {}
if data[i] then
self.summonDataMap[i].freeCount = data[i].free_count
self.summonDataMap[i].adCount = data[i].ad_count
self.summonDataMap[i].statCount = data[i].stat_count
self.summonDataMap[i].triggerCount = data[i].trigger_count
self.summonDataMap[i].wishId = data[i].wish_id
self.summonDataMap[i].wishCount = data[i].wish_count
else
self.summonDataMap[i].freeCount = 0
self.summonDataMap[i].adCount = 0
self.summonDataMap[i].statCount = 0
self.summonDataMap[i].triggerCount = 0
self.summonDataMap[i].wishId = 0
self.summonDataMap[i].wishCount = 0
end
end
-- int64 free_count = 1; // 今日免费次数
-- int64 ad_count = 2; // 今日广告免费次数