From c2843e5a88bf49b9d8d7731da468dfe5bbce54ec Mon Sep 17 00:00:00 2001 From: Fang Date: Mon, 3 Jul 2023 18:34:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/global/global_const.lua | 1 + lua/app/module/arena/arena_manager.lua | 8 ++++++ lua/app/ui/arena/arena_formation_ui.lua | 26 ++++++++++--------- lua/app/ui/arena/arena_recent_battle_ui.lua | 6 ++++- lua/app/ui/arena/arena_season_reward_ui.lua | 3 +++ lua/app/ui/battle/battle_result_ui.lua | 2 ++ lua/app/ui/common/cell/player_info_cell.lua | 23 ++++++++++++++++ .../ui/common/cell/player_info_cell.lua.meta | 10 +++++++ lua/app/ui/main_city/main_city_ui.lua | 21 +++------------ lua/app/userdata/arena/arena_data.lua | 3 +++ 10 files changed, 72 insertions(+), 31 deletions(-) create mode 100644 lua/app/ui/common/cell/player_info_cell.lua create mode 100644 lua/app/ui/common/cell/player_info_cell.lua.meta diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua index 0f5d6e69..d706ccab 100644 --- a/lua/app/global/global_const.lua +++ b/lua/app/global/global_const.lua @@ -171,6 +171,7 @@ GConst.TYPEOF_LUA_CLASS = { -- cell ITEM_CELL = "app/ui/common/cell/item_cell", HERO_CELL = "app/ui/common/cell/hero_cell", + PLAYER_INFO_CELL = "app/ui/common/cell/player_info_cell", PLAYER_HEAD_CELL = "app/ui/common/cell/player_head_cell", REWARD_CELL = "app/ui/common/cell/reward_cell", LARGE_HERO_CELL = "app/ui/common/cell/large_hero_cell", diff --git a/lua/app/module/arena/arena_manager.lua b/lua/app/module/arena/arena_manager.lua index 7f23c36a..dcc5fe78 100644 --- a/lua/app/module/arena/arena_manager.lua +++ b/lua/app/module/arena/arena_manager.lua @@ -94,6 +94,14 @@ end function ArenaManager:rspSettlement(result) if result.err_code == GConst.ERROR_STR.SUCCESS then + + -- 异常数据判断处理 + local curScore = DataManager.ArenaData:getScore() + local minScore = DataManager.ArenaData:getGradingMinScore() + if curScore + result.settlement.incr_score < minScore then + result.settlement.incr_score = minScore - curScore + end + DataManager.ArenaData:onBattleResultReceived(result.settlement) local checkCount = 0 if result.settlement.win then diff --git a/lua/app/ui/arena/arena_formation_ui.lua b/lua/app/ui/arena/arena_formation_ui.lua index 25ef12c0..5292280b 100644 --- a/lua/app/ui/arena/arena_formation_ui.lua +++ b/lua/app/ui/arena/arena_formation_ui.lua @@ -17,19 +17,19 @@ function ArenaFormationUI:onPressBackspace() self:closeUI() end --- function ArenaFormationUI:getCurrencyParams() --- if self.currencyParams == nil then --- self.currencyParams = { --- itemIds = { --- GConst.ItemConst.ITEM_ID_GEM, --- GConst.ItemConst.ITEM_ID_ARENA_TICKET --- }, --- showType = GConst.CURRENCY_TYPE.HORIZONTAL --- } --- end +function ArenaFormationUI:getCurrencyParams() + if self.currencyParams == nil then + self.currencyParams = { + itemIds = { + GConst.ItemConst.ITEM_ID_GEM, + GConst.ItemConst.ITEM_ID_ARENA_TICKET + }, + showType = GConst.CURRENCY_TYPE.HORIZONTAL + } + end --- return self.currencyParams --- end + return self.currencyParams +end function ArenaFormationUI:ctor(params) self.formationType = params @@ -61,6 +61,8 @@ function ArenaFormationUI:onLoadRootComplete() heroUI:genAllChildren() self.heroComp = heroUI:addLuaComponent("app/ui/hero/hero_comp") + CellManager:addCellComp(uiMap["arena_formation_ui.player_info_cell"], GConst.TYPEOF_LUA_CLASS.PLAYER_INFO_CELL):refresh() + self:bind(DataManager.HeroData, "isDirty", function() self:onRefresh() end) diff --git a/lua/app/ui/arena/arena_recent_battle_ui.lua b/lua/app/ui/arena/arena_recent_battle_ui.lua index b3104281..a5a38445 100644 --- a/lua/app/ui/arena/arena_recent_battle_ui.lua +++ b/lua/app/ui/arena/arena_recent_battle_ui.lua @@ -98,7 +98,11 @@ function ArenaRecentBattleUI:refreshRecord(obj, info) end else obj:setSprite(GConst.ATLAS_PATH.ARENA,"arena_bg_4") - uiMap["tx_score"]:setText(""..info.incr_score.."") + if info.incr_score == 0 then + uiMap["tx_score"]:setText("-"..info.incr_score.."") + else + uiMap["tx_score"]:setText(""..info.incr_score.."") + end uiMap["img_result"]:setSprite(GConst.ATLAS_PATH.ARENA, "arena_dec_3") if info.attacker then uiMap["tx_result"]:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_20)) diff --git a/lua/app/ui/arena/arena_season_reward_ui.lua b/lua/app/ui/arena/arena_season_reward_ui.lua index 8d02be01..872bca40 100644 --- a/lua/app/ui/arena/arena_season_reward_ui.lua +++ b/lua/app/ui/arena/arena_season_reward_ui.lua @@ -63,6 +63,9 @@ function ArenaSeasonRewardUI:onLoadRootComplete() self:bind(DataManager.ArenaData, "isDirty", function() self:closeUI() end) + self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_SEASON_END, function() + self:closeUI() + end) end function ArenaSeasonRewardUI:onRefresh() diff --git a/lua/app/ui/battle/battle_result_ui.lua b/lua/app/ui/battle/battle_result_ui.lua index 49cba11a..fe829aba 100644 --- a/lua/app/ui/battle/battle_result_ui.lua +++ b/lua/app/ui/battle/battle_result_ui.lua @@ -253,6 +253,8 @@ function BattleResultUI:refreshArenaNode() if self.incrScore > 0 then self.arenaTxScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_27, "+"..self.incrScore)) + elseif self.incrScore == 0 then + self.arenaTxScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_27, "-"..self.incrScore)) else self.arenaTxScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_27, self.incrScore)) end diff --git a/lua/app/ui/common/cell/player_info_cell.lua b/lua/app/ui/common/cell/player_info_cell.lua new file mode 100644 index 00000000..ee44c828 --- /dev/null +++ b/lua/app/ui/common/cell/player_info_cell.lua @@ -0,0 +1,23 @@ +local PlayerInfoCell = class("PlayerInfoCell", BaseCell) + +function PlayerInfoCell:init() + local uiMap = self.baseObject:genAllChildren() + + self.txName = uiMap["player_info_cell.info.tx_name"] + self.txLv = uiMap["player_info_cell.info.slider.tx_lv"] + self.imgProgExp = uiMap["player_info_cell.info.slider.img_prog_exp"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER) + self.playerHeadCell = CellManager:addCellComp(uiMap["player_info_cell.player_head_cell"], GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL) + + self:getBaseObject():addClickListener(function () + UIManager:showUI("app/ui/player_info/player_info_ui") + end) +end + +function PlayerInfoCell:refresh() + self.txName:setText(DataManager.PlayerData:getNickname()) + self.txLv:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, DataManager.PlayerData:getLv())) + self.imgProgExp.value = DataManager.PlayerData:getExpPercent() + self.playerHeadCell:refresh() +end + +return PlayerInfoCell \ No newline at end of file diff --git a/lua/app/ui/common/cell/player_info_cell.lua.meta b/lua/app/ui/common/cell/player_info_cell.lua.meta new file mode 100644 index 00000000..c9950013 --- /dev/null +++ b/lua/app/ui/common/cell/player_info_cell.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1f7dea870d8216645b673b7bc99a68f6 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/main_city/main_city_ui.lua b/lua/app/ui/main_city/main_city_ui.lua index 338ef4c6..f34c78f7 100644 --- a/lua/app/ui/main_city/main_city_ui.lua +++ b/lua/app/ui/main_city/main_city_ui.lua @@ -130,7 +130,6 @@ function MainCityUI:_display() self:initBottomUI() self:initComp() self:initLeftRightBtns() - self:initPlayerInfo() self:initTopNode() self:refreshBottom() end @@ -609,25 +608,11 @@ function MainCityUI:setSideBarVisible(visible) self.rightNode:setVisible(visible) end -function MainCityUI:initPlayerInfo() - self.playerSlider = self.uiMap["main_ui.player_node.info.slider.img_prog"] - self.playerLvTx = self.uiMap["main_ui.player_node.info.slider.tx_lv"] - self.playerNameTx = self.uiMap["main_ui.player_node.info.tx_name"] - self.headCell = CellManager:addCellComp(self.uiMap["main_ui.player_node.player_head_cell"], GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL) - self.uiMap["main_ui.player_node"]:addClickListener(function () - UIManager:showUI("app/ui/player_info/player_info_ui") - end) - self.headCell:refresh() -end - function MainCityUI:refreshPlayerInfo() - local lv = DataManager.PlayerData:getLv() - self.playerLvTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, lv)) - self.playerSlider:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = DataManager.PlayerData:getExpPercent() - self.playerNameTx:setText(DataManager.PlayerData:getNickname()) - if self.headCell then - self.headCell:refresh() + if not self.playerInfoCell then + self.playerInfoCell = CellManager:addCellComp(self.uiMap["main_ui.player_info_cell"], GConst.TYPEOF_LUA_CLASS.PLAYER_INFO_CELL) end + self.playerInfoCell:refresh() end function MainCityUI:initTopNode() diff --git a/lua/app/userdata/arena/arena_data.lua b/lua/app/userdata/arena/arena_data.lua index 22273e1e..53db8da8 100644 --- a/lua/app/userdata/arena/arena_data.lua +++ b/lua/app/userdata/arena/arena_data.lua @@ -145,6 +145,9 @@ end -- 获取所在段位的最低积分 function ArenaData:getGradingMinScore(score) local id = self:getGradingIdFromScore(score) + if not self.cfgRank[id] then + id = table.sort(table.keys(self.cfgRank)) + end return self.cfgRank[id].score end