Advertisement
fiveriverflow

BuffHandler

Aug 23rd, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.35 KB | None | 0 0
  1. package gg.rsmod.game.model.buffs
  2.  
  3. import gg.rsmod.game.model.entity.Pawn
  4.  
  5. class BuffHandler(val pawn: Pawn) {
  6.  
  7.     private var timers = mutableListOf<BuffTimer>()
  8.  
  9.     private fun add(timer: BuffTimers, time: Int = -1) {
  10.         val time = if (time == -1) timer.time else time
  11.  
  12.         if (time == 0)
  13.             return
  14.  
  15.         timers.removeIf { it.timer.id == timer.id && it.timer.override }
  16.  
  17.         val timer = BuffTimer(timer, time)
  18.         timers.add(timer)
  19.         //ToDo: Display buff for player with seconds remaining
  20.     }
  21.  
  22.     private fun remove(timer: BuffTimers) {
  23.         timers.removeIf {
  24.             it.timer.id == timer.id
  25.         }
  26.         //Todo: Call any onEnd procedures for this timer, i.e. recalculating bonuses
  27.         //ToDo: Remove buff from displayed buffs for player
  28.     }
  29.  
  30.     private fun reset() {
  31.         timers.clear()
  32.         //Todo: Call any onEnd procedures all timers, i.e. recalculating bonuses
  33.         //ToDo: Remove buffs from displayed buffs for player
  34.     }
  35.  
  36.     private fun resetTransient() {
  37.         timers.retainAll { it.timer.persistent }
  38.         //Todo: Call any onEnd procedures all timers, i.e. recalculating bonuses
  39.         //ToDo: Remove buffs from displayed buffs for player
  40.     }
  41.  
  42.     private fun isActive(timer: BuffTimer) : Boolean {
  43.         return timers.contains(timer)
  44.     }
  45.  
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement