Update - 1.9.0.107
EN: 1.9.0.107 CN: 1.9.0.108 JP: 1.9.0.112 KR: 1.9.0.112
This commit is contained in:
@@ -78,7 +78,7 @@ function MonsterHudCtrl:ResetHit()
|
||||
self.nBeforeHpMax = 0
|
||||
end
|
||||
function MonsterHudCtrl:SetMonsterId(nEntityId)
|
||||
if self.nEntityId ~= nil or self.nEntityId ~= 0 then
|
||||
if self.nEntityId ~= nil and self.nEntityId ~= 0 then
|
||||
EventManager.RemoveEntityEvent("HpChanged", self.nEntityId, self, self.OnEvent_HpChanged)
|
||||
end
|
||||
self.nEntityId = nEntityId
|
||||
|
||||
@@ -25,6 +25,7 @@ function TowerDefenseHUDCtrl:Awake()
|
||||
self.damageHudPrefab = self:LoadAsset("UI/Play_TowerDefence/HUD/DamageHUDNumber_UI.prefab")
|
||||
self.minDamageHUDNumber = self:LoadAsset("UI/HUD/MinDamageHUDNumber_UI.prefab")
|
||||
self.wordHudPrefab = self:LoadAsset("UI/HUD/WordHud_UI.prefab")
|
||||
self.healHudPrefab = self:LoadAsset("UI/HUD/HealHUDNumber_UI.prefab")
|
||||
self.monsterHuds = {}
|
||||
self.playerHuds = {}
|
||||
self.numberHuds = {}
|
||||
@@ -39,6 +40,7 @@ function TowerDefenseHUDCtrl:OnDestroy()
|
||||
self.damageHudPrefab = nil
|
||||
self.minDamageHUDNumber = nil
|
||||
self.wordHudPrefab = nil
|
||||
self.healHudPrefab = nil
|
||||
for key, value in pairs(self.monsterHuds) do
|
||||
self:DespawnPrefabInstance(value, "HUD")
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
local TowerDefenseCharacterDetailCtrl = class("TowerDefenseCharacterDetailCtrl", BaseCtrl)
|
||||
local SelectedColor = Color(0.9803921568627451, 0.9803921568627451, 10.0)
|
||||
local SelectedColor = Color(0.9803921568627451, 0.9803921568627451, 0.9803921568627451)
|
||||
local NormalColor = Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764)
|
||||
local AdventureModuleHelper = CS.AdventureModuleHelper
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
|
||||
@@ -10,6 +10,7 @@ local bar_item_maxX = 215
|
||||
local Time = CS.UnityEngine.Time
|
||||
local cardAnimCD = 0.1
|
||||
local ItemType = {
|
||||
None = 0,
|
||||
CD = 1,
|
||||
Count = 2,
|
||||
Charge = 3,
|
||||
@@ -49,7 +50,8 @@ TowerDefenseCtrl._mapNodeConfig = {
|
||||
btn_dic = {
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_OpenDic",
|
||||
sAction = "Depot"
|
||||
sAction = "Depot",
|
||||
sActionIconType = "Dark"
|
||||
},
|
||||
txt_dic = {
|
||||
nCount = 2,
|
||||
@@ -620,7 +622,7 @@ function TowerDefenseCtrl:OnEvent_HoldCard(pos)
|
||||
return
|
||||
end
|
||||
if self.nDragType == DragType.Item and self.bPointItem then
|
||||
if self.ItemType == ItemType.Count or self.ItemType == ItemType.CD_And_Count and self.nItemCount == 0 then
|
||||
if (self.ItemType == ItemType.Count or self.ItemType == ItemType.CD_And_Count) and self.nItemCount == 0 then
|
||||
return
|
||||
end
|
||||
self:SetDragState(DragType.Item)
|
||||
@@ -716,7 +718,7 @@ function TowerDefenseCtrl:OnDrag_CharacterCard(mDrag)
|
||||
end
|
||||
end
|
||||
function TowerDefenseCtrl:OnDrag_Item(mDrag)
|
||||
if self.ItemType == ItemType.Count or self.ItemType == ItemType.CD_And_Count and self.nItemCount == 0 then
|
||||
if (self.ItemType == ItemType.Count or self.ItemType == ItemType.CD_And_Count) and self.nItemCount == 0 then
|
||||
return
|
||||
end
|
||||
if self.CardDragType == CardDragType.Pointer then
|
||||
@@ -751,7 +753,8 @@ function TowerDefenseCtrl:CharacterLevelUp(characterId)
|
||||
if config == nil then
|
||||
return
|
||||
end
|
||||
if config.PointNeeded[oldLevel] > self.point then
|
||||
local nPointNeeded = config.PointNeeded[oldLevel]
|
||||
if nPointNeeded == nil or nPointNeeded > self.point then
|
||||
return
|
||||
end
|
||||
self.TowerDefenseData.TowerDefenseLevelData:CharacterLevelUp(characterId)
|
||||
@@ -1185,7 +1188,7 @@ function TowerDefenseCtrl:OnEvent_ShowPointUI(bIsShow)
|
||||
self._mapNode.go_characterFunc:SetLevelBtnState(bIsShow)
|
||||
end
|
||||
function TowerDefenseCtrl:OnEvent_ShowTips(tipsId, Time)
|
||||
EventManager.Hit("BattlePopupTips", tipsId, Time:AsFloat() or 0, true)
|
||||
EventManager.Hit("BattlePopupTips", tipsId, Time or 0, true)
|
||||
end
|
||||
function TowerDefenseCtrl:OnEvent_OpenDic(dicId)
|
||||
if self.bHasDic then
|
||||
|
||||
@@ -121,6 +121,7 @@ function TowerDefenseLevelCellCtrl:OnBtnClick_SelectLevel()
|
||||
end
|
||||
if not self.actData:IsPreLevelPass(self.levelData.nLevelId) then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("TowerDef_NeedPassPreLevel"))
|
||||
return
|
||||
end
|
||||
EventManager.Hit("TowerDefenseLevelCell_OnSelected", self.levelData.nLevelId)
|
||||
end
|
||||
|
||||
@@ -67,7 +67,12 @@ TowerDefenseLevelDetailCtrl._mapNodeConfig = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_EditorTeam"
|
||||
},
|
||||
team_character = {nCount = 6},
|
||||
team_character = {
|
||||
nCount = 6,
|
||||
sCtrlName = "Game.UI.TowerDefense.TowerDefenseSelectedCharCtrl"
|
||||
},
|
||||
goDragMin = {sComponentName = "Transform"},
|
||||
goDragMax = {sComponentName = "Transform"},
|
||||
special_item = {},
|
||||
animator = {
|
||||
sNodeName = "----SafeAreaRoot_Detail---",
|
||||
@@ -94,7 +99,11 @@ TowerDefenseLevelDetailCtrl._mapEventConfig = {
|
||||
TowerDefense_CharUpdate = "OnEvent_UpdateCharData",
|
||||
TowerDefense_ItemUpdate = "OnEvent_UpdateItemData",
|
||||
TowerDefenseTeamPanelConfirm = "OnEvent_Go",
|
||||
TowerDefenseTeamPanelClose = "OnEvent_UpdateTeamEditorPanelClose"
|
||||
TowerDefenseTeamPanelClose = "OnEvent_UpdateTeamEditorPanelClose",
|
||||
TowerDefense_EditorTeam = "OnEvent_OpenTeamEditorPanel",
|
||||
TowerDefenseItemDragStart = "OnEvent_TowerDefenseItemDragStart",
|
||||
TowerDefenseItemDragEnd = "OnEvent_TowerDefenseItemDragEnd",
|
||||
TowerDefenseItemDragging = "OnEvent_TowerDefenseItemDragging"
|
||||
}
|
||||
TowerDefenseLevelDetailCtrl._mapRedDotConfig = {}
|
||||
function TowerDefenseLevelDetailCtrl:Awake()
|
||||
@@ -107,9 +116,13 @@ function TowerDefenseLevelDetailCtrl:Awake()
|
||||
self.TowerDefenseData = PlayerData.Activity:GetActivityDataById(self.nActId)
|
||||
self._mapNode.teamCtrl.gameObject:SetActive(false)
|
||||
self._mapNode.miniMapCtrl:Close()
|
||||
self:UpdateData()
|
||||
self:InitGuide()
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnEnable()
|
||||
for k, v in ipairs(self._mapNode.team_character) do
|
||||
v:InitSortingOrder(self._nSortingOrder, self._mapNode.goDragMin, self._mapNode.goDragMax)
|
||||
end
|
||||
self:UpdateData()
|
||||
self:UpdateQuestInfo()
|
||||
self:UpdateItem()
|
||||
end
|
||||
@@ -121,6 +134,20 @@ function TowerDefenseLevelDetailCtrl:UpdateData()
|
||||
self:InitTeamData()
|
||||
self._mapNode.miniMapCtrl:SetData(self.levelConfig.FloorId)
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:InitGuide()
|
||||
local levelConfig = ConfigTable.GetData("TowerDefenseLevel", self.nLevelId)
|
||||
if levelConfig == nil then
|
||||
return
|
||||
end
|
||||
local floorConfig = ConfigTable.GetData("TowerDefenseFloor", levelConfig.FloorId)
|
||||
if floorConfig == nil then
|
||||
return
|
||||
end
|
||||
if floorConfig.MemberNum == 0 then
|
||||
return
|
||||
end
|
||||
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_TowerDefense_401")
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:UpdateQuestInfo()
|
||||
local levelData = self.TowerDefenseData:GetLevelData(self.nLevelId)
|
||||
local nStar = levelData.nStar
|
||||
@@ -199,6 +226,7 @@ function TowerDefenseLevelDetailCtrl:InitTeamData()
|
||||
end
|
||||
self.nItemGuideId = tempTeamData.itemGuideId
|
||||
end
|
||||
self:InitDragOrderList()
|
||||
self:UpdateCharacter()
|
||||
self:UpdateSpecialItem_V1()
|
||||
local floorConfig = ConfigTable.GetData("TowerDefenseFloor", self.levelConfig.FloorId)
|
||||
@@ -223,53 +251,21 @@ function TowerDefenseLevelDetailCtrl:UpdateCharacter()
|
||||
ForEachTableLine(DataTable.TowerDefenseGuide, foreach)
|
||||
end
|
||||
for i = 1, 6 do
|
||||
local go_add = self._mapNode.team_character[i].transform:Find("img_add")
|
||||
local btn_add = self._mapNode.team_character[i]:GetComponent("UIButton")
|
||||
local go_none = self._mapNode.team_character[i].transform:Find("img_none")
|
||||
local go_icon = self._mapNode.team_character[i].transform:Find("img_icon")
|
||||
local txt_name = self._mapNode.team_character[i].transform:Find("img_icon/txt_name"):GetComponent("TMP_Text")
|
||||
go_add.gameObject:SetActive(false)
|
||||
go_none.gameObject:SetActive(false)
|
||||
go_icon.gameObject:SetActive(false)
|
||||
btn_add.interactable = false
|
||||
if teamCharacterCount == 0 then
|
||||
if i > #self.tbCharGuideId then
|
||||
go_none.gameObject:SetActive(true)
|
||||
self._mapNode.team_character[i]:SetData(-1, false, i)
|
||||
else
|
||||
local guideConfig = ConfigTable.GetData("TowerDefenseGuide", self.tbCharGuideId[i])
|
||||
local characterConfig = ConfigTable.GetData("TowerDefenseCharacter", guideConfig.ObjectId)
|
||||
if characterConfig ~= nil then
|
||||
local icon_char = go_icon.transform:Find("icon_char")
|
||||
self:SetPngSprite(icon_char:GetComponent("Image"), characterConfig.Icon .. AllEnum.CharHeadIconSurfix.QM)
|
||||
NovaAPI.SetTMPText(txt_name, characterConfig.Name)
|
||||
end
|
||||
go_icon.gameObject:SetActive(true)
|
||||
self._mapNode.team_character[i]:SetData(self.tbCharGuideId[i], false, i)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txt_charCount, string.format("<color=#ffde6a>%d</color>/%d", #self.tbCharGuideId, #self.tbCharGuideId))
|
||||
self:InitDragOrderList()
|
||||
else
|
||||
if teamCharacterCount < i then
|
||||
go_none.gameObject:SetActive(true)
|
||||
self._mapNode.team_character[i]:SetData(-1, false, i)
|
||||
elseif i > #self.tbCharGuideId then
|
||||
go_add.gameObject:SetActive(true)
|
||||
btn_add.interactable = true
|
||||
btn_add.onClick:RemoveAllListeners()
|
||||
btn_add.onClick:AddListener(function()
|
||||
self:OnBtnClick_EditorTeam()
|
||||
end)
|
||||
self._mapNode.team_character[i]:SetData(0, true, i)
|
||||
else
|
||||
local guideConfig = ConfigTable.GetData("TowerDefenseGuide", self.tbCharGuideId[i])
|
||||
local characterConfig = ConfigTable.GetData("TowerDefenseCharacter", guideConfig.ObjectId)
|
||||
if characterConfig ~= nil then
|
||||
local icon_char = go_icon.transform:Find("icon_char")
|
||||
self:SetPngSprite(icon_char:GetComponent("Image"), characterConfig.Icon .. AllEnum.CharHeadIconSurfix.QM)
|
||||
NovaAPI.SetTMPText(txt_name, characterConfig.Name)
|
||||
end
|
||||
go_icon.gameObject:SetActive(true)
|
||||
btn_add.interactable = true
|
||||
btn_add.onClick:RemoveAllListeners()
|
||||
btn_add.onClick:AddListener(function()
|
||||
self:OnBtnClick_EditorTeam()
|
||||
end)
|
||||
self._mapNode.team_character[i]:SetData(self.tbCharGuideId[i], true, i)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txt_charCount, string.format("<color=#ffde6a>%d</color>/%d", #self.tbCharGuideId, teamCharacterCount))
|
||||
end
|
||||
@@ -404,6 +400,15 @@ function TowerDefenseLevelDetailCtrl:CloseTeamEditorPanel()
|
||||
self._mapNode.btn_Team.interactable = true
|
||||
self._mapNode.btn_go1.interactable = true
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:InitDragOrderList()
|
||||
self.tbDragOrderList = {}
|
||||
for k, v in ipairs(self.tbCharGuideId) do
|
||||
self.tbDragOrderList[k] = {}
|
||||
self.tbDragOrderList[k].nSortIndex = k
|
||||
self.tbDragOrderList[k].nId = v
|
||||
self.tbDragOrderList[k].itemCtrl = self._mapNode.team_character[k]
|
||||
end
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnBtnClick_MonsterInfo()
|
||||
EventManager.Hit("OpenTowerDefenseMonsterInfo", self.levelConfig.Id)
|
||||
end
|
||||
@@ -472,6 +477,7 @@ function TowerDefenseLevelDetailCtrl:OnBtnClick_Close()
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnEvent_UpdateCharData(tbCharGuideId)
|
||||
self.tbCharGuideId = tbCharGuideId
|
||||
self:InitDragOrderList()
|
||||
self:UpdateCharacter()
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnEvent_UpdateItemData(nItemGuideId)
|
||||
@@ -503,4 +509,54 @@ end
|
||||
function TowerDefenseLevelDetailCtrl:OnBtnClick_MiniMap()
|
||||
self._mapNode.miniMapCtrl:Open()
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnEvent_OpenTeamEditorPanel()
|
||||
self:OnBtnClick_EditorTeam()
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnEvent_TowerDefenseItemDragStart(objInsId)
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnEvent_TowerDefenseItemDragEnd()
|
||||
self.tbCharGuideId = {}
|
||||
for _, v in ipairs(self.tbDragOrderList) do
|
||||
table.insert(self.tbCharGuideId, v.nId)
|
||||
end
|
||||
self:InitDragOrderList()
|
||||
self:UpdateCharacter()
|
||||
if self.bInEditorPanel then
|
||||
self._mapNode.teamCtrl:UpdateSelectedChar(self.tbCharGuideId)
|
||||
end
|
||||
end
|
||||
function TowerDefenseLevelDetailCtrl:OnEvent_TowerDefenseItemDragging(nDragInsId, nPointerInsId)
|
||||
self.nExchangeIdx1 = nil
|
||||
self.nExchangeIdx2 = nil
|
||||
for k, v in ipairs(self.tbDragOrderList) do
|
||||
local nInsId = v.itemCtrl:GetItemBtnInstanceId()
|
||||
if nInsId == nDragInsId then
|
||||
self.nExchangeIdx1 = k
|
||||
end
|
||||
if nInsId == nPointerInsId then
|
||||
self.nExchangeIdx2 = k
|
||||
end
|
||||
end
|
||||
if nil ~= self.nExchangeIdx1 and nil ~= self.nExchangeIdx2 and self.nExchangeIdx1 ~= self.nExchangeIdx2 then
|
||||
self.tbDragOrderList[self.nExchangeIdx1].nSortIndex = self.nExchangeIdx2
|
||||
if self.nExchangeIdx1 > self.nExchangeIdx2 then
|
||||
for i = self.nExchangeIdx2, self.nExchangeIdx1 - 1 do
|
||||
local nCurSort = self.tbDragOrderList[i].nSortIndex + 1
|
||||
nCurSort = nCurSort > #self.tbCharGuideId and #self.tbCharGuideId or nCurSort
|
||||
self.tbDragOrderList[i].nSortIndex = nCurSort
|
||||
self.tbDragOrderList[i].itemCtrl:PlayItemMoveAnim(nCurSort)
|
||||
end
|
||||
elseif self.nExchangeIdx1 < self.nExchangeIdx2 then
|
||||
for i = self.nExchangeIdx1 + 1, self.nExchangeIdx2 do
|
||||
local nCurSort = self.tbDragOrderList[i].nSortIndex - 1
|
||||
nCurSort = nCurSort <= 0 and 1 or nCurSort
|
||||
self.tbDragOrderList[i].nSortIndex = nCurSort
|
||||
self.tbDragOrderList[i].itemCtrl:PlayItemMoveAnim(nCurSort)
|
||||
end
|
||||
end
|
||||
table.sort(self.tbDragOrderList, function(a, b)
|
||||
return a.nSortIndex < b.nSortIndex
|
||||
end)
|
||||
end
|
||||
end
|
||||
return TowerDefenseLevelDetailCtrl
|
||||
|
||||
@@ -105,7 +105,7 @@ function TowerDefenseLevelTipsCtrl:ShowCharTips(charData)
|
||||
end
|
||||
obj:SetActive(true)
|
||||
animator:Play("TowerDefenseMonsterTipsPanel_in")
|
||||
self.timer = self:AddTimer(1, 5, close, true, true, true)
|
||||
self:AddTimer(1, 5, close, true, true, true)
|
||||
end
|
||||
function TowerDefenseLevelTipsCtrl:ShowMonsterTips(monsterData)
|
||||
local config = ConfigTable.GetData("TowerDefenseMonster", monsterData.nId)
|
||||
@@ -147,7 +147,7 @@ function TowerDefenseLevelTipsCtrl:ShowMonsterTips(monsterData)
|
||||
end
|
||||
obj:SetActive(true)
|
||||
animator:Play("TowerDefenseMonsterTipsPanel_in")
|
||||
self.timer = self:AddTimer(1, 5, close, true, true, true)
|
||||
self:AddTimer(1, 5, close, true, true, true)
|
||||
end
|
||||
function TowerDefenseLevelTipsCtrl:MoveOtherUI()
|
||||
if #self.tbMoveTweer > 0 then
|
||||
|
||||
@@ -24,17 +24,20 @@ TowerDefensePauseCtrl._mapNodeConfig = {
|
||||
btn_exit = {
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_Exit",
|
||||
sAction = "Giveup"
|
||||
sAction = "Giveup",
|
||||
sActionIconType = "Dark"
|
||||
},
|
||||
btn_restart = {
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_Restart",
|
||||
sAction = "Retry"
|
||||
sAction = "Retry",
|
||||
sActionIconType = "Dark"
|
||||
},
|
||||
btn_continue = {
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_Continue",
|
||||
sAction = "Back"
|
||||
sAction = "Back",
|
||||
sActionIconType = "Dark"
|
||||
}
|
||||
}
|
||||
TowerDefensePauseCtrl._mapEventConfig = {}
|
||||
|
||||
@@ -237,7 +237,7 @@ function TowerDefenseSelectCtrl:OnBtnClick_LevelTab1()
|
||||
end
|
||||
self.scrollPos = 1
|
||||
self._panel.nlevelId = 0
|
||||
self.scrollType = self.scrollPos
|
||||
self.scrollType = scrollType.pos
|
||||
self.TowerDefenseData:RefreshRedDotbyTab(self._panel.nSelectedTabIndex)
|
||||
self._panel.nSelectedTabIndex = 1
|
||||
self:SetTabUI()
|
||||
@@ -249,7 +249,7 @@ function TowerDefenseSelectCtrl:OnBtnClick_LevelTab2()
|
||||
end
|
||||
self.scrollPos = 1
|
||||
self._panel.nlevelId = 0
|
||||
self.scrollType = self.scrollPos
|
||||
self.scrollType = scrollType.pos
|
||||
self.TowerDefenseData:RefreshRedDotbyTab(self._panel.nSelectedTabIndex)
|
||||
self._panel.nSelectedTabIndex = 2
|
||||
self:SetTabUI()
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
local TowerDefenseSelectedCharCtrl = class("TowerDefenseSelectedCharCtrl", BaseCtrl)
|
||||
TowerDefenseSelectedCharCtrl._mapNodeConfig = {
|
||||
drag = {
|
||||
sNodeName = "go_char",
|
||||
sComponentName = "UIDrag",
|
||||
callback = "OnUIDrag_Drag"
|
||||
},
|
||||
trSortItem = {
|
||||
sNodeName = "go_char",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
raySortItem = {
|
||||
sNodeName = "go_char",
|
||||
sComponentName = "Empty4Raycast"
|
||||
},
|
||||
rayDragEvent = {
|
||||
sNodeName = "rayDragEvent",
|
||||
sComponentName = "Empty4Raycast"
|
||||
},
|
||||
btn_add = {
|
||||
sNodeName = "img_add",
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_EditorTeam"
|
||||
},
|
||||
img_icon = {},
|
||||
icon_char = {sComponentName = "Image"},
|
||||
txt_name = {sComponentName = "TMP_Text"},
|
||||
img_add = {},
|
||||
img_none = {}
|
||||
}
|
||||
TowerDefenseSelectedCharCtrl._mapEventConfig = {
|
||||
TowerDefenseItemDragStart = "OnTowerDefenseItemDragStart",
|
||||
TowerDefenseItemDragEnd = "OnTowerDefenseItemDragEnd"
|
||||
}
|
||||
TowerDefenseSelectedCharCtrl._mapRedDotConfig = {}
|
||||
local item_Width = 198
|
||||
local item_spacing = 8.6
|
||||
function TowerDefenseSelectedCharCtrl:Awake()
|
||||
self.tweener = nil
|
||||
self.nGuideId = 0
|
||||
self.bCanChange = true
|
||||
self.nItemHeight = self.gameObject:GetComponent("RectTransform").rect.height
|
||||
self.nItemWidth = self.gameObject:GetComponent("RectTransform").rect.width
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:OnEnable()
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:OnDisable()
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:OnDestroy()
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:SetData(guideId, bCanChange, nIndex)
|
||||
self.nGuideId = guideId
|
||||
self.bCanChange = bCanChange
|
||||
self.nIndex = nIndex
|
||||
self._mapNode.btn_add.interactable = bCanChange
|
||||
self._mapNode.drag:SetDragEnable(bCanChange and self.nGuideId > 0)
|
||||
self._mapNode.img_none.gameObject:SetActive(self.nGuideId == -1)
|
||||
self._mapNode.img_add.gameObject:SetActive(self.nGuideId == 0)
|
||||
self._mapNode.img_icon.gameObject:SetActive(self.nGuideId > 0)
|
||||
if self.nGuideId > 0 then
|
||||
local guideConfig = ConfigTable.GetData("TowerDefenseGuide", self.nGuideId)
|
||||
local characterConfig = ConfigTable.GetData("TowerDefenseCharacter", guideConfig.ObjectId)
|
||||
if characterConfig ~= nil then
|
||||
self:SetPngSprite(self._mapNode.icon_char, characterConfig.Icon .. AllEnum.CharHeadIconSurfix.QM)
|
||||
NovaAPI.SetTMPText(self._mapNode.txt_name, characterConfig.Name)
|
||||
end
|
||||
end
|
||||
if nil ~= self.tweener then
|
||||
self.tweener:Kill()
|
||||
self.tweener = nil
|
||||
end
|
||||
self._mapNode.trSortItem.localPosition = Vector3(0, 0, 0)
|
||||
self.itemCanvas = self.gameObject:GetComponent("Canvas")
|
||||
NovaAPI.SetCanvasOverrideSorting(self.itemCanvas, false)
|
||||
self._mapNode.rayDragEvent.gameObject:SetActive(false)
|
||||
end
|
||||
local clamp = function(x, min, max)
|
||||
return math.max(math.min(x, max), min)
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:InitSortingOrder(nSortOrder, goDragMin, goDragMax)
|
||||
self.nInitSortingOrder = nSortOrder
|
||||
self.goDragMin = goDragMin
|
||||
self.goDragMax = goDragMax
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:GetItemBtnInstanceId()
|
||||
return self._mapNode.rayDragEvent.gameObject:GetInstanceID()
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:PlayItemMoveAnim(nIndex)
|
||||
local nEndPosX = (self.nItemWidth + item_spacing) * (nIndex - self.nIndex)
|
||||
local endPos = Vector2(nEndPosX, 0)
|
||||
self.tweener = self._mapNode.trSortItem:DOAnchorPos(endPos, 0.1):SetUpdate(true)
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:SetItemPos(dragPos)
|
||||
local localPos = GameUIUtils.ScreenPointToLocalPoint(dragPos, self.gameObject.transform)
|
||||
localPos.x = clamp(localPos.x, self.nDragMinPosX, self.nDragMaxPosX)
|
||||
self._mapNode.trSortItem.localPosition = Vector3(localPos.x, self.nItemHeight * 0.25, 0)
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:CalDragRange()
|
||||
if nil == self.nDragMinPosX or nil == self.nDragMaxPosX then
|
||||
local transform = self.gameObject:GetComponent("Transform")
|
||||
self.nDragMinPosX = transform:InverseTransformPoint(self.goDragMin.position).x + item_Width / 2
|
||||
self.nDragMaxPosX = transform:InverseTransformPoint(self.goDragMax.position).x - item_Width / 2
|
||||
end
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:OnUIDrag_Drag(mDrag)
|
||||
if self.nGuideId <= 0 then
|
||||
return
|
||||
end
|
||||
if mDrag.DragEventType == AllEnum.UIDragType.DragStart then
|
||||
self.nLastPointerInsId = nil
|
||||
self:CalDragRange()
|
||||
self:SetItemPos(mDrag.EventData.position)
|
||||
self._mapNode.raySortItem.enabled = false
|
||||
self._mapNode.rayDragEvent.enabled = false
|
||||
EventManager.Hit("TowerDefenseItemDragStart", self.gameObject:GetInstanceID())
|
||||
elseif mDrag.DragEventType == AllEnum.UIDragType.Drag then
|
||||
self:SetItemPos(mDrag.EventData.position)
|
||||
local pointerObj = mDrag.EventData.pointerCurrentRaycast
|
||||
if nil ~= pointerObj and nil ~= pointerObj.gameObject then
|
||||
local nPointerInsId = pointerObj.gameObject:GetInstanceID()
|
||||
if nPointerInsId ~= self.nLastPointerInsId then
|
||||
self.nLastPointerInsId = nPointerInsId
|
||||
EventManager.Hit("TowerDefenseItemDragging", self:GetItemBtnInstanceId(), nPointerInsId)
|
||||
end
|
||||
end
|
||||
elseif mDrag.DragEventType == AllEnum.UIDragType.DragEnd then
|
||||
EventManager.Hit("TowerDefenseItemDragEnd")
|
||||
NovaAPI.SetCanvasOverrideSorting(self.itemCanvas, false)
|
||||
NovaAPI.SetCanvasSortingOrder(self.itemCanvas, self.nInitSortingOrder)
|
||||
self._mapNode.raySortItem.enabled = true
|
||||
self._mapNode.rayDragEvent.enabled = true
|
||||
end
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:OnBtnClick_EditorTeam()
|
||||
EventManager.Hit("TowerDefense_EditorTeam")
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:OnTowerDefenseItemDragStart(objInsId)
|
||||
self._mapNode.rayDragEvent.gameObject:SetActive(true)
|
||||
NovaAPI.SetCanvasOverrideSorting(self.itemCanvas, true)
|
||||
NovaAPI.SetCanvasSortingName(self.itemCanvas, AllEnum.SortingLayerName.UI)
|
||||
if self.gameObject:GetInstanceID() ~= objInsId then
|
||||
NovaAPI.SetCanvasSortingOrder(self.itemCanvas, self.nInitSortingOrder + 1)
|
||||
else
|
||||
NovaAPI.SetCanvasSortingOrder(self.itemCanvas, self.nInitSortingOrder + 2)
|
||||
end
|
||||
end
|
||||
function TowerDefenseSelectedCharCtrl:OnTowerDefenseItemDragEnd()
|
||||
NovaAPI.SetCanvasSortingOrder(self.itemCanvas, self.nInitSortingOrder + 1)
|
||||
self._mapNode.rayDragEvent.gameObject:SetActive(false)
|
||||
end
|
||||
return TowerDefenseSelectedCharCtrl
|
||||
@@ -162,6 +162,10 @@ function TowerDefenseTeamCtrl:CreateItem()
|
||||
end
|
||||
end
|
||||
end
|
||||
function TowerDefenseTeamCtrl:UpdateSelectedChar(tbCharGuideIds)
|
||||
self.tbSelectedCharGuideIds = tbCharGuideIds
|
||||
EventManager.Hit("TowerDefense_CharUpdate", self.tbSelectedCharGuideIds)
|
||||
end
|
||||
function TowerDefenseTeamCtrl:OnCharacterGridBtnClick(nIndex)
|
||||
local charIndex = table.indexof(self.tbSelectedCharGuideIds, self.tbCharGuideIds[nIndex])
|
||||
if 0 < charIndex then
|
||||
@@ -183,7 +187,7 @@ function TowerDefenseTeamCtrl:OnItemGridBtnClick(goGrid, nIndex)
|
||||
go_selectMask.gameObject:SetActive(false)
|
||||
self.nSelectedItemId = 0
|
||||
EventManager.Hit("TowerDefense_ItemUpdate", self.nSelectedItemId)
|
||||
elseif self.nSelectedItemId ~= nil or self.nSelectedItemId ~= 0 then
|
||||
elseif self.nSelectedItemId ~= nil and self.nSelectedItemId ~= 0 then
|
||||
local selected = goGrid.transform:Find("btn_grid/AnimRoot/go_select")
|
||||
selected.gameObject:SetActive(true)
|
||||
local go_selectMask = goGrid.transform:Find("btn_grid/AnimRoot/go_selectMask")
|
||||
|
||||
Reference in New Issue
Block a user