动效添加

This commit is contained in:
Fang 2023-07-03 17:16:30 +08:00
parent abe661f228
commit 77b5452d00
8 changed files with 55 additions and 6 deletions

View File

@ -51,6 +51,12 @@ function UISpineObject:playAnim(animName, loop, forceRefresh, forceGetSG)
end end
end end
function UISpineObject:setSkin(skinName)
self.skeletonGraphic.initialSkinName = skinName
self.skeletonGraphic:Initialize(true)
self:getAnimationState(true)
end
function UISpineObject:getAnimationKeyFrameTime(animName) function UISpineObject:getAnimationKeyFrameTime(animName)
if not self.animationKeyFrameTime then if not self.animationKeyFrameTime then
self.animationKeyFrameTime = {} self.animationKeyFrameTime = {}

View File

@ -307,6 +307,9 @@ local LocalizationGlobalConst =
ARENA_DESC_30 = "ARENA_DESC_30", ARENA_DESC_30 = "ARENA_DESC_30",
ARENA_DESC_31 = "ARENA_DESC_31", ARENA_DESC_31 = "ARENA_DESC_31",
ARENA_DESC_HELP = "ARENA_DESC_HELP", 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 return LocalizationGlobalConst

View File

@ -307,6 +307,9 @@ local localization_global =
["ARENA_DESC_30"] = "竞技场新赛季开启,请更新游戏再进入!", ["ARENA_DESC_30"] = "竞技场新赛季开启,请更新游戏再进入!",
["ARENA_DESC_31"] = "竞技场结算开始,暂停挑战!", ["ARENA_DESC_31"] = "竞技场结算开始,暂停挑战!",
["ARENA_DESC_HELP"] = "1.竞技场为赛季周期制,每个赛季结束后将重置竞技场并发放上一赛季段位奖励。\n2.竞技场结算将在结束当日的23点30分UTC-0开始结算结算时长为30分钟结算期间为防止竞技场记录员受到干扰竞技场将无法进行挑战请各位骑士见谅。\n3.结算后所有骑士团将重置为当前段位的最低段位阶段。如果前一赛季挑战不足10次则重置为上一段位的最低阶段。", ["ARENA_DESC_HELP"] = "1.竞技场为赛季周期制,每个赛季结束后将重置竞技场并发放上一赛季段位奖励。\n2.竞技场结算将在结束当日的23点30分UTC-0开始结算结算时长为30分钟结算期间为防止竞技场记录员受到干扰竞技场将无法进行挑战请各位骑士见谅。\n3.结算后所有骑士团将重置为当前段位的最低段位阶段。如果前一赛季挑战不足10次则重置为上一段位的最低阶段。",
["RATE_DESC_1"] = "您喜欢我们的游戏吗?",
["RATE_DESC_2"] = "稍后再说",
["ARENA_DESC_32"] = "购买入场券",
} }
return localization_global return localization_global

View File

@ -23,7 +23,7 @@ function ArenaBuyTicketUI:onLoadRootComplete()
self:closeUI() self:closeUI()
end) 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 constCfg = ConfigManager:getConfig("const")
local diamondReward = constCfg["arena_notes_diamond_buy"].reward local diamondReward = constCfg["arena_notes_diamond_buy"].reward
local adReward = constCfg["arena_notes_ad_buy"].reward local adReward = constCfg["arena_notes_ad_buy"].reward

View File

@ -83,6 +83,7 @@ function ArenaSeasonRewardUI:showSeasonReward()
if self.seasonChangeSid then if self.seasonChangeSid then
self:unscheduleGlobal(self.seasonChangeSid) self:unscheduleGlobal(self.seasonChangeSid)
end end
self:refreshCountdown()
self.seasonChangeSid = self:scheduleGlobal(function() self.seasonChangeSid = self:scheduleGlobal(function()
self:refreshCountdown() self:refreshCountdown()
end, 1) end, 1)

View File

@ -114,7 +114,7 @@ function BattleResultUI:onLoadRootComplete()
self.canvasGroupPigGem = self.goldPigGem:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS_GROUP) self.canvasGroupPigGem = self.goldPigGem:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS_GROUP)
-- 竞技场 -- 竞技场
self.arenaNode = uiMap["battle_result_ui.arena_node"] 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.arenaTxGrading = uiMap["battle_result_ui.arena_node.tx_grading"]
self.arenaTxScore = uiMap["battle_result_ui.arena_node.tx_score"] 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) 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) local lastId = DataManager.ArenaData:getGradingIdFromScore(lastScore)
self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(lastId)) self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(lastId))
self:refreshArenaGradingSpine(lastId)
if self.arenaSequence then if self.arenaSequence then
self.arenaSequence:Kill() self.arenaSequence:Kill()
end end
@ -245,6 +247,7 @@ function BattleResultUI:refreshArenaNode()
self.arenaSequence:Append(tween) self.arenaSequence:Append(tween)
self.arenaSequence:AppendCallback(function() self.arenaSequence:AppendCallback(function()
self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(curId)) self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(curId))
self:refreshArenaGradingSpine(curId)
self.arenaSequence = nil self.arenaSequence = nil
end) end)
@ -267,6 +270,25 @@ function BattleResultUI:refreshArenaNode()
end end
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() function BattleResultUI:refreshRewards()
self.animRewards = {} self.animRewards = {}
self.rewardNode:setVisible(true) self.rewardNode:setVisible(true)

View File

@ -31,7 +31,7 @@ function ArenaComp:init()
self.txTitle = uiMap["arena_comp.tx_title"] self.txTitle = uiMap["arena_comp.tx_title"]
self.txCountdown = uiMap["arena_comp.countdown.tx_time"] self.txCountdown = uiMap["arena_comp.countdown.tx_time"]
self.txGarding = uiMap["arena_comp.tx_garding"] 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.imgProg = uiMap["arena_comp.prog.img_prog"]
self.txProg = uiMap["arena_comp.prog.tx_prog"] self.txProg = uiMap["arena_comp.prog.tx_prog"]
self.btnHelp = uiMap["arena_comp.tx_season.btn_help"] self.btnHelp = uiMap["arena_comp.tx_season.btn_help"]
@ -129,14 +129,27 @@ function ArenaComp:refreshShow()
return return
end end
local gradingId = DataManager.ArenaData:getGradingId()
local totalScore = DataManager.ArenaData:getScore() local totalScore = DataManager.ArenaData:getScore()
local maxScore = DataManager.ArenaData:getGradingScoreTotal(totalScore) local maxScore = DataManager.ArenaData:getGradingScoreTotal(totalScore)
local curScore = DataManager.ArenaData:getGradingScore(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.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.txProg:setText(curScore.."/"..maxScore)
self.imgProg:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = 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:refreshBounty() -- 刷新战令
self:updateTimer() self:updateTimer()
end end
@ -171,6 +184,7 @@ function ArenaComp:updateTimer()
if self.seasonChangeSid then if self.seasonChangeSid then
self:getBaseObject():unscheduleGlobal(self.seasonChangeSid) self:getBaseObject():unscheduleGlobal(self.seasonChangeSid)
end end
self.txCountdown:setText(Time:formatNumTimeStr(DataManager.ArenaData:getRemainSeasonTime()))
self.seasonChangeSid = self:getBaseObject():scheduleGlobal(function() self.seasonChangeSid = self:getBaseObject():scheduleGlobal(function()
self.txCountdown:setText(Time:formatNumTimeStr(DataManager.ArenaData:getRemainSeasonTime())) self.txCountdown:setText(Time:formatNumTimeStr(DataManager.ArenaData:getRemainSeasonTime()))
end, 1) end, 1)

View File

@ -167,7 +167,7 @@ function ArenaData:getGradingScoreTotal(score)
return self:getGradingMaxScore(score) - self:getGradingMinScore(score) return self:getGradingMaxScore(score) - self:getGradingMinScore(score)
end end
-- 获取段位图标名 -- 获取段位图标名(大段位区分)
function ArenaData:getGradingIconName(id) function ArenaData:getGradingIconName(id)
local cfg = ConfigManager:getConfig("arena_rank") local cfg = ConfigManager:getConfig("arena_rank")
if cfg[id] == nil then if cfg[id] == nil then
@ -177,7 +177,7 @@ function ArenaData:getGradingIconName(id)
return cfg[id].rank_icon return cfg[id].rank_icon
end end
-- 获取段位小段图标 -- 获取段位小段图标(大段中的小段区分)
function ArenaData:getGradingNumName(id) function ArenaData:getGradingNumName(id)
local cfg = ConfigManager:getConfig("arena_rank") local cfg = ConfigManager:getConfig("arena_rank")
if cfg[id] == nil then if cfg[id] == nil then