60 lines
2.0 KiB
Plaintext
Raw Normal View History

2025-08-21 17:06:13 +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 RuneWearSword = {}
RuneWearSword.__index = RuneWearSword
setmetatable(RuneWearSword, {__index = Rune})
function RuneWearSword:Init(PlayerAI, Character: TypeList.Character)
local self = Rune:Init(PlayerAI, Character, script.Name)
setmetatable(self, RuneWearSword)
return self
end
function RuneWearSword:Check(index: number, AttributesData: table, BehaviorNameList: table)
return true
end
function RuneWearSword:OnExecute(index: number, AttributesData: table, BehaviorNameList: table)
local pDataFolder = ReplicatedStorage:FindFirstChild("PlayerData")
if not pDataFolder then return nil end
local pData = pDataFolder:FindFirstChild(self.PlayerAI.Player.UserId)
if not pData then return nil end
local equipmentFolder = pData:FindFirstChild("Equipment")
if not equipmentFolder then return nil end
local equipmentList = equipmentFolder:GetChildren()
if #equipmentList == 0 then return nil end
local CheckSubType = 2
local subTypeNumber = 0
for _, equipment in equipmentList do
local equipmentSubType = equipment:GetAttribute("subType")
local equipmentWearing = equipment:GetAttribute("wearing")
if equipmentSubType == CheckSubType and equipmentWearing > 0 then
subTypeNumber = subTypeNumber + 1
end
end
local CheckShareName = "RuneTagSword"
if self.PlayerAI:GetSharedData(CheckShareName) then
subTypeNumber = subTypeNumber + self.PlayerAI:GetSharedData(CheckShareName)
end
2025-08-21 19:29:10 +08:00
local attackRate = math.floor((AttributesData.attackRate or 100) * subTypeNumber * 25 / 100)
2025-08-21 17:06:13 +08:00
Utils:TableSafeAddValue(AttributesData, "attackRate", attackRate)
return nil
end
return RuneWearSword