rbxIdleWeapon/src/ServerStorage/Modules/Runes/RuneLastElementCopy.luau

49 lines
1.6 KiB
Plaintext
Raw Normal View History

2025-08-22 16:40:29 +08:00
--> Services
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
--> Dependencies
local Utils = require(ReplicatedStorage.Tools.Utils)
local TypeList = require(ServerStorage.Base.TypeList)
local Rune = require(ServerStorage.Base.Rune)
local DamageProxy = require(ServerStorage.Proxy.DamageProxy)
--> EventFilter
local EventFilter = require(ReplicatedStorage.Modules.EventFilter)
local EventFilterEnum = require(ReplicatedStorage.Data.EventFilterEnum)
local RuneLastElementCopy = {}
RuneLastElementCopy.__index = RuneLastElementCopy
setmetatable(RuneLastElementCopy, {__index = Rune})
function RuneLastElementCopy:Init(PlayerAI, Character: TypeList.Character)
local self = Rune:Init(PlayerAI, Character, script.Name)
setmetatable(self, RuneLastElementCopy)
return self
end
function RuneLastElementCopy:OnInitFinish()
EventFilter.SubscribeGlobalFilter(EventFilterEnum.BEFORE_ATTACK, function(eventData)
for i = #eventData.damageData, 1, -1 do
local damageData = eventData.damageData[i]
if damageData.ElementType ~= DamageProxy.ElementType.NONE then
local newDamageData = Utils:DeepCopyTable(damageData)
table.insert(eventData.damageData, newDamageData)
break
end
end
return eventData
end, self.TriggerSlot, self)
end
function RuneLastElementCopy:Check(index: number, AttributesData: table, BehaviorNameList: table)
return true
end
function RuneLastElementCopy:OnExecute(index: number, AttributesData: table, BehaviorNameList: table)
return nil
end
return RuneLastElementCopy