Fixed farming patches wrongly getting diseased during offline catchup

This commit is contained in:
Player Name 2025-02-01 14:08:55 +00:00 committed by Ryan
parent cd43f8d269
commit 4a016d45e5
5 changed files with 12 additions and 4 deletions

View file

@ -24,8 +24,15 @@ abstract class RSTimer (var runInterval: Int, val identifier: String = "generict
**/
open fun getInitialRunDelay() : Int { return runInterval }
/**
* Called by core code before the timer is first registered. Called after parse on PersistTimers.
* Called before the timer has been added to the timer list.
**/
open fun beforeRegister (entity: Entity) {}
/**
* Called by core code when the timer is first registered. Called after parse on PersistTimers.
* Called after the timer has been added to the timer list.
**/
open fun onRegister (entity: Entity) {}

View file

@ -13,8 +13,9 @@ class TimerManager (val entity: Entity) {
val toRemoveTimers = ArrayList<RSTimer>()
fun registerTimer (timer: RSTimer) {
timer.beforeRegister(entity)
newTimers.add(timer)
timer.onRegister(entity)
newTimers.add (timer)
}
fun processTimers () {

View file

@ -20,7 +20,7 @@ class Disease : PersistTimer (30, "disease", flags = arrayOf(TimerFlag.ClearOnDe
hitsLeft = root["hitsLeft"].toString().toInt()
}
override fun onRegister (entity: Entity) {
override fun beforeRegister (entity: Entity) {
if (hasTimerActive<Disease>(entity))
removeTimer(entity, this)
else if (entity is Player)

View file

@ -20,7 +20,7 @@ class Frozen : PersistTimer (1, "frozen", flags = arrayOf(TimerFlag.ClearOnDeath
shouldApplyImmunity = root["applyImmunity"] as? Boolean ?: false
}
override fun onRegister (entity: Entity) {
override fun beforeRegister (entity: Entity) {
if (hasTimerActive<FrozenImmunity>(entity)) {
removeTimer(entity, this)
return

View file

@ -15,7 +15,7 @@ class Miasmic : PersistTimer (1, "miasmic", flags = arrayOf(TimerFlag.ClearOnDea
return false
}
override fun onRegister (entity: Entity) {
override fun beforeRegister (entity: Entity) {
if (hasTimerActive<MiasmicImmunity>(entity))
removeTimer(entity, this)
if (hasTimerActive<Miasmic>(entity))