Even more NPC dialogue fixes

Dialogue animations fixed for Doric's Quest Omglewip in Wizards' Tower
Sawmill operator options handler is now kotlin listener, fixes unreachable bug
Mining guild entrance dwarf grammar fixed
Farsight seer expression and grammar fixed
Zeke of Al Kharid grammar fixed
Chompy bird grammar fixed
Prince Ali grammar fixed
Minecart driver grammar fixed
Reldo from Lost Tribe now ends dialogue correctly when talking about the book
This commit is contained in:
Skal Fate
2023-03-01 08:58:12 +00:00
committed by Ryan
parent 276cb0f7c6
commit 64a12fe5c8
12 changed files with 84 additions and 98 deletions
@@ -79,23 +79,23 @@ public final class DoricDialogue extends DialoguePlugin {
case 1: case 1:
switch (buttonId) { switch (buttonId) {
case 1: case 1:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "I wanted to use your anvils."); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "I wanted to use your anvils.");
stage = 10; stage = 10;
break; break;
case 2: case 2:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "I want to use your whetsone."); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "I want to use your whetsone.");
stage = 20; stage = 20;
break; break;
case 3: case 3:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Mind your own business, shortstuff!"); interpreter.sendDialogues(player, FacialExpression.ANNOYED, "Mind your own business, shortstuff!");
stage = 30; stage = 30;
break; break;
case 4: case 4:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "I was just checking out the landscape."); interpreter.sendDialogues(player, FacialExpression.FRIENDLY, "I was just checking out the landscape.");
stage = 40; stage = 40;
break; break;
case 5: case 5:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "What do you make here?"); interpreter.sendDialogues(player, FacialExpression.ASKING, "What do you make here?");
stage = 50; stage = 50;
break; break;
@@ -112,11 +112,11 @@ public final class DoricDialogue extends DialoguePlugin {
case 12: case 12:
switch (buttonId) { switch (buttonId) {
case 1: case 1:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Yes I will get you the materials."); interpreter.sendDialogues(player, FacialExpression.FRIENDLY, "Yes I will get you the materials.");
stage = 15; stage = 15;
break; break;
case 2: case 2:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "No, hitting rocks is for the boring people, sorry."); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "No, hitting rocks is for the boring people, sorry.");
stage = 13; stage = 13;
break; break;
} }
@@ -138,7 +138,7 @@ public final class DoricDialogue extends DialoguePlugin {
if (!player.getInventory().add(PICKAXE)) { if (!player.getInventory().add(PICKAXE)) {
GroundItemManager.create(PICKAXE, player.getLocation()); GroundItemManager.create(PICKAXE, player.getLocation());
} }
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Certainly, I'll be right back!"); interpreter.sendDialogues(player, FacialExpression.FRIENDLY, "Certainly, I'll be right back!");
stage = 17; stage = 17;
break; break;
case 17: case 17:
@@ -160,7 +160,7 @@ public final class DoricDialogue extends DialoguePlugin {
stage = 41; stage = 41;
break; break;
case 41: case 41:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Will do!"); interpreter.sendDialogues(player, FacialExpression.HAPPY, "Will do!");
stage = 42; stage = 42;
break; break;
case 42: case 42:
@@ -171,7 +171,7 @@ public final class DoricDialogue extends DialoguePlugin {
stage = 51; stage = 51;
break; break;
case 51: case 51:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Do you have any to sell?"); interpreter.sendDialogues(player, FacialExpression.HALF_ASKING, "Do you have any to sell?");
stage = 52; stage = 52;
break; break;
case 52: case 52:
@@ -179,7 +179,7 @@ public final class DoricDialogue extends DialoguePlugin {
stage = 53; stage = 53;
break; break;
case 53: case 53:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Ah, fair enough."); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "Ah, fair enough.");
stage = 54; stage = 54;
break; break;
case 54: case 54:
@@ -187,10 +187,10 @@ public final class DoricDialogue extends DialoguePlugin {
break; break;
case 100: case 100:
if (player.getInventory().contains(434, 6) && player.getInventory().contains(440, 2) && player.getInventory().contains(436, 4)) { if (player.getInventory().contains(434, 6) && player.getInventory().contains(440, 2) && player.getInventory().contains(436, 4)) {
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "I have everything you need."); interpreter.sendDialogues(player, FacialExpression.HAPPY, "I have everything you need.");
stage = 200; stage = 200;
} else { } else {
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Sorry, I don't have them all yet."); interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Sorry, I don't have them all yet.");
stage = 101; stage = 101;
} }
break; break;
@@ -205,11 +205,11 @@ public final class DoricDialogue extends DialoguePlugin {
case 103: case 103:
switch (buttonId) { switch (buttonId) {
case 1: case 1:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Where can I find those?"); interpreter.sendDialogues(player, FacialExpression.HALF_ASKING, "Where can I find those?");
stage = 110; stage = 110;
break; break;
case 2: case 2:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Certainly, I'll be right back."); interpreter.sendDialogues(player, FacialExpression.HAPPY, "Certainly, I'll be right back.");
stage = 113; stage = 113;
break; break;
@@ -240,7 +240,7 @@ public final class DoricDialogue extends DialoguePlugin {
} }
break; break;
case 500: case 500:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Not too bad, Doric."); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "Not too bad, Doric.");
stage = 501; stage = 501;
break; break;
case 501: case 501:
@@ -47,7 +47,7 @@ public final class MiningGuildDwarf extends DialoguePlugin {
return true; return true;
} }
} }
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Welcome to the Mining Guild.", "Can I help you with anything?"); interpreter.sendDialogues(npc, FacialExpression.ASKING, "Welcome to the Mining Guild.", "Can I help you with anything?");
stage = 0; stage = 0;
return true; return true;
} }
@@ -59,40 +59,40 @@ public final class MiningGuildDwarf extends DialoguePlugin {
end(); end();
break; break;
case 0: case 0:
interpreter.sendOptions("What would you like to say?", "What have you got in the Guild?", "What do you dwarves do wiyth the ore you mine?", "No thanks, I'm fine."); interpreter.sendOptions("What would you like to say?", "What have you got in the Guild?", "What do you dwarves do with the ore you mine?", "No thanks, I'm fine.");
stage = 1; stage = 1;
break; break;
case 1: case 1:
switch (buttonId) { switch (buttonId) {
case 1: case 1:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What have you got in the Guild?"); interpreter.sendDialogues(player, FacialExpression.ASKING, "What have you got in the Guild?");
stage = 10; stage = 10;
break; break;
case 2: case 2:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What do you dwarves do with the ore you mine?"); interpreter.sendDialogues(player, FacialExpression.ASKING, "What do you dwarves do with the ore you mine?");
stage = 20; stage = 20;
break; break;
case 3: case 3:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No thanks, I'm fine."); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "No thanks, I'm fine.");
stage = 30; stage = 30;
break; break;
} }
break; break;
case 10: case 10:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Ooh, it's WONDEFRFUL! There are lots of coal rocks,", "and even a few mithril rocks in the guild,", "all exclusively for people with at least level 60 mining", "There's no better mining site anywhere near here."); interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Ooh, it's WONDEFRFUL! There are lots of coal rocks,", "and even a few mithril rocks in the guild,", "all exclusively for people with at least level 60 mining", "There's no better mining site anywhere near here.");
stage = 11; stage = 11;
break; break;
case 11: case 11:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "So you won't let me go in there?"); interpreter.sendDialogues(player, FacialExpression.HALF_ASKING, "So you won't let me go in there?");
stage = 12; stage = 12;
break; break;
case 12: case 12:
if (player.getSkills().getStaticLevel(Skills.MINING) < 60) { if (player.getSkills().getStaticLevel(Skills.MINING) < 60) {
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Sorry, but the rules are rules. Do some more training", "first."); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL, "Sorry, but the rules are rules. Do some more training", "first.");
stage = 13; stage = 13;
} else { } else {
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Yes, you can enter if you wish."); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL, "Yes, you can enter if you wish.");
stage = 14; stage = 14;
} }
break; break;
@@ -103,19 +103,19 @@ public final class MiningGuildDwarf extends DialoguePlugin {
end(); end();
break; break;
case 20: case 20:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "What do you think? We smelt it into bars, smith the", "metal to make armour and weapons, then we exchange", "them for goods and services."); interpreter.sendDialogues(npc, FacialExpression.HALF_THINKING, "What do you think? We smelt it into bars, smith the", "metal to make armour and weapons, then we exchange", "them for goods and services.");
stage = 21; stage = 21;
break; break;
case 21: case 21:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I don't see many dwarves here."); interpreter.sendDialogues(player, FacialExpression.HALF_THINKING, "I don't see many dwarves here.");
stage = 22; stage = 22;
break; break;
case 22: case 22:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "No, this is only a mining outpost. We dwarves don't", "much like to settle in human cities. Most of the ore is", "carted off to Keldagrim, the great dwarven city-", "They've got a special blast furnace up there - it makes"); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL, "No, this is only a mining outpost. We dwarves don't", "much like to settle in human cities. Most of the ore is", "carted off to Keldagrim, the great dwarven city-", "They've got a special blast furnace up there - it makes");
stage = 23; stage = 23;
break; break;
case 23: case 23:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "smelting the ore so much easier. There are plenty of", "dwarven traders working in Keldagrim."); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL, "smelting the ore so much easier. There are plenty of", "dwarven traders working in Keldagrim.");
stage = 24; stage = 24;
break; break;
case 24: case 24:
@@ -91,7 +91,7 @@ public final class ZekeDialogue extends DialoguePlugin {
stage = 32; stage = 32;
break; break;
case 32: case 32:
interpreter.sendDialogues(npc, FacialExpression.ANGRY, "The banana-brained nitwits who make them would never", "dream of selling any to to me."); interpreter.sendDialogues(npc, FacialExpression.ANGRY, "The banana-brained nitwits who make them would never", "dream of selling any to me.");
stage = 33; stage = 33;
break; break;
case 33: case 33:
@@ -109,7 +109,7 @@ public final class MinecartDriverDialogue extends DialoguePlugin {
stage++; stage++;
break; break;
case 7: case 7:
player("One good turn deserves another."); player("One good turn deserves another.");
stage++; stage++;
break; break;
case 8: case 8:
@@ -248,7 +248,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() {
private fun handleQuestStartDialogue(player: Player?, buttonId: Int) { private fun handleQuestStartDialogue(player: Player?, buttonId: Int) {
when(stage) { when(stage) {
0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey you creature! Make some stabbers! I wanna hunt da chompy?").also { stage++ } 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey you creature! Make some stabbers! I wanna hunt da chompy?").also { stage++ }
1 -> options("What are 'stabbers'?", "What's a 'chompy'?", "Ok, Ill make you some 'stabbers'.", "Er, make your own 'stabbers'!").also { stage++ } 1 -> options("What are 'stabbers'?", "What's a 'chompy'?", "Ok, I'll make you some 'stabbers'.", "Er, make your own 'stabbers'!").also { stage++ }
2 -> when(buttonId) { 2 -> when(buttonId) {
1 -> playerl("What are 'stabbers'?").also { stage = 3 } 1 -> playerl("What are 'stabbers'?").also { stage = 3 }
2 -> playerl("What's a 'chompy'?").also { stage = 7 } 2 -> playerl("What's a 'chompy'?").also { stage = 7 }
@@ -55,26 +55,26 @@ public final class PhantuwtiFantstuwiFarSight extends DialoguePlugin {
case 0: case 0:
switch (buttonId) { switch (buttonId) {
case 1: case 1:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Hello, what is this place?"); interpreter.sendDialogues(player, FacialExpression.ASKING, "Hello, what is this place?");
stage = 10; stage = 10;
break; break;
case 2: case 2:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What do you do here?"); interpreter.sendDialogues(player, FacialExpression.HALF_ASKING, "What do you do here?");
stage = 20; stage = 20;
break; break;
case 3: case 3:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Do you have any quests?"); interpreter.sendDialogues(player, FacialExpression.HALF_ASKING, "Do you have any quests?");
stage = 30; stage = 30;
break; break;
case 4: case 4:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Ok, thanks."); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "Ok, thanks.");
stage = 40; stage = 40;
break; break;
} }
break; break;
case 10: case 10:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "This is Seers Village! We're an organisation of mystically", "gifted people with the power of foresight...we see things", "that have yet to come to pass."); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL, "This is Seers Village! We're an organisation of mystically", "gifted people with the power of foresight...we see things", "that have yet to come to pass.");
stage = 11; stage = 11;
break; break;
case 11: case 11:
@@ -82,7 +82,7 @@ public final class PhantuwtiFantstuwiFarSight extends DialoguePlugin {
stage = 0; stage = 0;
break; break;
case 20: case 20:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "A lot of our time is spent adressing everyday sorts of", "things, plus we meditate a lot and ehhance our", "powers of mystical foresight."); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL, "A lot of our time is spent addressing everyday sorts of", "things, plus we meditate a lot and enhance our", "powers of mystical foresight.");
stage = 31; stage = 31;
break; break;
case 30: case 30:
@@ -81,7 +81,7 @@ public class PrinceAliDialogue extends DialoguePlugin {
stage = 1; stage = 1;
break; break;
case 1: case 1:
interpreter.sendDialogues(player, null, "With a disguise. I have removed the Lady Keli. she is", "tied up, but will not stay tied up for long."); interpreter.sendDialogues(player, null, "With a disguise. I have removed the Lady Keli. She is", "tied up, but will not stay tied up for long.");
stage = 2; stage = 2;
break; break;
case 2: case 2:
@@ -2,6 +2,7 @@ package content.region.misthalin.varrock.dialogue;
import core.game.component.Component; import core.game.component.Component;
import core.game.dialogue.DialoguePlugin; import core.game.dialogue.DialoguePlugin;
import core.game.dialogue.FacialExpression;
import core.game.node.entity.npc.NPC; import core.game.node.entity.npc.NPC;
import core.plugin.Initializable; import core.plugin.Initializable;
import core.game.node.entity.player.Player; import core.game.node.entity.player.Player;
@@ -30,7 +31,7 @@ public class SawmillOperator extends DialoguePlugin {
@Override @Override
public boolean open(Object... args) { public boolean open(Object... args) {
npc = (NPC) args[0]; npc = (NPC) args[0];
npc("Do you want me to make some planks for you? Or", "would you be interested in some other housing supplies?"); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL,"Do you want me to make some planks for you? Or", "would you be interested in some other housing supplies?");
stage = 0; stage = 0;
return true; return true;
} }
@@ -45,11 +46,11 @@ public class SawmillOperator extends DialoguePlugin {
case 1: case 1:
switch (buttonId) { switch (buttonId) {
case 1: case 1:
player("Planks please!"); interpreter.sendDialogues(player, FacialExpression.HAPPY,"Planks please!");
stage = 10; stage = 10;
break; break;
case 2: case 2:
player("What kind of planks can you make?"); interpreter.sendDialogues(player, FacialExpression.ASKING,"What kind of planks can you make?");
stage = 20; stage = 20;
break; break;
case 3: case 3:
@@ -57,17 +58,17 @@ public class SawmillOperator extends DialoguePlugin {
npc.openShop(player); npc.openShop(player);
break; break;
case 4: case 4:
player("Nothing, thanks."); interpreter.sendDialogues(player, FacialExpression.FRIENDLY,"Nothing, thanks.");
stage = 40; stage = 40;
break; break;
} }
break; break;
case 40: case 40:
npc("Well come back when you want some. You can't get", "good quality planks anywhere but here!"); interpreter.sendDialogues(npc, FacialExpression.FRIENDLY,"Well come back when you want some. You can't get", "good quality planks anywhere but here!");
stage = 999; stage = 999;
break; break;
case 10: case 10:
npc("What kind of planks do you want?"); interpreter.sendDialogues(npc, FacialExpression.HALF_ASKING,"What kind of planks do you want?");
stage = 11; stage = 11;
break; break;
case 11: case 11:
@@ -75,11 +76,11 @@ public class SawmillOperator extends DialoguePlugin {
player.getInterfaceManager().open(new Component(403)); player.getInterfaceManager().open(new Component(403));
break; break;
case 20: case 20:
npc("I can make planks from wood, oak, teak and mahogany.", "I don't make planks from other woods as they're no", "good for making furniture."); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL,"I can make planks from wood, oak, teak and mahogany.", "I don't make planks from other woods as they're no", "good for making furniture.");
stage = 21; stage = 21;
break; break;
case 21: case 21:
npc("Wood and oak are all over the place, but teak and", "mahogany can only be found in a few places like", "Karamja and Etceteria."); interpreter.sendDialogues(npc, FacialExpression.NEUTRAL,"Wood and oak are all over the place, but teak and", "mahogany can only be found in a few places like", "Karamja and Etceteria.");
stage = 999; stage = 999;
break; break;
case 999: case 999:
@@ -0,0 +1,31 @@
package content.region.misthalin.varrock.handlers
import core.game.component.Component
import core.game.interaction.IntType
import core.game.interaction.InteractionListener
import core.game.world.map.Location
import org.rs09.consts.NPCs
class SawmillListener : InteractionListener {
override fun defineListeners() {
on(NPCs.SAWMILL_OPERATOR_4250, IntType.NPC, "talk-to") { player, node ->
player.dialogueInterpreter.open(4250, node)
return@on true
}
on(NPCs.SAWMILL_OPERATOR_4250, IntType.NPC, "buy-plank") { player, _ ->
player.interfaceManager.open( Component(403))
return@on true
}
on(NPCs.SAWMILL_OPERATOR_4250, IntType.NPC, "trade") { player, node ->
node.asNpc().openShop(player)
return@on true
}
setDest(IntType.NPC, intArrayOf(NPCs.SAWMILL_OPERATOR_4250), "talk-to", "buy-plank", "trade") { _, _ ->
return@setDest Location.create(3302, 3491 , 0)
}
}
}
@@ -1,48 +0,0 @@
package content.region.misthalin.varrock.handlers;
import core.cache.def.impl.NPCDefinition;
import core.game.component.Component;
import core.game.interaction.OptionHandler;
import core.game.node.Node;
import core.game.node.entity.player.Player;
import core.game.world.map.Location;
import core.plugin.Initializable;
import core.plugin.Plugin;
/**
* Represents the plugin to handle the options for saw mill man.
* @author 'Vexia
* @date Oct 8, 2013
*/
@Initializable
public class SawmillOptionPlugin extends OptionHandler {
@Override
public Plugin<Object> newInstance(Object arg) throws Throwable {
NPCDefinition.forId(4250).getHandlers().put("option:buy-plank", this);
NPCDefinition.forId(4250).getHandlers().put("option:talk-to", this);
NPCDefinition.forId(4250).getHandlers().put("option:trade", this);
return this;
}
@Override
public boolean handle(Player player, Node node, String option) {
switch (option) {
case "buy-plank":
player.getInterfaceManager().open(new Component(403));
return true;
case "talk-to":
player.getDialogueInterpreter().open(4250, node);
return true;
case "trade":
node.asNpc().openShop(player);
return true;
}
return true;
}
@Override
public Location getDestination(Node node, Node n) {
return Location.create(3302, 3491, 0);
}
}
@@ -241,6 +241,8 @@ public class ReldoDialogue extends DialoguePlugin {
stage++; stage++;
break; break;
case 2006: case 2006:
end();
break;
} }
return true; return true;
@@ -39,7 +39,7 @@ public final class DrOnglewipDialogue extends DialoguePlugin {
@Override @Override
public boolean open(Object... args) { public boolean open(Object... args) {
npc = (NPC) args[0]; npc = (NPC) args[0];
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "Do you live here too?"); interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "Do you live here too?");
stage = 0; stage = 0;
return true; return true;
} }
@@ -52,7 +52,7 @@ public final class DrOnglewipDialogue extends DialoguePlugin {
stage = 1; stage = 1;
break; break;
case 1: case 1:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "So where's this Gnome Stronghold?"); interpreter.sendDialogues(player, FacialExpression.ASKING, "So where's this Gnome Stronghold?");
stage = 2; stage = 2;
break; break;
case 2: case 2:
@@ -60,7 +60,7 @@ public final class DrOnglewipDialogue extends DialoguePlugin {
stage = 3; stage = 3;
break; break;
case 3: case 3:
interpreter.sendDialogues(player, FacialExpression.OLD_NORMAL, "I'll try and make time for it. Sounds like a nice place."); interpreter.sendDialogues(player, FacialExpression.FRIENDLY, "I'll try and make time for it. Sounds like a nice place.");
stage = 4; stage = 4;
break; break;
case 4: case 4: