49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
![]() |
--> 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
|