ybx_Gdn 10 месяцев назад
Родитель
Сommit
999d95d33f

Разница между файлами не показана из-за своего большого размера
+ 55 - 28
Assets/Content/Fonts/VAGRoundedStdRegularSDF.asset


+ 1 - 0
Assets/Lua/Enum/Enum.lua

@@ -1078,6 +1078,7 @@ local Enum = {
         GuildPlayerBriefQuery = 101, -- 公会玩家信息
         InvitationStudentListQuery = 102, --拉新学生列表信息查询
         InvitationStudentSingleQuery = 103, --拉新单独学生信息查询
+        WjTowerRank = 104,--无尽信息
     },
 
     FriendStatusType = {

+ 1 - 0
Assets/Lua/Enum/UIEventNames.lua

@@ -614,6 +614,7 @@ local UIEventNames = {
 
     -- 无尽
     WJ_ON_BATTLE_CHANGE = id(), -- 鼓舞buff 发生变化
+    WJ_ON_BOSS_CHANGE = id(), -- boss 变化
 }
 
 return UIEventNames

+ 81 - 9
Assets/Lua/Logic/ClimbingTower/ClimbingTowerDataMgr.lua

@@ -46,7 +46,7 @@ function ClimbingTowerDataMgr:RegisterNetEvents()
     ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CLIMBING_TOWER_WJ_END_ACK,self.OnWjEndAck,self)
     ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CLIMBING_TOWER_WJ_RANK_ACK,self.OnWjRankAck,self)
     ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CLIMBING_TOWER_WJ_BOSS_NTF,self.OnWjBossNtf,self)
-
+    ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CLIMBING_TOWER_WJ_BUFF_ACK,self.OnWjBuffAck,self)
 
     ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.EID_SC_GET_OTHER_PLAYER_BRIEF_INFO_ACK,self,self.OnGetRankBriefInfoAck)
 end
@@ -63,6 +63,7 @@ function ClimbingTowerDataMgr:UnRegisterNetEvents()
     ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_CLIMBING_TOWER_WJ_END_ACK)
     ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_CLIMBING_TOWER_WJ_RANK_ACK)
     ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_CLIMBING_TOWER_WJ_BOSS_NTF)
+    ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_CLIMBING_TOWER_WJ_BUFF_ACK)
 
     ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.EID_SC_GET_OTHER_PLAYER_BRIEF_INFO_ACK,self,self.OnGetRankBriefInfoAck);
 end
@@ -188,9 +189,11 @@ function ClimbingTowerDataMgr:SendClimbingTowerInfoReq(changeTower)
 end
 
 function ClimbingTowerDataMgr:InitClimbingTowerInfo(data)
+    LogError(Inspect(data))
     self.curChallengeLevel = data.now_tower_level + 1
     self.lastPassedTime = data.now_tower_time
     self.dayRewardTime = data.tower_level_day_reward_time
+    self:OnWjBossNtf(data)
 end
 
 function ClimbingTowerDataMgr:OnClimbingTowerDayRewardAck(data)
@@ -604,8 +607,13 @@ end
 
 function  ClimbingTowerDataMgr:GetCurWJTowerInfo()
     local info = {}
-    local npclv = math.floor(self.wjLevel*6.7 + 0.5)
-    info.npcList = self:CreateNpcList({{70001, 1}, {70006, 4}, {70001, 3}, {70001, 2}}, npclv)
+    local cfg = self:GetWjRewordCfgByLv(self.wjLevel)
+    local npclv = math.floor(self.wjLevel*cfg.difficulty + 0.5)
+    local boss = self.wjBossInfo
+    if boss == nil or #boss == 0 then
+        boss ={{70001, 1}, {70006, 4}, {70001, 3}, {70001, 2}}
+    end
+    info.npcList = self:CreateNpcList(boss, npclv)
     info.lv = self.wjLevel
     return info
 end
