Leprechauns now properly explain why they can't note your items
This commit is contained in:
@@ -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)
|
|
||||||
if(player.inventory.remove(Item(usedItem.id,amt))){
|
|
||||||
player.inventory.add(Item(usedItem.noteChange,amt))
|
|
||||||
}
|
|
||||||
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!")
|
player.dialogueInterpreter.sendDialogues(npc.id,expr,"That IS a banknote!")
|
||||||
}
|
}
|
||||||
|
(usedItem.id !in CROPS || usedItem.definition.noteId < 0) -> { // If the item is not a crop or cannot be noted
|
||||||
return@onUseWith true
|
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.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return@onUseAnyWith true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user