--> 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 RuneWearExAttributeAttack = {} RuneWearExAttributeAttack.__index = RuneWearExAttributeAttack setmetatable(RuneWearExAttributeAttack, {__index = Rune}) function RuneWearExAttributeAttack:Init(PlayerAI, Character: TypeList.Character) local self = Rune:Init(PlayerAI, Character, script.Name) setmetatable(self, RuneWearExAttributeAttack) return self end function RuneWearExAttributeAttack:Check(index: number, AttributesData: table, BehaviorNameList: table) return true end function RuneWearExAttributeAttack: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 elementNumber = 0 for _, equipment in equipmentList do local equipmentWearing = equipment:GetAttribute("wearing") if equipmentWearing > 0 then elementNumber = elementNumber + Utils:GetTableLength(equipment:FindFirstChild("exAttributes"):GetAttributes()) end end local attackRate = math.floor((100 + AttributesData.attackRate or 0) * (elementNumber * 25 / 100)) Utils:TableSafeAddValue(AttributesData, "attackRate", attackRate) return nil end return RuneWearExAttributeAttack