--> 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