292 lines
11 KiB
Lua
292 lines
11 KiB
Lua
local SmallSoldierInfoPanel = quick_class("SmallSoldierInfoPanel", BasePanel)
|
|
local itemData = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local gemConfig = ConfigManager.GetConfig(ConfigName.GemConfigNew)
|
|
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local lotteryConfig=ConfigManager.GetConfig(ConfigName.SoldiersLotteryConfig)
|
|
local propertyConfig=ConfigManager.GetConfig(ConfigName.PropertyConfig)
|
|
local specialConfig=ConfigManager.GetConfigData(ConfigName.SpecialConfig,178).Value
|
|
local aaa=string.split(specialConfig,"#")
|
|
local oldWarPower=0
|
|
local team
|
|
local state
|
|
local quaName={"粗糙","普通","优良","优秀","稀有","史诗","传说","神话"}
|
|
local isUp=true
|
|
local type=0
|
|
local oldData=nil
|
|
local newData=nil
|
|
function SmallSoldierInfoPanel:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
self.btn_close=Util.GetGameObject(self.gameObject, "mask")
|
|
self.topObj =Util.GetGameObject(self.gameObject, "bg/topBar")
|
|
self.newObj =Util.GetGameObject(self.gameObject, "bg/newBar")
|
|
self.btnObj =Util.GetGameObject(self.gameObject, "bg/newBar/bottomBar")
|
|
self.btn_up = Util.GetGameObject(self.gameObject, "bg/newBar/bottomBar/btnUp")
|
|
self.btn_change = Util.GetGameObject(self.gameObject, "bg/newBar/bottomBar/btnChange")
|
|
self.btn_remove = Util.GetGameObject(self.gameObject, "bg/newBar/bottomBar/btnRemove")
|
|
self.btn_skip=Util.GetGameObject(self.gameObject, "bg/newBar/jumpFight/btn")
|
|
self.skipImg=Util.GetGameObject(self.gameObject, "bg/newBar/jumpFight/Image")
|
|
self.skipObj=Util.GetGameObject(self.gameObject, "bg/newBar/jumpFight")
|
|
Util.GetGameObject(self.gameObject, "bg/newBar/jumpFight/Text"):GetComponent("Text").text="替换后自动分解原兵种"
|
|
|
|
end
|
|
|
|
function SmallSoldierInfoPanel:BindEvent()
|
|
--跳过按钮
|
|
Util.AddClick(self.btn_skip, function ()
|
|
if state==0 then
|
|
state=1
|
|
elseif state==1 then
|
|
state=0
|
|
end
|
|
self.skipImg:SetActive(state==1)
|
|
PlayerPrefs.SetInt(PlayerManager.uid.."isSoliderSkip",state)
|
|
end)
|
|
|
|
Util.AddClick(self.btn_close, function ()
|
|
self:ClosePanel()
|
|
end)
|
|
--上阵按钮
|
|
Util.AddClick(self.btn_up,function()
|
|
NetManager.ReplaceSoldierRequest(1,0,function ()
|
|
|
|
HeroPropManager.SetFuncPropDirty(Func_Prop_Type.Solider)
|
|
NetManager.RequestUserForceChange(FormationTypeDef.FORMATION_NORMAL)
|
|
local tempPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
|
|
if oldWarPower ~= tempPower then
|
|
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPower,newValue = tempPower})
|
|
end
|
|
isUp=true
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Solider.ShowSoliderChangeInfo,newData.type,isUp)
|
|
self:ClosePanel()
|
|
end)
|
|
end)
|
|
|
|
--替换按钮
|
|
Util.AddClick(self.btn_change,function()
|
|
NetManager.ReplaceSoldierRequest(1,state,function ()
|
|
HeroPropManager.SetFuncPropDirty(Func_Prop_Type.Solider)
|
|
NetManager.RequestUserForceChange(FormationTypeDef.FORMATION_NORMAL)
|
|
local tempPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
|
|
if oldWarPower ~= tempPower then
|
|
LogError("tempPower-old=================="..tempPower-oldWarPower)
|
|
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPower,newValue = tempPower})
|
|
isUp= tempPower- oldWarPower>0
|
|
oldWarPower=tempPower
|
|
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Solider.ShowSoliderChangeInfo,newData.type,isUp)
|
|
if state==1 then
|
|
self:ClosePanel()
|
|
|
|
else
|
|
self:OnShow()
|
|
end
|
|
end)
|
|
|
|
end)
|
|
--遣散按钮
|
|
Util.AddClick(self.btn_remove,function()
|
|
NetManager.ReplaceSoldierRequest(2,0,function ()
|
|
self:ClosePanel()
|
|
end)
|
|
end)
|
|
end
|
|
|
|
function SmallSoldierInfoPanel:AddListener()
|
|
|
|
end
|
|
|
|
function SmallSoldierInfoPanel:RemoveListener()
|
|
|
|
end
|
|
|
|
|
|
|
|
--待功能扩展(试图打开某个状态)
|
|
function SmallSoldierInfoPanel:OnOpen(...)
|
|
local args={...}
|
|
type=args[1]
|
|
--data=args[2]
|
|
-- newData=args[3]
|
|
state=PlayerPrefs.GetInt(PlayerManager.uid.."isSoliderSkip")
|
|
end
|
|
|
|
function SmallSoldierInfoPanel:OnSortingOrderChange()
|
|
|
|
end
|
|
local itemList={}
|
|
function SmallSoldierInfoPanel:OnShow()
|
|
oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
|
|
team=FormationManager.GetFormationByID(FormationTypeDef.FORMATION_NORMAL)
|
|
newData=SmallSoldierManager.changeSolider
|
|
if SmallSoldierManager.soldierList[newData.type] then
|
|
oldData=SmallSoldierManager.soldierList[newData.type]
|
|
end
|
|
if oldData then
|
|
--LogError("显示上面的")
|
|
self.topObj:SetActive(true)
|
|
self:ShwoSoliderInfo(self.topObj,oldData,1)
|
|
else
|
|
self.topObj:SetActive(false)
|
|
end
|
|
if newData then
|
|
--LogError("显示下面的")
|
|
self:ShwoSoliderInfo(self.newObj,newData,2)
|
|
end
|
|
self.btn_up:SetActive(oldData==nil)
|
|
self.btn_remove:SetActive(oldData~=nil)
|
|
self.btn_change:SetActive(oldData~=nil)
|
|
|
|
self.skipObj:SetActive(oldData~=nil)
|
|
self.skipImg:SetActive(state==1)
|
|
end
|
|
--显示小兵信息
|
|
function SmallSoldierInfoPanel:ShwoSoliderInfo(go,data,_type)
|
|
if go==nil or data==nil then
|
|
--LogError("111111111111111111111111111111111111")
|
|
return
|
|
end
|
|
local title=Util.GetGameObject(go, "infoObj/title"):GetComponent("Text")
|
|
local frame=Util.GetGameObject(go, "infoObj/frame"):GetComponent("Image")
|
|
local icon=Util.GetGameObject(go, "infoObj/icon"):GetComponent("Image")
|
|
local quaImg=Util.GetGameObject(go, "infoObj/quaImg"):GetComponent("Image")
|
|
local name=Util.GetGameObject(go, "infoObj/name"):GetComponent("Text")
|
|
local lv=Util.GetGameObject(go, "infoObj/lv"):GetComponent("Text")
|
|
local proPre=Util.GetGameObject(go, "infoObj/proPre")
|
|
local grid=Util.GetGameObject(go, "infoObj/proGrid")
|
|
local skillObj=Util.GetGameObject(go, "skillObj")
|
|
local skillinfo=Util.GetGameObject(go, "skillObj/Text"):GetComponent("Text")
|
|
local config=ConfigManager.GetConfigData(ConfigName.SoldiersSetting,data.id)
|
|
local powerObj=Util.GetGameObject(go, "infoObj/powerImg")
|
|
powerObj:GetComponent("Image").sprite=self.spLoader:LoadSprite("r_hero_zhanlitishen_zh")
|
|
local powerDown=Util.GetGameObject(go, "infoObj/powerImg/changeValueDown")
|
|
local powerDownTxt=Util.GetGameObject(go, "infoObj/powerImg/changeValueDown"):GetComponent("Text")
|
|
local powerUp=Util.GetGameObject(go, "infoObj/powerImg/changeValueUp")
|
|
local powerUpTxt=Util.GetGameObject(go, "infoObj/powerImg/changeValueUp"):GetComponent("Text")
|
|
if _type==1 then
|
|
title.text=config.Name
|
|
elseif _type==2 then
|
|
title.text="新获得"
|
|
end
|
|
frame.sprite=self.spLoader:LoadSprite(GetQuantityImageByquality(config.Quality))
|
|
icon.sprite=self.spLoader:LoadSprite(GetResourcePath(config.ResourceID))
|
|
quaImg.sprite=self.spLoader:LoadSprite(GetHeroQualityStr(config.Quality))
|
|
name.text=config.Name
|
|
lv.text=data.level
|
|
local skillStr=""
|
|
if config.PropertyName and #config.PropertyName>0 and tonumber(config.PropertyName[1][1])~=nil then
|
|
for i=1,#config.PropertyName do
|
|
local aa=config.PropertyName[i]
|
|
if aa[2] and aa[2]>0 and aa[1] then
|
|
skillStr=skillStr..PropertyType[aa[1]].."+".. aa[2]/100 .. "% "
|
|
end
|
|
end
|
|
end
|
|
if config.Profession and #config.Profession>0 and tonumber(config.Profession[1][1])~=nil then
|
|
for i=1,#config.Profession do
|
|
local aa=config.Profession[i]
|
|
if aa[2] and aa[2]>0 and aa[1] then
|
|
skillStr=skillStr..ProfessionType[aa[1]].."+".. aa[2]/100 .. "% "
|
|
end
|
|
end
|
|
end
|
|
skillinfo.text=skillStr
|
|
local addDamage=0
|
|
--LogError("data.attributes len============="..#data.attributes)
|
|
for i=1,4 do
|
|
local go = Util.GetGameObject(grid, "proPre (".. i ..")")
|
|
if i>#data.attributes then
|
|
go:SetActive(false)
|
|
else
|
|
go:SetActive(true)
|
|
local proName= Util.GetGameObject(go, "name"):GetComponent("Text")
|
|
local value= Util.GetGameObject(go, "value"):GetComponent("Text")
|
|
local img=Util.GetGameObject(go, "Image"):GetComponent("Image")
|
|
proName.text =GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.PropertyConfig,data.attributes[i].id).Info)
|
|
value.text=data.attributes[i].value
|
|
if oldData and newData then
|
|
img.gameObject:SetActive(true)
|
|
local imgStr=nil
|
|
if _type==1 then
|
|
LogError("判断上面的标")
|
|
if oldData.attributes[i].value > newData.attributes[i].value then
|
|
imgStr="r_hero_zhanlishangsheng_png"
|
|
elseif oldData.attributes[i].value < newData.attributes[i].value then
|
|
imgStr="r_hero_zhanlixiajiang_png"
|
|
end
|
|
else
|
|
--LogError("判断下面的标 data.attributes[i].value=="..data.attributes[i].value.." newData.attributes[i].value=="..newData.attributes[i].value)
|
|
if oldData.attributes[i].value > newData.attributes[i].value then
|
|
imgStr="r_hero_zhanlixiajiang_png"
|
|
elseif oldData.attributes[i].value < newData.attributes[i].value then
|
|
imgStr="r_hero_zhanlishangsheng_png"
|
|
end
|
|
end
|
|
if imgStr then
|
|
img.gameObject:SetActive(true)
|
|
img.sprite=self.spLoader:LoadSprite(imgStr)
|
|
else
|
|
img.gameObject:SetActive(false)
|
|
end
|
|
addDamage=addDamage+(newData.attributes[i].value-oldData.attributes[i].value)*propertyConfig[i].Score
|
|
else
|
|
addDamage=addDamage+data.attributes[i].value*propertyConfig[i].Score
|
|
img.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
|
|
end
|
|
local allDaamge=math.floor(addDamage*#team.teamHeroInfos+0.5)
|
|
if newData~=nil then
|
|
if _type==1 then
|
|
powerObj:SetActive(false)
|
|
else
|
|
powerObj:SetActive(true)
|
|
powerDown:SetActive(allDaamge<0)
|
|
powerUp:SetActive(allDaamge>0)
|
|
if allDaamge>0 then
|
|
powerUpTxt.text=allDaamge
|
|
else
|
|
powerDownTxt.text=allDaamge*-1
|
|
end
|
|
end
|
|
else
|
|
powerObj:SetActive(true)
|
|
powerDown:SetActive(allDaamge<0)
|
|
powerUp:SetActive(allDaamge>0)
|
|
if allDaamge>0 then
|
|
powerUpTxt.text=allDaamge
|
|
else
|
|
powerDownTxt.text=allDaamge*-1
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function SmallSoldierInfoPanel:OnClose()
|
|
|
|
oldData=nil
|
|
newData=nil
|
|
|
|
end
|
|
|
|
function SmallSoldierInfoPanel:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
HeroPropManager.SetFuncPropDirty(Func_Prop_Type.Solider)
|
|
local formationList = FormationManager.GetFormationByID(FormationTypeDef.FORMATION_NORMAL)
|
|
for i = 1, 6 do
|
|
if formationList.teamHeroInfos[i] then
|
|
HeroPropManager.SetDirtyByType(formationList.teamHeroInfos[i].heroId, Hero_Prop_Type.Base)
|
|
end
|
|
end
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
end
|
|
|
|
return SmallSoldierInfoPanel |