Update - 1.16.0.138

EN: 1.16.0.138
CN: 1.16.0.137
JP: 1.16.0.141
KR: 1.16.0.143
This commit is contained in:
SL1900
2026-09-29 12:00:00 +09:00
parent 1d209ec368
commit 1aa6ba19a4
767 changed files with 1389523 additions and 2758 deletions
@@ -1,5 +1,6 @@
local GoldenSpyHookCtrl = class("GoldenSpyHookCtrl", BaseCtrl)
local SpineManager = require("Game.Spine.SpineManager")
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
local MaxOffset = 20
local MinOffset = 10
local OffsetDir = {
@@ -26,6 +27,10 @@ GoldenSpyHookCtrl._mapNodeConfig = {
sNodeName = "hook",
sComponentName = "RectTransform"
},
trNet = {
sNodeName = "net_Hook",
sComponentName = "RectTransform"
},
rtMaxLengthArea = {
sNodeName = "MaxLengthArea",
sComponentName = "RectTransform"
@@ -40,13 +45,17 @@ GoldenSpyHookCtrl._mapNodeConfig = {
hook_catched = {},
nethookRoot = {},
nethook_normal = {},
nethook_catched = {}
nethook_catched = {},
net_Hook = {}
}
GoldenSpyHookCtrl.DefaultLineSize = 100
GoldenSpyHookCtrl.DefaultHookPosY = -90
GoldenSpyHookCtrl.HOOK_SWING_EASE = Ease.Linear
GoldenSpyHookCtrl.HOOK_EXTEND_EASE = Ease.Linear
GoldenSpyHookCtrl.HOOK_RETRACT_EASE = Ease.Linear
GoldenSpyHookCtrl._mapEventConfig = {
GM_GoldenSpy_Show = "OnEvent_GM_GoldenSpy_Show"
}
local HookStage = {
STATE_SWINGING = 1,
STATE_EXTENDING = 2,
@@ -89,9 +98,9 @@ function GoldenSpyHookCtrl:Init(levelId, floorId, floorCtrl, levelData, floorDat
end
self.tbTimers = {}
if levelCfg.LevelType == GameEnum.GoldenSpyLevelType.FishingHook then
self:SetHookType(AllEnum.GoldenSpyHookType.FishingHook, tonumber(levelCfg.Param1))
self:SetHookType(AllEnum.GoldenSpyHookType.FishingHook, tonumber(levelCfg.Param1), true)
else
self:SetHookType(AllEnum.GoldenSpyHookType.Normal, 0)
self:SetHookType(AllEnum.GoldenSpyHookType.Normal, 0, true)
end
SpineManager.Resume(self._mapNode.nethook_catched)
if self._hookType == AllEnum.GoldenSpyHookType.Normal then
@@ -107,10 +116,14 @@ function GoldenSpyHookCtrl:Init(levelId, floorId, floorCtrl, levelData, floorDat
self._mapNode.nethook_catched:SetActive(false)
end
end
function GoldenSpyHookCtrl:SetHookType(hookType, fishingHookRadius)
function GoldenSpyHookCtrl:SetHookType(hookType, fishingHookRadius, bForce)
self._hookType = hookType
self._fishingHookRadius = fishingHookRadius or 0
if self._hookType == 0 or self._hookState == HookStage.STATE_SWINGING then
if bForce or self.tempHookType == nil then
self.tempHookType = hookType
self.tempHookRadius = fishingHookRadius
end
self._fishingHookRadius = tonumber(fishingHookRadius) or 0
if self._hookState == HookStage.STATE_SWINGING or bForce then
if self._hookType == AllEnum.GoldenSpyHookType.Normal then
self._mapNode.hookRoot:SetActive(true)
self._mapNode.nethookRoot:SetActive(false)
@@ -124,9 +137,13 @@ function GoldenSpyHookCtrl:SetHookType(hookType, fishingHookRadius)
self._mapNode.nethook_catched:SetActive(false)
end
end
if NovaAPI.IsEditorPlatform() and self._fishingHookRadius > 0 then
local tr = self._mapNode.trNet
tr.sizeDelta = Vector2(self._fishingHookRadius * 2, self._fishingHookRadius * 2)
end
end
function GoldenSpyHookCtrl:GetHookType()
return self._hookType
function GoldenSpyHookCtrl:GetCurHookType()
return self.tempHookType
end
function GoldenSpyHookCtrl:DestroyItemInHook()
local itemParent = self._mapNode.itemParent
@@ -210,13 +227,13 @@ function GoldenSpyHookCtrl:StartSwing(leftAngle, rightAngle)
self:StopSwing()
self:StopExtend()
self:StopRetract()
if self._hookType == AllEnum.GoldenSpyHookType.Normal then
if self.tempHookType == AllEnum.GoldenSpyHookType.Normal then
self._mapNode.hookRoot:SetActive(true)
self._mapNode.nethookRoot:SetActive(false)
self._mapNode.hook_open:SetActive(false)
self._mapNode.hook_normal:SetActive(true)
self._mapNode.hook_catched:SetActive(false)
elseif self._hookType == AllEnum.GoldenSpyHookType.FishingHook then
elseif self.tempHookType == AllEnum.GoldenSpyHookType.FishingHook then
self._mapNode.hookRoot:SetActive(false)
self._mapNode.nethookRoot:SetActive(true)
self._mapNode.nethook_normal:SetActive(true)
@@ -239,6 +256,9 @@ function GoldenSpyHookCtrl:StartSwing(leftAngle, rightAngle)
end)
EventManager.Hit("GoldenSpyHookResumeSwing")
end
function GoldenSpyHookCtrl:CanUseBoom()
return self.bCanUseBoom or false
end
function GoldenSpyHookCtrl:PauseSwing()
self:StopSwing()
if self._hookState == HookStage.STATE_SWINGING then
@@ -251,6 +271,7 @@ function GoldenSpyHookCtrl:ResumeSwing(fromCurrent)
end
local leftAngle = self.HOOK_SWING_LEFT_ANGLE
local rightAngle = self.HOOK_SWING_RIGHT_ANGLE
self._hookState = HookStage.STATE_SWINGING
if fromCurrent then
self:StopExtend()
self:StopRetract()
@@ -275,7 +296,6 @@ function GoldenSpyHookCtrl:ResumeSwing(fromCurrent)
self:StartSwing()
return
end
self._hookState = HookStage.STATE_SWINGING
EventManager.Hit("GoldenSpyHookResumeSwing")
end
function GoldenSpyHookCtrl:_NormalizeAngleZ(z)
@@ -302,6 +322,8 @@ function GoldenSpyHookCtrl:StartExtend(speed, radius, factor, nMinSpeed, onCompl
if tr == nil then
return
end
self.tempHookType = self._hookType
self.tempHookRadius = self._fishingHookRadius
local maxLength = self:GetCurrentMaxLength()
self._onExtendComplete = onComplete
self._hookState = HookStage.STATE_EXTENDING
@@ -317,6 +339,7 @@ function GoldenSpyHookCtrl:StartExtend(speed, radius, factor, nMinSpeed, onCompl
end
return
end
self.bCanUseBoom = true
self._mapNode.hook_open:SetActive(true)
self._mapNode.hook_normal:SetActive(false)
self._mapNode.hook_catched:SetActive(false)
@@ -345,7 +368,7 @@ function GoldenSpyHookCtrl:StartExtend(speed, radius, factor, nMinSpeed, onCompl
end)
return
end
if self._hookType == AllEnum.GoldenSpyHookType.Normal then
if self.tempHookType == AllEnum.GoldenSpyHookType.Normal then
do
local tbCatchItems = {}
table.insert(tbCatchItems, item.Ctrl)
@@ -363,7 +386,7 @@ function GoldenSpyHookCtrl:StartExtend(speed, radius, factor, nMinSpeed, onCompl
local itemNormalWeight = item.Ctrl:GetWeight()
for _, v in ipairs(self:GetBuffData()) do
local buffCfg = ConfigTable.GetData("GoldenSpyBuffCard", v.buffId)
if buffCfg ~= nil and buffCfg.EffectType == GameEnum.GoldenSpyBuffEffect.ReduceItemWeight and self.levelData:CheckBuffActive(v) then
if buffCfg ~= nil and buffCfg.EffectType == GameEnum.GoldenSpyBuffEffect.ReduceItemWeight and self.levelData:CheckBuffActive(v) and item.Ctrl:GetItemCfg().ItemType == buffCfg.Params[1] then
itemNormalWeight = itemNormalWeight - buffCfg.Params[2]
end
end
@@ -391,12 +414,14 @@ function GoldenSpyHookCtrl:StartExtend(speed, radius, factor, nMinSpeed, onCompl
end
break
end
if self._hookType == AllEnum.GoldenSpyHookType.FishingHook then
if self.tempHookType == AllEnum.GoldenSpyHookType.FishingHook then
self._mapNode.hookRoot:SetActive(false)
self._mapNode.nethookRoot:SetActive(true)
self._mapNode.nethook_normal:SetActive(false)
self._mapNode.nethook_catched:SetActive(true)
SpineManager.PlayAnim(self._mapNode.nethook_catched, "open", false)
WwiseAudioMgr:PostEvent("Mode_steal_net")
self.bCanUseBoom = false
local tbCatchItems = self:GetCatchItems()
local tbBoomItems = {}
for _, item in ipairs(tbCatchItems) do
@@ -436,11 +461,11 @@ function GoldenSpyHookCtrl:StartExtend(speed, radius, factor, nMinSpeed, onCompl
local nIndex = (index - 1) % 9 + 1
local vOffset = OffsetDir[nIndex]
itemCtrl.gameObject.transform:SetParent(self._mapNode.itemParent)
itemCtrl.gameObject.transform.localPosition = Vector3(vOffset.x * math.random(MinOffset, MaxOffset), vOffset.y * math.random(MinOffset, MaxOffset) - 150, 0)
itemCtrl.gameObject.transform.localPosition = Vector3(vOffset.x * math.random(MinOffset, MaxOffset), vOffset.y * math.random(MinOffset, MaxOffset) - 100, 0)
local itemNormalWeight = itemCtrl:GetWeight()
for _, v in ipairs(self:GetBuffData()) do
local buffCfg = ConfigTable.GetData("GoldenSpyBuffCard", v.buffId)
if buffCfg ~= nil and buffCfg.EffectType == GameEnum.GoldenSpyBuffEffect.ReduceItemWeight and self.levelData:CheckBuffActive(v) then
if buffCfg ~= nil and buffCfg.EffectType == GameEnum.GoldenSpyBuffEffect.ReduceItemWeight and self.levelData:CheckBuffActive(v) and itemCtrl:GetItemCfg().ItemType == buffCfg.Params[1] then
itemNormalWeight = itemNormalWeight - buffCfg.Params[2]
end
end
@@ -455,7 +480,9 @@ function GoldenSpyHookCtrl:StartExtend(speed, radius, factor, nMinSpeed, onCompl
sSpineAnim = "catched1"
end
SpineManager.PlayAnim(self._mapNode.nethook_catched, sSpineAnim, false)
self.bCanUseBoom = false
local timer2 = self:AddTimer(1, 0.16, function()
self.bCanUseBoom = true
self:StartRetract(nbackSpeed, function()
self._mapNode.hookRoot:SetActive(false)
self._mapNode.nethookRoot:SetActive(true)
@@ -496,8 +523,12 @@ end
function GoldenSpyHookCtrl:GetCatchItems()
local tbCatchItems = {}
local items = self.floorCtrl.tbItem
local hookEndPos = self:GetHookEndWorldPosition()
if self.tempHookType == AllEnum.GoldenSpyHookType.FishingHook then
hookEndPos = self:GetHookEndWorldPositionWithNet()
end
for _, item in ipairs(items) do
if self:CheckCatchIntersect(self:GetHookEndWorldPosition(), self._fishingHookRadius, item.Ctrl) then
if self:CheckCatchIntersect(hookEndPos, self.tempHookRadius, item.Ctrl) then
table.insert(tbCatchItems, item.Ctrl)
end
end
@@ -507,9 +538,12 @@ function GoldenSpyHookCtrl:GetHookEndWorldPosition()
local rootTr = self.gameObject.transform
local trEnd = self._mapNode.trHookEnd
local localPt = rootTr:InverseTransformPoint(trEnd.position)
if self.nHookType == AllEnum.GoldenSpyHookType.FishingHook then
localPt.y = localPt.y - 100
end
return Vector3(localPt.x, localPt.y, 0)
end
function GoldenSpyHookCtrl:GetHookEndWorldPositionWithNet()
local rootTr = self.gameObject.transform
local trEnd = self._mapNode.trNet
local localPt = rootTr:InverseTransformPoint(trEnd.position)
return Vector3(localPt.x, localPt.y, 0)
end
function GoldenSpyHookCtrl:StopExtend()
@@ -548,13 +582,13 @@ function GoldenSpyHookCtrl:StartRetract(speed, onComplete, bIsCatched)
end
return
end
if self._hookType == AllEnum.GoldenSpyHookType.Normal then
if self.tempHookType == AllEnum.GoldenSpyHookType.Normal then
self._mapNode.hookRoot:SetActive(true)
self._mapNode.nethookRoot:SetActive(false)
self._mapNode.hook_open:SetActive(false)
self._mapNode.hook_normal:SetActive(false)
self._mapNode.hook_catched:SetActive(true)
elseif self._hookType == AllEnum.GoldenSpyHookType.FishingHook then
elseif self.tempHookType == AllEnum.GoldenSpyHookType.FishingHook then
self._mapNode.hookRoot:SetActive(false)
self._mapNode.nethookRoot:SetActive(true)
self._mapNode.nethook_normal:SetActive(not bIsCatched)
@@ -808,4 +842,7 @@ function GoldenSpyHookCtrl:Exit()
self:StopExtend()
self:StopRetract()
end
function GoldenSpyHookCtrl:OnEvent_GM_GoldenSpy_Show()
self._mapNode.net_Hook:SetActive(true)
end
return GoldenSpyHookCtrl