diff --git a/lua/app/bf/unity/ui_spine_object.lua b/lua/app/bf/unity/ui_spine_object.lua index 1a7643fa..ab3950be 100644 --- a/lua/app/bf/unity/ui_spine_object.lua +++ b/lua/app/bf/unity/ui_spine_object.lua @@ -51,6 +51,12 @@ function UISpineObject:playAnim(animName, loop, forceRefresh, forceGetSG) end end +function UISpineObject:setSkin(skinName) + self.skeletonGraphic.initialSkinName = skinName + self.skeletonGraphic:Initialize(true) + self:getAnimationState(true) +end + function UISpineObject:getAnimationKeyFrameTime(animName) if not self.animationKeyFrameTime then self.animationKeyFrameTime = {} diff --git a/lua/app/config/localization/localization_global_const.lua b/lua/app/config/localization/localization_global_const.lua index 7bb4bf9a..82f56f54 100644 --- a/lua/app/config/localization/localization_global_const.lua +++ b/lua/app/config/localization/localization_global_const.lua @@ -307,6 +307,9 @@ local LocalizationGlobalConst = ARENA_DESC_30 = "ARENA_DESC_30", ARENA_DESC_31 = "ARENA_DESC_31", ARENA_DESC_HELP = "ARENA_DESC_HELP", + RATE_DESC_1 = "RATE_DESC_1", + RATE_DESC_2 = "RATE_DESC_2", + ARENA_DESC_32 = "ARENA_DESC_32", } return LocalizationGlobalConst \ No newline at end of file diff --git a/lua/app/config/strings/cn/global.lua b/lua/app/config/strings/cn/global.lua index 0f9c0701..bb363836 100644 --- a/lua/app/config/strings/cn/global.lua +++ b/lua/app/config/strings/cn/global.lua @@ -307,6 +307,9 @@ local localization_global = ["ARENA_DESC_30"] = "竞技场新赛季开启,请更新游戏再进入!", ["ARENA_DESC_31"] = "竞技场结算开始,暂停挑战!", ["ARENA_DESC_HELP"] = "1.竞技场为赛季周期制,每个赛季结束后将重置竞技场并发放上一赛季段位奖励。\n2.竞技场结算将在结束当日的23点30分(UTC-0)开始结算,结算时长为30分钟,结算期间为防止竞技场记录员受到干扰,竞技场将无法进行挑战,请各位骑士见谅。\n3.结算后,所有骑士团将重置为当前段位的最低段位阶段。如果前一赛季挑战不足10次,则重置为上一段位的最低阶段。", + ["RATE_DESC_1"] = "您喜欢我们的游戏吗?", + ["RATE_DESC_2"] = "稍后再说", + ["ARENA_DESC_32"] = "购买入场券", } return localization_global \ No newline at end of file diff --git a/lua/app/ui/arena/arena_buy_ticket_ui.lua b/lua/app/ui/arena/arena_buy_ticket_ui.lua index 7aecaf5c..d0204cca 100644 --- a/lua/app/ui/arena/arena_buy_ticket_ui.lua +++ b/lua/app/ui/arena/arena_buy_ticket_ui.lua @@ -23,7 +23,7 @@ function ArenaBuyTicketUI:onLoadRootComplete() self:closeUI() end) - uiMap["arena_buy_ticket_ui.bg.tx_title"]:setText(I18N:getGlobalText(I18N.GlobalConst.BUY_ENERGY)) + uiMap["arena_buy_ticket_ui.bg.tx_title"]:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_32)) local constCfg = ConfigManager:getConfig("const") local diamondReward = constCfg["arena_notes_diamond_buy"].reward local adReward = constCfg["arena_notes_ad_buy"].reward diff --git a/lua/app/ui/arena/arena_season_reward_ui.lua b/lua/app/ui/arena/arena_season_reward_ui.lua index a7bb1222..8d02be01 100644 --- a/lua/app/ui/arena/arena_season_reward_ui.lua +++ b/lua/app/ui/arena/arena_season_reward_ui.lua @@ -83,6 +83,7 @@ function ArenaSeasonRewardUI:showSeasonReward() if self.seasonChangeSid then self:unscheduleGlobal(self.seasonChangeSid) end + self:refreshCountdown() self.seasonChangeSid = self:scheduleGlobal(function() self:refreshCountdown() end, 1) diff --git a/lua/app/ui/battle/battle_result_ui.lua b/lua/app/ui/battle/battle_result_ui.lua index 56fa9ee3..49cba11a 100644 --- a/lua/app/ui/battle/battle_result_ui.lua +++ b/lua/app/ui/battle/battle_result_ui.lua @@ -114,7 +114,7 @@ function BattleResultUI:onLoadRootComplete() self.canvasGroupPigGem = self.goldPigGem:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS_GROUP) -- 竞技场 self.arenaNode = uiMap["battle_result_ui.arena_node"] - self.arenaSpineGrading = uiMap["battle_result_ui.arena_node.spine_grading"] + self.arenaSpineRoot = uiMap["battle_result_ui.arena_node.spine_root"] self.arenaTxGrading = uiMap["battle_result_ui.arena_node.tx_grading"] self.arenaTxScore = uiMap["battle_result_ui.arena_node.tx_score"] self.arenaImgProp = uiMap["battle_result_ui.arena_node.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER) @@ -227,6 +227,8 @@ function BattleResultUI:refreshArenaNode() local lastId = DataManager.ArenaData:getGradingIdFromScore(lastScore) self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(lastId)) + self:refreshArenaGradingSpine(lastId) + if self.arenaSequence then self.arenaSequence:Kill() end @@ -245,6 +247,7 @@ function BattleResultUI:refreshArenaNode() self.arenaSequence:Append(tween) self.arenaSequence:AppendCallback(function() self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(curId)) + self:refreshArenaGradingSpine(curId) self.arenaSequence = nil end) @@ -267,6 +270,25 @@ function BattleResultUI:refreshArenaNode() end end +function BattleResultUI:refreshArenaGradingSpine(gradingId) + if self.arenaSpine then + self.arenaSpine:playAnimComplete("vanish", false, false, function() + self.arenaSpine:destroy() + self.arenaSpine = nil + self:refreshArenaGradingSpine(gradingId) + end) + else + SpineManager:loadUISpineWidgetAsync(DataManager.ArenaData:getGradingIconName(gradingId).."_spine", self.arenaSpineRoot, function(spineObject) + self.arenaSpine = spineObject + self.arenaSpine:setLocalScale(0.8, 0.8, 1) + self.arenaSpine:setSkin(DataManager.ArenaData:getGradingNumName(gradingId)) + self.arenaSpine:playAnimComplete("born", false, false, function() + self.arenaSpine:playAnim("idle", true, false) + end) + end) + end +end + function BattleResultUI:refreshRewards() self.animRewards = {} self.rewardNode:setVisible(true) diff --git a/lua/app/ui/main_city/component/arena_comp.lua b/lua/app/ui/main_city/component/arena_comp.lua index fedf6d78..2ac699df 100644 --- a/lua/app/ui/main_city/component/arena_comp.lua +++ b/lua/app/ui/main_city/component/arena_comp.lua @@ -31,7 +31,7 @@ function ArenaComp:init() self.txTitle = uiMap["arena_comp.tx_title"] self.txCountdown = uiMap["arena_comp.countdown.tx_time"] self.txGarding = uiMap["arena_comp.tx_garding"] - self.imgGarding = uiMap["arena_comp.img_garding"] + self.spineRoot = uiMap["arena_comp.spine_root"] self.imgProg = uiMap["arena_comp.prog.img_prog"] self.txProg = uiMap["arena_comp.prog.tx_prog"] self.btnHelp = uiMap["arena_comp.tx_season.btn_help"] @@ -129,14 +129,27 @@ function ArenaComp:refreshShow() return end + local gradingId = DataManager.ArenaData:getGradingId() local totalScore = DataManager.ArenaData:getScore() local maxScore = DataManager.ArenaData:getGradingScoreTotal(totalScore) local curScore = DataManager.ArenaData:getGradingScore(totalScore) + local gradingIconName = DataManager.ArenaData:getGradingIconName(gradingId) + local gradingNumName = DataManager.ArenaData:getGradingNumName(gradingId) self.txSeason:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_3, DataManager.ArenaData:getSeason())) - self.txGarding:setText(DataManager.ArenaData:getGradingName(DataManager.ArenaData:getGradingId())) + self.txGarding:setText(DataManager.ArenaData:getGradingName(gradingId)) self.txProg:setText(curScore.."/"..maxScore) self.imgProg:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = curScore/maxScore + if self.spineGrading then + self.spineGrading:destroy() + self.spineGrading = nil + end + SpineManager:loadUISpineWidgetAsync(gradingIconName.."_spine", self.spineRoot, function(spineObject) + self.spineGrading = spineObject + self.spineGrading:setSkin(gradingNumName) + self.spineGrading:playAnim("idle", true) + end) + self:refreshBounty() -- 刷新战令 self:updateTimer() end @@ -171,6 +184,7 @@ function ArenaComp:updateTimer() if self.seasonChangeSid then self:getBaseObject():unscheduleGlobal(self.seasonChangeSid) end + self.txCountdown:setText(Time:formatNumTimeStr(DataManager.ArenaData:getRemainSeasonTime())) self.seasonChangeSid = self:getBaseObject():scheduleGlobal(function() self.txCountdown:setText(Time:formatNumTimeStr(DataManager.ArenaData:getRemainSeasonTime())) end, 1) diff --git a/lua/app/userdata/arena/arena_data.lua b/lua/app/userdata/arena/arena_data.lua index d1310c35..22273e1e 100644 --- a/lua/app/userdata/arena/arena_data.lua +++ b/lua/app/userdata/arena/arena_data.lua @@ -167,7 +167,7 @@ function ArenaData:getGradingScoreTotal(score) return self:getGradingMaxScore(score) - self:getGradingMinScore(score) end --- 获取段位图标名 +-- 获取段位图标名(大段位区分) function ArenaData:getGradingIconName(id) local cfg = ConfigManager:getConfig("arena_rank") if cfg[id] == nil then @@ -177,7 +177,7 @@ function ArenaData:getGradingIconName(id) return cfg[id].rank_icon end --- 获取段位小段图标 +-- 获取段位小段图标(大段中的小段区分) function ArenaData:getGradingNumName(id) local cfg = ConfigManager:getConfig("arena_rank") if cfg[id] == nil then