Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package gg.rsmod.game.model.buffs
- import gg.rsmod.game.model.entity.Pawn
- class BuffHandler(val pawn: Pawn) {
- private var timers = mutableListOf<BuffTimer>()
- private fun add(timer: BuffTimers, time: Int = -1) {
- val time = if (time == -1) timer.time else time
- if (time == 0)
- return
- timers.removeIf { it.timer.id == timer.id && it.timer.override }
- val timer = BuffTimer(timer, time)
- timers.add(timer)
- //ToDo: Display buff for player with seconds remaining
- }
- private fun remove(timer: BuffTimers) {
- timers.removeIf {
- it.timer.id == timer.id
- }
- //Todo: Call any onEnd procedures for this timer, i.e. recalculating bonuses
- //ToDo: Remove buff from displayed buffs for player
- }
- private fun reset() {
- timers.clear()
- //Todo: Call any onEnd procedures all timers, i.e. recalculating bonuses
- //ToDo: Remove buffs from displayed buffs for player
- }
- private fun resetTransient() {
- timers.retainAll { it.timer.persistent }
- //Todo: Call any onEnd procedures all timers, i.e. recalculating bonuses
- //ToDo: Remove buffs from displayed buffs for player
- }
- private fun isActive(timer: BuffTimer) : Boolean {
- return timers.contains(timer)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement