Kaynağa Gözat

无尽奖励

ybx_Gdn 11 ay önce
ebeveyn
işleme
a2ff5d58bc

Dosya farkı çok büyük olduğundan ihmal edildi
+ 843 - 55
Assets/Content/Prefabs/UI/UIClimbingTower/UIClimbingTower.prefab


+ 10 - 0
Assets/Lua/Config/WJRewordCfg.lua

@@ -0,0 +1,10 @@
+local WJRewordCfg = {
+[1]={
+['id']=1,
+['levels']={{1,100}},
+['reword']={{5,100},{2,1000},{1,10000}},
+['levelReword']={{5,10},{2,100}},
+['specialReword']={{54,100}},
+},
+}
+return WJRewordCfg

+ 7 - 0
Assets/Lua/Config/WJRewordCfg.lua.meta

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

+ 66 - 0
Assets/Lua/Logic/ClimbingTower/ClimbingTowerDataMgr.lua

@@ -16,6 +16,9 @@ function ClimbingTowerDataMgr:ctor()
     self.battleEndCondList = nil
     self.bInited = false
     self.towerMode = 0 -- 0 原来的模式   1 无尽模式
+    self.wjLevel = 1
+    self.wjBossInfo = nil
+    self.wjRewordCfg = nil
 end
 
 function ClimbingTowerDataMgr:Clear()
@@ -480,6 +483,7 @@ function ClimbingTowerDataMgr:BattleEnd(battleTime,isPlayRecord,timeStamp)
     end
     if self:GetTowerMode() == 2  then
         LogError("無盡模式!!")
+        self.wjLevel = self.wjLevel + 1
         ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIClimbingTowerBattleWin,{Enum.UIPageName.UIClimbingTower,nil})
         return
     end
@@ -605,4 +609,66 @@ function ClimbingTowerDataMgr:GetModelockInfo(mode)
     end
     return lockInfo
 end
+
+function ClimbingTowerDataMgr:GetCurWjLevel()
+    return self.wjLevel
+end
+
+function ClimbingTowerDataMgr:SetCurWjLevel(lv)
+    self.wjLevel = lv
+end
+
+function ClimbingTowerDataMgr:GetWjRewordCfgByLv(lv)
+    local cfgmgr = ManagerContainer.CfgMgr
+    local cfg = nil
+    if self.wjRewordCfg and cfgmgr:LevelISWjRewordCfg(self.wjRewordCfg,lv) then
+        cfg = self.wjRewordCfg
+    else
+        cfg = cfgmgr:GetWjRewordByLv(lv)        
+    end
+
+    return cfg
+end
+
+function ClimbingTowerDataMgr:GetWjRewordByLv(lv)
+    local cfg = self:GetWjRewordCfgByLv(lv)
+   
+    local maxLv = cfg.levels[1][2]
+    local minLv = cfg.levels[1][1]
+    -- {cfgId = reward[1], num = reward[2]}
+    local reword = {}
+    for _, v in pairs(cfg.reword) do
+        local item = {cfgId = v[1], num = v[2]}
+    
+        reword[item.cfgId] = item
+    end
+
+    for _, v in pairs(cfg.levelReword) do
+        local item = {cfgId = v[1], num = v[2]}
+        local num = (lv - minLv) * item.num
+        if reword[item.cfgId] == nil then
+            item.num = num
+            reword[item.cfgId] = item
+        else
+            local  temp =  reword[item.cfgId]
+            temp.num = temp.num + num      
+        end
+    end
+    local ret = {}
+    for _, v in pairs(reword) do
+        table.insert(ret,v)
+    end
+    return ret
+end
+function ClimbingTowerDataMgr:GetCurWjReword()
+    return self:GetWjRewordByLv(self.wjLevel)
+end
+function ClimbingTowerDataMgr:GetCurSpecialReword(isShow)
+    local cfg = self:GetWjRewordCfgByLv(self.wjLevel)
+    if isShow then
+        return ManagerContainer.CfgMgr:GetReward(cfg.specialReword)
+    end
+    return cfg.specialReword
+end
+
 return ClimbingTowerDataMgr

+ 36 - 0
Assets/Lua/Managers/CfgMgr.lua

@@ -147,6 +147,7 @@ function CfgMgr:ctor()
 
     self.HardBossBuffCfg = InternalRequire('HardBossBuffCfg')
     self.HardBossBuff_S_Cfg = InternalRequire('HardBossBuff_S_Cfg')
+    self.WJRewordCfg = InternalRequire('WJRewordCfg')
 end
 
 -- function CfgMgr:GetEvilLevelCfg(id)
