mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-10 10:20:41 -07:00
Convert poorly written Fam Crest plugin to Listener
This commit is contained in:
parent
1e6ca6b379
commit
2b98e963b9
1 changed files with 22 additions and 32 deletions
|
|
@ -1,42 +1,32 @@
|
|||
package plugin.quest.members.familycrest
|
||||
package rs09.game.content.quest.members.familycrest
|
||||
|
||||
|
||||
import core.game.interaction.NodeUsageEvent;
|
||||
import core.game.interaction.UseWithHandler;
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.item.Item;
|
||||
import core.plugin.Initializable
|
||||
import core.plugin.Plugin;
|
||||
import api.*
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
import rs09.game.interaction.InteractionListener
|
||||
|
||||
@Initializable
|
||||
class JohnathonAntiPosionInteraction: UseWithHandler(175, 177, 179, 2446 ) {
|
||||
class JohnathonAntiPosionInteraction: InteractionListener() {
|
||||
override fun defineListeners() {
|
||||
val poisons = intArrayOf(Items.ANTIPOISON4_2446, Items.ANTIPOISON3_175, Items.ANTIPOISON2_177, Items.ANTIPOISON1_179)
|
||||
|
||||
override fun newInstance(arg: Any?): Plugin<Any> {
|
||||
addHandler(668, NPC_TYPE, this)
|
||||
return this
|
||||
}
|
||||
onUseWith(NPC, poisons, NPCs.JOHNATHON_668){player, used, with ->
|
||||
val npc = with.asNpc()
|
||||
val antip = used.asItem()
|
||||
val stage = questStage(player, "Family Crest")
|
||||
|
||||
override fun handle(event: NodeUsageEvent?): Boolean {
|
||||
if (event != null) {
|
||||
val qstage = event.player.questRepository.getQuest("Family Crest").getStage(event.player)
|
||||
val itemUsed = event.usedItem.id
|
||||
if(qstage == 17){
|
||||
event.player.questRepository.getQuest("Family Crest").setStage(event.player, 18)
|
||||
val index = poisons.indexOf(used.id)
|
||||
val returnItem = if(index + 1 == poisons.size) Items.VIAL_229 else poisons[index + 1]
|
||||
|
||||
when(itemUsed){
|
||||
2446 -> event.player.inventory.remove(Item(2446)).also{event.player.inventory.add(Item(175))}
|
||||
175 -> event.player.inventory.remove(Item(175)).also{event.player.inventory.add(Item(177))}
|
||||
177 -> event.player.inventory.remove(Item(177)).also{event.player.inventory.add(Item(179))}
|
||||
179 -> event.player.inventory.remove(Item(179)).also{event.player.inventory.add(Item(229))}
|
||||
}
|
||||
|
||||
event.player.getDialogueInterpreter().open(668, NPC(668))
|
||||
}else{
|
||||
event.player.sendMessage("Nothing interesting happened.")
|
||||
if(stage == 17 && removeItem(player, antip)){
|
||||
addItem(player, returnItem)
|
||||
setQuestStage(player, "Family Crest", 18)
|
||||
openDialogue(player, NPCs.JOHNATHON_668, npc)
|
||||
} else {
|
||||
sendMessage(player, "Nothing interesting happens.")
|
||||
}
|
||||
|
||||
return@onUseWith true
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue