49 lines
1.4 KiB
Plaintext
49 lines
1.4 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 PlayerInfoProxy = require(ServerStorage.Proxy.PlayerInfoProxy)
|
|
local Rng = require(ReplicatedStorage.Tools.Rng)
|
|
|
|
--> EventFilter
|
|
local EventFilter = require(ReplicatedStorage.Modules.EventFilter)
|
|
local EventFilterEnum = require(ReplicatedStorage.Data.EventFilterEnum)
|
|
|
|
|
|
|
|
|
|
local RuneKillCoin = {}
|
|
RuneKillCoin.__index = RuneKillCoin
|
|
setmetatable(RuneKillCoin, {__index = Rune})
|
|
|
|
|
|
function RuneKillCoin:Init(PlayerAI, Character: TypeList.Character)
|
|
local self = Rune:Init(PlayerAI, Character, script.Name)
|
|
setmetatable(self, RuneKillCoin)
|
|
|
|
return self
|
|
end
|
|
|
|
function RuneKillCoin:OnInitFinish()
|
|
EventFilter.SubscribeGlobalFilter(EventFilterEnum.BEFORE_KILL_MONSTER, function(eventData)
|
|
if Rng:RandomPercent(25) then
|
|
PlayerInfoProxy:ChangeItemCount(self.PlayerAI.Player, 1, 10)
|
|
end
|
|
return eventData
|
|
end, self.TriggerSlot, self)
|
|
end
|
|
|
|
function RuneKillCoin:Check(index: number, AttributesData: table, BehaviorNameList: table)
|
|
return true
|
|
end
|
|
|
|
function RuneKillCoin:OnExecute(index: number, AttributesData: table, BehaviorNameList: table)
|
|
return nil
|
|
end
|
|
|
|
|
|
return RuneKillCoin |