@@ -2209,4 +2210,39 @@ end
 function CfgMgr:GetHardBossBuff_S_CfgById(id)
     return self.HardBossBuff_S_Cfg[id]
 end
+
+function CfgMgr:GetWjRewordByLv(lv)
+    local cfg = nil
+    local maxLv = 1
+    for _, v in pairs(self.WJRewordCfg) do
+        local lvcfg = v.levels[1]
+        if lvcfg[1] <= lv and lvcfg[2] >= lv then
+            return v
+        end
+        if maxLv < lvcfg[2] then
+            maxLv = lvcfg[2]
+            cfg = v
+        end
+    end
+    return cfg
+end
+function CfgMgr:LevelISWjRewordCfg(cfg, lv)
+    local lvcfg = cfg.levels[1]
+    if lvcfg[1] <= lv and lvcfg[2] >= lv then
+        return true
+    end
+    return false
+end
+function CfgMgr:GetReward(rewards)
+	local datalist = {}
+	if rewards then
+		local reward
+		for i = 1, #rewards do
+			reward = rewards[i]
+			datalist[i] = {cfgId = reward[1], num = reward[2]}
+		end
+	end
+	return datalist
+end
+
 return CfgMgr

+ 2 - 1
Assets/Lua/Managers/LuaBattleMgr.lua

@@ -441,7 +441,8 @@ function LuaBattleMgr:OnChallengeBossFightAck(data)
     if data.error == Enum.NetErrorCode.ERROR_OK then
         self.isBattling = true
         ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Challenge_Boss_Fight_ACK,data.factor_list)
-        
+    elseif data.error == 618 then
+        return     
     else
         if data.left_cd_time > 0 then
             ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BATTLE_CHALLENGE_TIME_REFRESH, data.left_cd_time)

+ 39 - 0
Assets/Lua/UI/UIClimbingTower/UIClimbingTowerView.lua

@@ -1014,6 +1014,7 @@ function UIClimbingTowerView:RefWJNpcView(npclist,lv)
 		end
 	end	
 	self.levelNum.text.text = I18N.SetLanguageValue("TopTowerLevel",lv)
+	self:RefWjReword()
 end
 
 function UIClimbingTowerView:SetTitle(mode)
@@ -1034,5 +1035,43 @@ end
 function UIClimbingTowerView:OnClickWJBtn()
 	ManagerContainer.DataMgr.TowerDataMgr:EnterBattle_WJ(1,{})
 end
+
+
+function UIClimbingTowerView:RefWjReword()
+	local rewardlist = ManagerContainer.DataMgr.TowerDataMgr:GetCurWjReword()
+	self.wjGoodsItems.loopHorizontalScrollRect:ClearCells()
+	CommonUtil.LoopGridViewEleCreateNew(self,
+	self.wjGoodsItems.loopHorizontalScrollRect,
+	self.wjContent.horizontalLayoutGroup,
+	rewardlist,
+	0,
+	self,
+	self.UpdateRewardItem,
+	nil,nil,0);
+	self:RefWjSpReword()
+end
+function UIClimbingTowerView:UpdateRewardItem(_itemLua, _idx,_data)
+	if not _itemLua or not _data then return end
+	--_itemLua.gameObject:SetParent(wnd.content.transform)
+	CommonUtil.UpdateItemPrefab(self, _itemLua, _data, Enum.ItemIEnterType.Bag,self,self.OnClickItem)
+end
+
+function UIClimbingTowerView:RefWjSpReword()
+	local rewardlist = ManagerContainer.DataMgr.TowerDataMgr:GetCurSpecialReword(true)
+	self.wjSpGoodsItems.loopHorizontalScrollRect:ClearCells()
+	CommonUtil.LoopGridViewEleCreateNew(self,
+	self.wjSpGoodsItems.loopHorizontalScrollRect,
+	self.wjSpContent.horizontalLayoutGroup,
+	rewardlist,
+	0,
+	self,
+	self.UpdateSpRewardItem,
+	nil,nil,0);
+end
+function UIClimbingTowerView:UpdateSpRewardItem(_itemLua, _idx,_data)
+	if not _itemLua or not _data then return end
+	--_itemLua.gameObject:SetParent(wnd.content.transform)
+	CommonUtil.UpdateItemPrefab(self, _itemLua, _data, Enum.ItemIEnterType.Bag,self,self.OnClickItem)
+end
 return UIClimbingTowerView
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 473 - 351
Assets/Lua/UI/UIClimbingTower/UIClimbingTowerView_Generate.lua


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor