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

54 lines
1.8 KiB
Plaintext
Raw Normal View History

2025-08-22 12:32:05 +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 RuneThunderDoubleDamage = {}
RuneThunderDoubleDamage.__index = RuneThunderDoubleDamage
setmetatable(RuneThunderDoubleDamage, {__index = Rune})
function RuneThunderDoubleDamage:Init(PlayerAI, Character: TypeList.Character)
local self = Rune:Init(PlayerAI, Character, script.Name)
setmetatable(self, RuneThunderDoubleDamage)
return self
end
function RuneThunderDoubleDamage:OnInitFinish()
EventFilter.SubscribeGlobalFilter(EventFilterEnum.BEFORE_ATTACK, function(eventData)
local newDamageDataList = {}
for _, damageData in eventData.damageData do
if damageData.ElementType == DamageProxy.ElementType.LIGHT then
local newDamageData = Utils:DeepCopyTable(damageData)
table.insert(newDamageDataList, newDamageData)
end
end
if #newDamageDataList > 0 then
for _, newDamageData in newDamageDataList do
table.insert(eventData.damageData, newDamageData)
end
end
2025-08-26 19:25:08 +08:00
2025-08-22 12:32:05 +08:00
return eventData
end, self.TriggerSlot, self)
end
function RuneThunderDoubleDamage:Check(index: number, AttributesData: table, BehaviorNameList: table)
return true
end
function RuneThunderDoubleDamage:OnExecute(index: number, AttributesData: table, BehaviorNameList: table)
return nil
end
return RuneThunderDoubleDamage