mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Added tool leprechaun dialogue (excluding goth)
This commit is contained in:
parent
2ab3c34402
commit
8316a492c9
2 changed files with 188 additions and 1 deletions
|
|
@ -11222,7 +11222,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"npc_id": "8000",
|
"npc_id": "8000",
|
||||||
"loc_data": "{2987,3691,0,0,3}"
|
"loc_data": "{2987,3691,0,1,3}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"npc_id": "2861",
|
"npc_id": "2861",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,187 @@
|
||||||
|
package content.global.skill.farming
|
||||||
|
|
||||||
|
import content.minigame.vinesweeper.Vinesweeper
|
||||||
|
import core.api.openInterface
|
||||||
|
import core.game.dialogue.DialoguePlugin
|
||||||
|
import core.game.dialogue.FacialExpression
|
||||||
|
import core.game.dialogue.Topic
|
||||||
|
import core.game.node.entity.player.Player
|
||||||
|
import core.plugin.Initializable
|
||||||
|
import core.tools.END_DIALOGUE
|
||||||
|
import core.tools.START_DIALOGUE
|
||||||
|
import org.rs09.consts.Components
|
||||||
|
import org.rs09.consts.NPCs
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tool Leprechaun dialogue.
|
||||||
|
* @author ovenbread
|
||||||
|
*
|
||||||
|
* This is really hard to find anything beyond the first dialogue.
|
||||||
|
* https://www.youtube.com/watch?v=2wgWB9U5Ju8 0L25 May 19, 2010
|
||||||
|
* https://www.youtube.com/watch?v=gqend8EibPs: 0:02 Nov 28, 2010
|
||||||
|
* https://www.youtube.com/watch?v=6cnsQsVGzXI: 4:05 Feb 14, 2012 - The Leprechaun in Troll Stronghold!
|
||||||
|
*
|
||||||
|
* Note:
|
||||||
|
* Ultracompost was introduced in 2017(OSRS) 2018(RS3), so it is not included.
|
||||||
|
* Leprechaun Composting was only added in 2016, so it is also not included.
|
||||||
|
*/
|
||||||
|
@Initializable
|
||||||
|
class ToolLeprechaunDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||||
|
|
||||||
|
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||||
|
when(stage) {
|
||||||
|
START_DIALOGUE -> npc(FacialExpression.OLD_HAPPY, "Ah, 'tis a foine day to be sure! Can I help ye with tool", "storage, or a trip to Winkin's Farm, or what?").also { stage++ }
|
||||||
|
|
||||||
|
1 -> showTopics(
|
||||||
|
Topic(FacialExpression.NEUTRAL, "Yes, please.", 10),
|
||||||
|
Topic("What tools can you store?", 2, true),
|
||||||
|
Topic(FacialExpression.NEUTRAL, "No thanks, I'll keep hold of my stuff.", 20),
|
||||||
|
Topic("Can you take me to Winkin's Farm?", 30),
|
||||||
|
// "Other topics." -> Lost City quest where is Shamus. Evil Tree Reward collection in late 2009.
|
||||||
|
)
|
||||||
|
2 -> playerl(FacialExpression.THINKING, "What can you store?").also { stage++ }
|
||||||
|
3 -> npcl(FacialExpression.OLD_HAPPY, "We'll hold onto yer rake, yer seed dibber, yer spade, yer secateurs, yer waterin' can and yer trowel - but mind it's not one of them fancy trowels only archaeologists use!").also { stage++ }
|
||||||
|
4 -> npcl(FacialExpression.OLD_HAPPY, "We'll take a few buckets off yer hands too, and even yer compost and supercompost! There's room in our shed for plenty of compost, so bring it on.").also { stage++ }
|
||||||
|
5 -> npcl(FacialExpression.OLD_HAPPY, "Also if ye hands us yer farming produce, we might be able to change it into banknotes.").also { stage++ }
|
||||||
|
6 -> npcl(FacialExpression.OLD_HAPPY, "So... do ye want to be using the store?").also { stage++ }
|
||||||
|
7 -> showTopics(
|
||||||
|
Topic(FacialExpression.NEUTRAL, "Yes, please.", 10),
|
||||||
|
Topic("What do you do with the tools you're storing?", 11, true),
|
||||||
|
Topic(FacialExpression.NEUTRAL, "No thanks, I'll keep hold of my stuff.", 20),
|
||||||
|
Topic("Can you take me to Winkin's Farm?", 30),
|
||||||
|
)
|
||||||
|
10 -> {
|
||||||
|
end()
|
||||||
|
openInterface(player, Components.FARMING_TOOLS_125)
|
||||||
|
}
|
||||||
|
11 -> playerl(FacialExpression.THINKING, "What do you do with the tools you're storing? They can't possibly all fit in your pockets!").also { stage++ }
|
||||||
|
12 -> npcl(FacialExpression.OLD_HAPPY, "We leprechauns have a shed where we keep 'em. It's a magic shed, so ye can get yer items back from any of us leprechauns whenever ye want. Saves ye havin' to carry loads of stuff around the country!").also { stage++ }
|
||||||
|
13 -> npcl(FacialExpression.OLD_HAPPY, "So... do ye want to be using the store?").also { stage = 1 }
|
||||||
|
|
||||||
|
20 -> npcl(FacialExpression.OLD_NORMAL, "Ye must be dafter than ye look if ye likes luggin' yer tools everywhere ye goes!").also {
|
||||||
|
stage = END_DIALOGUE
|
||||||
|
}
|
||||||
|
30 -> {
|
||||||
|
end()
|
||||||
|
Vinesweeper.Companion.VinesweeperTeleport.teleport(npc!!, player!!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun newInstance(player: Player?): DialoguePlugin {
|
||||||
|
return ToolLeprechaunDialogue(player)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getIds(): IntArray {
|
||||||
|
return intArrayOf(NPCs.TOOL_LEPRECHAUN_3021)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Note:
|
||||||
|
* This Leprechaun Larry is a special case where he does NOT transport you to Winkin's farm, but has a store.
|
||||||
|
*/
|
||||||
|
@Initializable
|
||||||
|
class ToolLeprechaunOnVacationDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||||
|
|
||||||
|
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||||
|
when(stage) {
|
||||||
|
START_DIALOGUE -> npc(FacialExpression.OLD_HAPPY, "Aye, top o' th' mornin' to ya!", "Are ye wantin' help with th' tool store?").also {
|
||||||
|
stage = 2
|
||||||
|
}
|
||||||
|
2 -> showTopics(
|
||||||
|
Topic(FacialExpression.NEUTRAL, "Yes please.", 10),
|
||||||
|
Topic(FacialExpression.THINKING, "Why are you sunbathing up a mountain?", 3),
|
||||||
|
Topic(FacialExpression.NEUTRAL, "No thanks, I'll keep hold of my stuff.", 20),
|
||||||
|
Topic("Would you like to trade?", 12),
|
||||||
|
)
|
||||||
|
3 -> npcl(FacialExpression.OLD_HAPPY, "We tool leprechauns work hard, that we do. An'nary a penny do we get in return. So ye cannae begrudge me mah holiday an' a wee drink or twelve!").also { stage++ }
|
||||||
|
4 -> playerl(FacialExpression.THINKING, "Yes, very nice, but why are you sunbathing up a mountain? Surely a beach would be more appropriate?").also { stage++ }
|
||||||
|
5 -> npcl(FacialExpression.OLD_HAPPY, "Ahh, but I likes th' ruggedy mountain, ye see. Also, I ha' a terrible allergy to sand.").also { stage++ }
|
||||||
|
6 -> playerl(FacialExpression.NEUTRAL, "Fair enough, I suppose.").also { stage++ }
|
||||||
|
7 -> npcl(FacialExpression.OLD_HAPPY, "So were ye wantin' help with th' tool store?").also { stage++ }
|
||||||
|
8 -> showTopics(
|
||||||
|
Topic(FacialExpression.NEUTRAL, "Yes, please.", 10),
|
||||||
|
Topic(FacialExpression.NEUTRAL, "No thanks, I'll keep hold of my stuff.", 20),
|
||||||
|
)
|
||||||
|
10 -> {
|
||||||
|
end()
|
||||||
|
openInterface(player, Components.FARMING_TOOLS_125)
|
||||||
|
}
|
||||||
|
12 -> npcl(FacialExpression.OLD_HAPPY, "Sure, have a look.").also { stage++ }
|
||||||
|
13 -> end().also{
|
||||||
|
npc.openShop(player)
|
||||||
|
}
|
||||||
|
20 -> npcl(FacialExpression.OLD_NORMAL, "Ye must be dafter than ye look if ye likes luggin' yer tools everywhere ye goes!").also {
|
||||||
|
stage = END_DIALOGUE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun newInstance(player: Player?): DialoguePlugin {
|
||||||
|
return ToolLeprechaunOnVacationDialogue(player)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getIds(): IntArray {
|
||||||
|
return intArrayOf(NPCs.TOOL_LEPRECHAUN_4965)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Note:
|
||||||
|
* Goth chatheads are unfortunately updated and have frozen FacialExpressions. Disabled talk-to for now.
|
||||||
|
*/
|
||||||
|
// @Initializable
|
||||||
|
class ToolLeprechaunGothDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||||
|
|
||||||
|
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||||
|
when(stage) {
|
||||||
|
START_DIALOGUE -> npc(FacialExpression.HAPPY, "Ah, 'tis a foine day to be sure! Can I help ye with tool", "storage, or a trip to Winkin's Farm, or what?").also { stage++ }
|
||||||
|
|
||||||
|
1 -> showTopics(
|
||||||
|
Topic(FacialExpression.NEUTRAL, "Yes, please.", 10),
|
||||||
|
Topic("What tools can you store?", 2, true),
|
||||||
|
Topic(FacialExpression.NEUTRAL, "No thanks, I'll keep hold of my stuff.", 20),
|
||||||
|
Topic("Can you take me to Winkin's Farm?", 30),
|
||||||
|
// "Other topics." -> Lost City quest where is Shamus. Evil Tree Reward collection in late 2009.
|
||||||
|
)
|
||||||
|
2 -> playerl(FacialExpression.THINKING, "What can you store?").also { stage++ }
|
||||||
|
3 -> npcl(FacialExpression.HAPPY, "We'll hold onto yer rake, yer seed dibber, yer spade, yer secateurs, yer waterin' can and yer trowel - but mind it's not one of them fancy trowels only archaeologists use!").also { stage++ }
|
||||||
|
4 -> npcl(FacialExpression.HAPPY, "We'll take a few buckets off yer hands too, and even yer compost and supercompost! There's room in our shed for plenty of compost, so bring it on.").also { stage++ }
|
||||||
|
5 -> npcl(FacialExpression.HAPPY, "Also if ye hands us yer farming produce, we might be able to change it into banknotes.").also { stage++ }
|
||||||
|
6 -> npcl(FacialExpression.HAPPY, "So... do ye want to be using the store?").also { stage++ }
|
||||||
|
7 -> showTopics(
|
||||||
|
Topic(FacialExpression.NEUTRAL, "Yes, please.", 10),
|
||||||
|
Topic("What do you do with the tools you're storing?", 11, true),
|
||||||
|
Topic(FacialExpression.NEUTRAL, "No thanks, I'll keep hold of my stuff.", 20),
|
||||||
|
Topic("Can you take me to Winkin's Farm?", 30),
|
||||||
|
)
|
||||||
|
10 -> {
|
||||||
|
end()
|
||||||
|
openInterface(player, Components.FARMING_TOOLS_125)
|
||||||
|
}
|
||||||
|
11 -> playerl(FacialExpression.THINKING, "What do you do with the tools you're storing? They can't possibly all fit in your pockets!").also { stage++ }
|
||||||
|
12 -> npcl(FacialExpression.HAPPY, "We leprechauns have a shed where we keep 'em. It's a magic shed, so ye can get yer items back from any of us leprechauns whenever ye want. Saves ye havin' to carry loads of stuff around the country!").also { stage++ }
|
||||||
|
13 -> npcl(FacialExpression.HAPPY, "So... do ye want to be using the store?").also { stage = 1 }
|
||||||
|
|
||||||
|
20 -> npcl(FacialExpression.NEUTRAL, "Ye must be dafter than ye look if ye likes luggin' yer tools everywhere ye goes!").also {
|
||||||
|
stage = END_DIALOGUE
|
||||||
|
}
|
||||||
|
30 -> {
|
||||||
|
end()
|
||||||
|
Vinesweeper.Companion.VinesweeperTeleport.teleport(npc!!, player!!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun newInstance(player: Player?): DialoguePlugin {
|
||||||
|
return ToolLeprechaunDialogue(player)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getIds(): IntArray {
|
||||||
|
return intArrayOf(NPCs.GOTH_LEPRECHAUN_8000)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue