Leprechauns now properly explain why they can't note your items

This commit is contained in:
Bishop
2026-02-08 12:46:45 +00:00
committed by Ryan
parent 4c2188aab5
commit 685157543b
@@ -12,26 +12,29 @@ class LeprechaunNoter : InteractionListener {
val LEPRECHAUNS = intArrayOf(NPCs.TOOL_LEPRECHAUN_3021,NPCs.GOTH_LEPRECHAUN_8000,NPCs.TOOL_LEPRECHAUN_4965,NPCs.TECLYN_2861) val LEPRECHAUNS = intArrayOf(NPCs.TOOL_LEPRECHAUN_3021,NPCs.GOTH_LEPRECHAUN_8000,NPCs.TOOL_LEPRECHAUN_4965,NPCs.TECLYN_2861)
override fun defineListeners() { override fun defineListeners() {
onUseWith(IntType.NPC,CROPS,*LEPRECHAUNS){ player, used, with -> onUseAnyWith(IntType.NPC,*LEPRECHAUNS) { player, used, with ->
val usedItem = used.asItem() val usedItem = used.asItem()
val npc = with.asNpc() val npc = with.asNpc()
val expr = when(npc.id){ val expr = when(npc.id){
3021 -> core.game.dialogue.FacialExpression.OLD_NORMAL NPCs.TOOL_LEPRECHAUN_3021 -> core.game.dialogue.FacialExpression.OLD_NORMAL
else -> core.game.dialogue.FacialExpression.FRIENDLY else -> core.game.dialogue.FacialExpression.FRIENDLY
} }
when {
if(usedItem.noteChange != usedItem.id){ (!usedItem.definition.isUnnoted) -> { // If the item is a banknote
val amt = player.inventory.getAmount(usedItem.id) player.dialogueInterpreter.sendDialogues(npc.id,expr,"That IS a banknote!")
if(player.inventory.remove(Item(usedItem.id,amt))){ }
player.inventory.add(Item(usedItem.noteChange,amt)) (usedItem.id !in CROPS || usedItem.definition.noteId < 0) -> { // If the item is not a crop or cannot be noted
player.dialogueInterpreter.sendDialogues(npc.id,expr,"Nay, I can't turn that into a banknote.")
}
else -> { // Note the item
val amt = amountInInventory(player, usedItem.id)
if (removeItem(player, Item(usedItem.id, amt))) {
addItem(player, usedItem.noteChange, amt)
}
sendItemDialogue(player, usedItem.id, "The leprechaun exchanges your items for banknotes.")
} }
sendItemDialogue(player,usedItem.id,"The leprechaun exchanges your items for banknotes.")
} else {
// Unsure why the line below no longer functions, despite only changing the line above to be more correct. Using your note(NOT CROP) on the leprechaun no longer functions because of this. - Crash
player.dialogueInterpreter.sendDialogues(npc.id,expr,"That IS a banknote!")
} }
return@onUseAnyWith true
return@onUseWith true
} }
} }
} }