@@ -617,7 +625,7 @@ function ClimbingTowerDataMgr:GetWjTowerUnlockLv()
     return 1001
 end
 function ClimbingTowerDataMgr:GetWjIsUnlock()
-    return true
+    return self.curChallengeLevel >= self:GetWjTowerUnlockLv() 
 end
 
 function ClimbingTowerDataMgr:GetModelockInfo(mode)
@@ -647,7 +655,7 @@ function ClimbingTowerDataMgr:GetWjRewordCfgByLv(lv)
     if self.wjRewordCfg and cfgmgr:LevelISWjRewordCfg(self.wjRewordCfg,lv) then
         cfg = self.wjRewordCfg
     else
-        cfg = cfgmgr:GetWjRewordByLv(lv)        
+        cfg = cfgmgr:GetWjRewordByLv(lv,self.curDay)        
     end
 
     return cfg
@@ -708,7 +716,9 @@ function ClimbingTowerDataMgr:SendWjBeginReq()
 end
 function ClimbingTowerDataMgr:OnWjBeginAck(data)
     LogError("OnWjBeginAck ----- " ..Inspect(data))
-    self:EnterBattle_WJ(data.tower_level,{})
+    if data.error ~= nil then
+        self:EnterBattle_WJ(data.tower_level,{})
+    end
 end
 
 
@@ -717,7 +727,15 @@ function ClimbingTowerDataMgr:SendWjEndReq(loadingTime,towerLevel,timeStamp)
 end
 function ClimbingTowerDataMgr:OnWjEndAck(data)
     LogError("OnWjEndAck ----- " ..Inspect(data))
-    ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIClimbingTowerBattleWin,{Enum.UIPageName.UIClimbingTower,nil})
+    if data.error == 0 then
+        local rewards = {}
+        self:KeyValueToWinRewardArray(rewards,data.ex_reward_list,1)
+        self:KeyValueToWinRewardArray(rewards,data.reward_list,0)
+        ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIClimbingTowerBattleWin,{Enum.UIPageName.UIClimbingTower,rewards})
+    else
+        ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIClimbingTowerBattleFailed,Enum.UIPageName.UIClimbingTower)
+    end
+    
 end
 
 function ClimbingTowerDataMgr:SendWjRankReq()
@@ -730,8 +748,18 @@ end
 function ClimbingTowerDataMgr:OnWjBossNtf(data)
     LogError("OnWjBossNtf ----- " ..Inspect(data))
     self.wjBossInfo = {}
-    self.wjLevel = data.wj_level
-    local boss = data.boos
+    if data.wj_level ~= nil then
+        self.wjLevel = data.wj_level
+    else
+        self.wjLevel = data.now_tower_wj_level
+    end
+    local boss
+    if data.boos ~= nil then
+         boss = data.boos
+    else
+         boss = data.boss
+    end
+  
    for i = 1, #boss, 1 do
         local bossinfo = {boss[i] ,i}
         table.insert(self.wjBossInfo,bossinfo)
@@ -742,6 +770,26 @@ function ClimbingTowerDataMgr:OnWjBossNtf(data)
    end
    self.curDay = data.duration
    self.GetRewardLv = data.reward_level
+   ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WJ_ON_BOSS_CHANGE);
+   self:RefBattleInfo()
+   ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WJ_ON_BATTLE_CHANGE);
+end
+
+function ClimbingTowerDataMgr:SendWjBuffReq(buffs)
+    LogError(Inspect(buffs))
+    ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_CLIMBING_TOWER_WJ_BUFF_REQ,buffs)
+end
+function ClimbingTowerDataMgr:OnWjBuffAck(data)
+    LogError("OnWjBuffAck ----- " ..Inspect(data))
+    -- for i = 1, 3, 1 do
+    --     local curb = data['buff'..i]
+    --     if curb ~= 0 then
+    --         self.wjBattleBuffInfo['buff'..i] =  self.wjBattleBuffInfo['buff'..i] + 1
+    --     end
+    --     --self.wjBattleBuffInfo['buff'..i] = data['buff'..i]
+    -- end
+    -- self:RefBattleInfo()
+    -- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.WJ_ON_BATTLE_CHANGE);
 end
 -- =================================无尽协议===================================
 
@@ -800,4 +848,28 @@ function ClimbingTowerDataMgr:GetCurAllBattleBuffInfo()
     end
     return self.AllBattleInfos
 end
+
+
+function ClimbingTowerDataMgr:KeyValueToArray(data)
+    local arr = {}
+    if data  ~= nil then
+        for i =1, #data do
+            local itemData = data[i];
+            arr[#arr+1] = {itemData.key, itemData.value}
+        end
+    end
+    return arr
+end
+function ClimbingTowerDataMgr:KeyValueToWinRewardArray(arr,data,type)
+    if arr == nil then
+        arr = {}
+    end
+    if data  ~= nil then
+        for i =1, #data do
+            local itemData = data[i];
+            arr[#arr+1] = {itemData.key, itemData.value,type}
+        end
+    end
+    return arr
+end
 return ClimbingTowerDataMgr

+ 110 - 0
Assets/Lua/Logic/ClimbingTower/TowerRankDataMgr.lua

@@ -0,0 +1,110 @@
+local TowerRankDataMgr = class("TowerRankDataMgr")
+
+local ClimbingTowerRankData = require("ClimbingTower/ClimbingTowerRankData")
+function TowerRankDataMgr:ctor()
+   
+    self.ranks = nil
+    self.rankPlayerIds = nil
+    
+    self.selfRank = 10000
+
+    self.type = Enum.FriendTogglePageType.ClimbingTower
+
+    self.CallBack = nil
+end
+
+function TowerRankDataMgr:Clear()
+    self.ranks = nil
+    self.rankPlayerIds = nil
+end
+
+function TowerRankDataMgr:FindRankerData(uid)
+    if self.ranks == nil then
+        return nil
+    end
+
+    for i=1, #self.ranks do
+        if self.ranks[i].playerId == uid then
+            return self.ranks[i]
+        end 
+    end
+
+    return nil
+end
+
+function TowerRankDataMgr:GetRankList()
+    return self.ranks
+end
+function TowerRankDataMgr:GetRankUidList(cnt)
+    local uids = {}
+    if self.rankPlayerIds ~= nil then
+        if cnt > #self.rankPlayerIds then
+            cnt = #self.rankPlayerIds
+        end
+        for i = 1, cnt do
+            uids[#uids+1] = self.rankPlayerIds[i]
+        end
+    end
+    return uids
+end
+
+function TowerRankDataMgr:OnTowerRankAck(data)
+    -- LogError("OnTowerRankAck:" .. Inspect(data))
+    if data.error == 0 then
+        self.ranks = {}
+        self.rankPlayerIds = {}
+        for i = 1, #data.rank_list do
+            local player = ClimbingTowerRankData:new(data.rank_list[i].key,data.rank_list[i].value)
+            self.ranks[#self.ranks+1] = player
+            self.rankPlayerIds[#self.rankPlayerIds+1] = data.rank_list[i].key
+        end
+        self.selfRank = data.self_rank
+
+        local uid_list = self:GetRankUidList(10)
+        self:ReqTowerRankBriefData(uid_list)
+    else
+        self.ranks = nil
+    end
+end
+
+function TowerRankDataMgr:ReqTowerRankBriefData(uids)
+    if uids == nil or #uids == 0 then
+        return
+    end
+    ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GET_OTHER_PLAYER_BRIEF_INFO_REQ, {type=self.type, player_list=uids})
+end
+
+
+function TowerRankDataMgr:OnGetRankBriefInfoAck(data)
+    -- LogError("OnGetRankBriefInfoAck:" .. Inspect(data))
+    if data.type ~= self.type then
+        return
+    end
+    if data.brief_info ~= nil then
+        for i = 1, #data.brief_info do
+            local info = data.brief_info[i]
+            local ranker = self:FindRankerData(info.uid)
+            if ranker ~= nil then
+                ranker:SetRankData(info)
+            end
+            self:RemoveTempRankerId(info.uid)
+        end
+    end
+    if self.CallBack ~= nil then
+        self.CallBack()
+    end
+end
+
+function TowerRankDataMgr:RemoveTempRankerId(uid)
+    if self.rankPlayerIds == nil then
+        return
+    end
+
+    for i = 1, #self.rankPlayerIds do
+        if self.rankPlayerIds[i] == uid then
+            table.remove(self.rankPlayerIds,i)
+            return
+        end
+    end
+end
+return TowerRankDataMgr

+ 7 - 0
Assets/Lua/Logic/ClimbingTower/TowerRankDataMgr.lua.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a97f01573b242cf479358675a6817c8b
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
Assets/Lua/Managers/CfgMgr.lua

@@ -2219,7 +2219,7 @@ end
 function CfgMgr:GetWjRewordByLv(lv,day)
     local cfg = nil
     local maxLv = 1
-    if(day == nil) then
+    if(day == nil or day < 1) then
         day = 1
     end
 

+ 8 - 2
Assets/Lua/UI/UIClimbingTower/UIClimbingTowerView.lua

@@ -24,6 +24,7 @@ function UIClimbingTowerView:AddEventListener()
 
 	ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_TOWER_LEVEL_MIN_FIGHT_POWER_ACK, self.OnFightPowerAck,self)
 
+	ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name,UIEventNames.WJ_ON_BOSS_CHANGE,self,self.RefWJNPC)	
 end
 
 function UIClimbingTowerView:GetPopGot(data)
@@ -109,8 +110,7 @@ function UIClimbingTowerView:Refresh()
     local type = self.controller:GetCurTowerType()
     self:SetTitle(mode)
 	if isWj then
-		local curwjInfo = tdmgr:GetCurWJTowerInfo()
-		self:RefWJNpcView(curwjInfo.npcList,curwjInfo.lv)	
+		self:RefWJNPC()
 	end
     if type == Enum.UnlimitTowerType.PeakTower then
         self.rewardLoopGridMap = {}
@@ -1141,5 +1141,11 @@ end
 function UIClimbingTowerView:OnClickGotoBuyBuff()
 	ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIWjBattleBuffView)
 end
+
+
+function UIClimbingTowerView:RefWJNPC()
+	local curwjInfo =  ManagerContainer.DataMgr.TowerDataMgr:GetCurWJTowerInfo()
+	self:RefWJNpcView(curwjInfo.npcList,curwjInfo.lv)	
+end
 return UIClimbingTowerView
 

+ 22 - 1
Assets/Lua/UI/UIClimbingTower/UIWjBattleBuffViewView.lua

@@ -92,9 +92,30 @@ function UIWjBattleBuffViewView:OnClickClose()
 end
 
 function UIWjBattleBuffViewView:BuyBattleBuf(data)
-	ManagerContainer.DataMgr.TowerDataMgr:SetCurBattleBuffInfo(data.id,data.curLv + 1)
+	--ManagerContainer.DataMgr.TowerDataMgr:SetCurBattleBuffInfo(data.id,data.curLv + 1)
+	local buffs = self:CreatBuff({data.id})
+	ManagerContainer.DataMgr.TowerDataMgr:SendWjBuffReq(buffs)
 end
 
+function UIWjBattleBuffViewView:CreatBuff(ids)
+	local buffs ={}
+	for i = 1, 3, 1 do
+		local isup = false
+        for j = 1, #ids, 1 do
+			if ids[j] == i then
+				isup = true
+			end
+		end
+		if isup then
+			buffs['buff'..i] = 1
+		else
+			buffs['buff'..i] = 0	
+		end
+
+    end
+	--LogError(Inspect(buffs))
+	return buffs
+end
 
 return UIWjBattleBuffViewView
 

Некоторые файлы не были показаны из-за большого количества измененных файлов