Herb cleaning is now a pulse that cleans all the matching herbs in your inventory

This commit is contained in:
randy 2024-11-11 19:14:58 -07:00
parent ac14e7a22e
commit 62463576cf

View file

@ -7,6 +7,9 @@ import core.game.node.entity.skill.Skills
import core.game.node.item.Item
import java.util.*
import core.game.system.task.Pulse
/**
* Dirty herb cleaning listener
* @author Woah
@ -19,16 +22,35 @@ class HerbCleanListener : InteractionListener {
val herb: Herbs = Herbs.forItem(node as Item) ?: return@on true
if (getDynLevel(player, Skills.HERBLORE) < herb.level) {
sendMessage(player, "You cannot clean this herb. You need a Herblore level of " + herb.level + " to attempt this.")
sendMessage(player, "You need level " + herb.level + " Herblore to clean the " + herb.product.name.replace("Clean", "Grimy") + ".")
return@on true
}
val exp = herb.experience
player.pulseManager.run(object : Pulse() {
var counter = 0
override fun pulse(): Boolean {
if (amountInInventory(player, node.asItem().id) == 0 )
return true
if(removeItem(player, node.asItem().id)) {
addItem(player, herb.product.id)
rewardXP(player, Skills.HERBLORE, exp)
playAudio(player, 5153)
//sendMessage(player, "You clean the dirt from the " + herb.product.name.lowercase(Locale.getDefault()).replace("clean", "").trim { it <= ' ' } + " leaf.")
}
return false
}
})
return@on true
/* Vanilla actions, replaced by pulse above
replaceSlot(player, node.asItem().slot, herb.product, node.asItem())
rewardXP(player, Skills.HERBLORE, exp)
playAudio(player, 5153)
sendMessage(player, "You clean the dirt from the " + herb.product.name.lowercase(Locale.getDefault()).replace("clean", "").trim { it <= ' ' } + " leaf.")
return@on true
*/
}
}
}