玩家升级界面

This commit is contained in:
chenxi 2023-05-22 16:22:26 +08:00
parent 4acb1271f2
commit e97c1cd4e9
13 changed files with 181 additions and 8 deletions

View File

@ -69,7 +69,8 @@ BIReport.ITEM_GET_TYPE = {
BOUNTY = "Bounty",
IDLE_DROP = "IdleDrop",
IDLE_QUICK_DROP = "IdleQuickDrop",
MAIL = "Mail"
MAIL = "Mail",
PLAYER_LV_UP = "PlayerLvUp",
}
BIReport.ADS_CLICK_TYPE = {

View File

@ -39,6 +39,8 @@ local MODULE_PATHS = {
ShopManager = "app/module/shop/shop_manager",
-- 邮件
MailManager = "app/module/mail/mail_manager",
-- 玩家
PlayerManager = "app/module/player/player_manager",
}
-- 这里的key对应func_open里的id

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 98178fc3bab492b46975a763c42497c9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,23 @@
local PlayerManager = class("PlayerManager", BaseModule)
function PlayerManager:showPlayerUpUI(currLv, rewards)
local params = {
fromLevel = currLv,
rewards = rewards,
}
UIManager:showUI("app/ui/player/player_level_up_ui", params)
end
function PlayerManager:levelUp()
self:sendMessage(ProtoMsgType.FromMsgEnum.LevelUpReq, {}, {}, self.onLevelUpFinish, BIReport.ITEM_GET_TYPE.PLAYER_LV_UP)
end
function PlayerManager:onLevelUpFinish(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
local currLv = DataManager.PlayerData:getLv()
DataManager.PlayerData:setLv(result.level, result.exp)
self:showPlayerUpUI(currLv, result.rewards)
end
end
return PlayerManager

View File

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

View File

@ -21,7 +21,7 @@ function BaseUI:getPreLoadList()
end
function BaseUI:showCommonBG()
return true
return false
end
-- 界面prefab路径

View File

@ -31,6 +31,10 @@ function IdleDropUI:onReshow()
if self.cdSid then
self:resumeScheduleGlobal(self.cdSid)
end
-- 检查是否升级
if DataManager.PlayerData:getIfCanLevelUp() then
ModuleManager.PlayerManager:levelUp()
end
end
function IdleDropUI:onClose()

View File

@ -36,6 +36,13 @@ function IdleQuickDropUI:ctor()
end
end
function IdleQuickDropUI:onReshow()
-- 检查是否升级
if DataManager.PlayerData:getIfCanLevelUp() then
ModuleManager.PlayerManager:levelUp()
end
end
function IdleQuickDropUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
self.uiMap = uiMap

View File

@ -110,9 +110,6 @@ function MainCityUI:_display()
end
function MainCityUI:_addListeners()
self:addEventListener(EventManager.CUSTOM_EVENT.MAIN_UI_CHECK_POP, function()
self:checkMainPop()
end)
end
function MainCityUI:_bind()
@ -126,9 +123,6 @@ function MainCityUI:_bind()
self:bind(DataManager.PlayerData, "dirty", function(binder, value)
self:refreshPlayerInfo()
end, true)
self:bind(DataManager.PlayerData, "lvUpDirty", function(binder, value)
self:checkMainPop()
end)
self:bind(DataManager.FormationData, "dirty", function(binder, value)
if self.selectedIndex == GConst.MainCityConst.BOTTOM_PAGE.HERO then
self.subComps[self.selectedIndex]:refresh()
@ -679,6 +673,12 @@ function MainCityUI:refreshSettingBtn()
end
function MainCityUI:checkMainPop()
-- 检查是否升级
if DataManager.PlayerData:getIfCanLevelUp() then
ModuleManager.PlayerManager:levelUp()
return
end
-- 引导
if self:checkTutorial() then
return

8
lua/app/ui/player.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 60f05ec49fd1e1544b596ad1fb4cd483
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,86 @@
local PlayerLevelUpUI = class("PlayerLevelUpUI", BaseUI)
local CELL_WIDTH = 114.8
function PlayerLevelUpUI:isFullScreen()
return false
end
function PlayerLevelUpUI:getPrefabPath()
return "assets/prefabs/ui/player/player_level_up_ui.prefab"
end
function PlayerLevelUpUI:ctor(params)
params = params or GConst.EMPTY_TABLE
self.fromLevel = params.fromLevel
self.rewards = params.rewards or GConst.EMPTY_TABLE
end
function PlayerLevelUpUI:onLoadRootComplete()
self:_display()
end
function PlayerLevelUpUI:_display()
local uiMap = self.root:genAllChildren()
self.uiMap = uiMap
uiMap["player_level_up_ui.bg"]:addClickListener(function()
self:closeUI()
end)
local toLevel = DataManager.PlayerData:getLv()
uiMap["player_level_up_ui.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.PLAYER_LEVEL_UP_DESC, toLevel))
uiMap["player_level_up_ui.reward_title"]:setText(I18N:getGlobalText(I18N.GlobalConst.LEVEL_UP_REWARD))
uiMap["player_level_up_ui.continue"]:setText(I18N:getGlobalText(I18N.GlobalConst.CLICK_TO_CONTINUE))
uiMap["player_level_up_ui.lv_img_l.text"]:setText(tostring(self.fromLevel))
uiMap["player_level_up_ui.lv_img_r.text"]:setText(tostring(toLevel))
local width = uiMap["player_level_up_ui.reward_title"]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).preferredWidth
uiMap["player_level_up_ui.r"]:setAnchoredPositionX(width/2 + 40)
uiMap["player_level_up_ui.l"]:setAnchoredPositionX(-width/2 - 40)
self:refreshRewards()
end
function PlayerLevelUpUI:refreshRewards()
if self.scrollRectComp then
self.scrollRectComp:updateAllCell()
return
end
local uiMap = self.root:genAllChildren()
local scrollRect = uiMap["player_level_up_ui.scroll_rect"]
self.scrollRectComp = scrollRect:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
self.scrollRectComp:addInitCallback(function()
return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
end)
self.scrollRectComp:addRefreshCallback(function(index, cell)
cell:refresh(self.rewards[index])
end)
self.scrollRectComp:setFadeArgs(0.05, 0.3)
self.scrollRectComp:clearCells()
local rewardCount = #self.rewards
if rewardCount > 10 then
local comp = scrollRect:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Elastic
self.scrollRectComp:setPerLineNum(5)
scrollRect:setSizeDeltaX(560)
else
local comp = scrollRect:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Clamped
if rewardCount >= 5 then
self.scrollRectComp:setPerLineNum(5)
scrollRect:setSizeDeltaX(560)
elseif rewardCount <= 0 then
self.scrollRectComp:setPerLineNum(1)
scrollRect:setSizeDeltaX(560)
else
self.scrollRectComp:setPerLineNum(rewardCount)
scrollRect:setSizeDeltaX(112*rewardCount)
end
end
self.scrollRectComp:refillCells(rewardCount, true)
end
return PlayerLevelUpUI

View File

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

View File

@ -49,6 +49,13 @@ function PlayerData:addExp(exp)
self:markDirty()
end
function PlayerData:setLv(level, exp)
self.data.level = level
self.data.exp = exp
self.lvUpNeedExp = self:getNextExp(self.data.level)
self:markDirty()
end
function PlayerData:getLv()
return self.data.level
end
@ -66,6 +73,13 @@ function PlayerData:getExpPercent()
return self.data.exp / self.lvUpNeedExp
end
function PlayerData:getIfCanLevelUp()
if self.data.level >= self:getMaxLv() then
return false
end
return self.data.exp >= self.lvUpNeedExp
end
function PlayerData:getAccountInfo()
if not self.accountInfo then
self.accountInfo = LocalData:getAccountInfo()