Update - 1.9.0.103
EN: 1.9.0.103 CN: 1.9.0.104 JP: 1.9.0.106 KR: 1.9.0.108
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
local GoldenSpyBaseItem = require("Game.UI.Activity.GoldenSpy.GoldenSpyBaseItem")
|
||||
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
||||
local GoldenSpyBoomItem = class("GoldenSpyBoomItem", GoldenSpyBaseItem)
|
||||
GoldenSpyBoomItem._mapNodeConfig = {
|
||||
BoomArea = {
|
||||
sNodeName = "BoomArea",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
Icon = {},
|
||||
HitArea = {
|
||||
sNodeName = "HitArea",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
Effect_Boom = {}
|
||||
}
|
||||
GoldenSpyBoomItem._mapEventConfig = {
|
||||
GM_GoldenSpy_Show = "OnEvent_GM_GoldenSpy_Show"
|
||||
}
|
||||
GoldenSpyBoomItem._mapRedDotConfig = {}
|
||||
function GoldenSpyBoomItem:Awake()
|
||||
self._mapNode.Effect_Boom.gameObject:SetActive(false)
|
||||
self.tbTimer = {}
|
||||
end
|
||||
function GoldenSpyBoomItem:OnEnable()
|
||||
end
|
||||
function GoldenSpyBoomItem:OnDisable()
|
||||
end
|
||||
function GoldenSpyBoomItem:OnDestroy()
|
||||
for _, v in ipairs(self.tbTimer) do
|
||||
if v ~= nil then
|
||||
v:Cancel()
|
||||
end
|
||||
end
|
||||
self.tbTimer = {}
|
||||
end
|
||||
function GoldenSpyBoomItem:GetHitArea()
|
||||
local tr = self.gameObject:GetComponent("RectTransform")
|
||||
local hitArea = {
|
||||
nType = self.nHitAreaType,
|
||||
center = self._mapNode.HitArea.anchoredPosition + tr.anchoredPosition,
|
||||
width = self._mapNode.HitArea.sizeDelta.x,
|
||||
height = self._mapNode.HitArea.sizeDelta.y
|
||||
}
|
||||
return hitArea
|
||||
end
|
||||
function GoldenSpyBoomItem:GetBoomArea()
|
||||
local tr = self.gameObject:GetComponent("RectTransform")
|
||||
local boomArea = {
|
||||
center = self._mapNode.BoomArea.anchoredPosition + tr.anchoredPosition,
|
||||
radius = self._mapNode.BoomArea.sizeDelta.x * 0.5
|
||||
}
|
||||
return boomArea
|
||||
end
|
||||
function GoldenSpyBoomItem:Boom(callback)
|
||||
local boom = function()
|
||||
if callback then
|
||||
callback()
|
||||
end
|
||||
local boomArea = self:GetBoomArea()
|
||||
local center = boomArea.center
|
||||
local radius = boomArea.radius
|
||||
local toHit = {}
|
||||
for _, v in ipairs(self.floorCtrl.tbItem) do
|
||||
if v.Ctrl and v.Ctrl ~= self then
|
||||
local hitArea = v.Ctrl:GetHitArea()
|
||||
if hitArea and hitArea.center then
|
||||
local offset = hitArea.center - center
|
||||
local dist = offset.x * offset.x + offset.y * offset.y
|
||||
if dist <= radius * radius then
|
||||
table.insert(toHit, v.Ctrl)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
for _, ctrl in ipairs(toHit) do
|
||||
if ctrl.gameObject ~= nil and ctrl.gameObject.activeSelf ~= false then
|
||||
ctrl:OnSkill_Boom(function()
|
||||
if ctrl:GetItemCfg().ItemType == GameEnum.GoldenSpyItem.Boom then
|
||||
return
|
||||
end
|
||||
self.floorCtrl:RemoveItem(ctrl)
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
self._mapNode.Icon:SetActive(false)
|
||||
self._mapNode.Effect_Boom.gameObject:SetActive(true)
|
||||
local timer = self:AddTimer(1, 0.1, boom, true, true, true)
|
||||
table.insert(self.tbTimer, timer)
|
||||
local timer2 = self:AddTimer(1, 0.5, function()
|
||||
self.gameObject:SetActive(false)
|
||||
self.floorCtrl:RemoveItem(self)
|
||||
end, true, true, true)
|
||||
table.insert(self.tbTimer, timer2)
|
||||
WwiseAudioMgr:PostEvent("Mode_steal_boom_big")
|
||||
end
|
||||
function GoldenSpyBoomItem:OnSkill_Boom(callback)
|
||||
if callback then
|
||||
self:Boom()
|
||||
callback()
|
||||
end
|
||||
if self.gameObject then
|
||||
self.gameObject:SetActive(false)
|
||||
end
|
||||
end
|
||||
function GoldenSpyBoomItem:OnSkill_Frozen(callback)
|
||||
if callback then
|
||||
callback()
|
||||
end
|
||||
end
|
||||
function GoldenSpyBoomItem:OnSkill_Frozen_Resume(callback)
|
||||
if callback then
|
||||
callback()
|
||||
end
|
||||
end
|
||||
function GoldenSpyBoomItem:OnEvent_GM_GoldenSpy_Show()
|
||||
local img = self._mapNode.HitArea:GetComponent("Image")
|
||||
if img then
|
||||
img.enabled = true
|
||||
end
|
||||
local boomImg = self._mapNode.BoomArea:GetComponent("Image")
|
||||
if boomImg then
|
||||
boomImg.enabled = true
|
||||
end
|
||||
end
|
||||
return GoldenSpyBoomItem
|
||||
Reference in New Issue
Block a user