mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Converted tanners to Kotlin
Fixed snake hide tanning Fixed interaction with Canifis tanner
This commit is contained in:
parent
66b1efdaa3
commit
da6f05f8ce
9 changed files with 202 additions and 300 deletions
|
|
@ -1,136 +0,0 @@
|
|||
package content.global.handlers.iface;
|
||||
|
||||
import core.game.dialogue.DialoguePlugin;
|
||||
import content.global.skill.crafting.TanningProduct;
|
||||
import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.plugin.Initializable;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
/**
|
||||
* Represents the ellis dialogue plugin.
|
||||
* @author 'Vexia
|
||||
* @version 1.0
|
||||
*/
|
||||
@Initializable
|
||||
public final class EllisDialogue extends DialoguePlugin {
|
||||
|
||||
/**
|
||||
* Constructs a new {@code EllisDialogue} {@code Object}.
|
||||
*/
|
||||
public EllisDialogue() {
|
||||
/**
|
||||
* empty.
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new {@code EllisDialogue} {@code Object}.
|
||||
* @param player the player.
|
||||
*/
|
||||
public EllisDialogue(Player player) {
|
||||
super(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DialoguePlugin newInstance(Player player) {
|
||||
return new EllisDialogue(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean open(Object... args) {
|
||||
npc = (NPC) args[0];
|
||||
npc("Greetings friend I am a manufacturer of leather.");
|
||||
stage = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(int interfaceId, int buttonId) {
|
||||
switch (stage) {
|
||||
case 0:
|
||||
player.getInventory().refresh();
|
||||
Item items[] = player.getInventory().toArray();
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
if (items[i] == null) {
|
||||
continue;
|
||||
}
|
||||
if (TanningProduct.forItemId(items[i].getId()) != null) {
|
||||
npc("I see you have brought me some hides.", "Would you like me to tan them for you?");
|
||||
stage = 100;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
options("Can I buy some leather?", "Leather is rather weak stuff.");
|
||||
stage = 1;
|
||||
break;
|
||||
case 1:
|
||||
switch (buttonId) {
|
||||
case 1:
|
||||
player("Can I buy some leather then?");
|
||||
stage = 10;
|
||||
break;
|
||||
case 2:
|
||||
player("Leather is rather weak stuff.");
|
||||
stage = 3000;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
npc("I make leather from animal hides. Bring me some cowhides", "and one gold coin per hide, and I'll tan them into soft", "leather for you.");
|
||||
stage = 2000;
|
||||
break;
|
||||
case 2000:
|
||||
end();
|
||||
break;
|
||||
case 3000:
|
||||
npc("Normal leather may be quite weak, but it's very cheap - I", "make it from cowhides for only 1 gp per hide - and it's so", "easy to craft that anyone can work with it.");
|
||||
stage = 3001;
|
||||
break;
|
||||
case 3001:
|
||||
npc("Alternatively you could try hard leather. It's not so easy", "to craft, but I only charge 3 gp per cowhide to prepare it,", "and it makes much sturdier armour.");
|
||||
stage = 3002;
|
||||
break;
|
||||
case 3002:
|
||||
player("Thanks; I'll bear it in mind.");
|
||||
stage = 3003;
|
||||
break;
|
||||
case 3003:
|
||||
end();
|
||||
break;
|
||||
case 100:
|
||||
options("Yes please.", "No thanks.");
|
||||
stage = 101;
|
||||
break;
|
||||
case 101:
|
||||
switch (buttonId) {
|
||||
case 1:
|
||||
player("Yes please.");
|
||||
stage = 210;
|
||||
break;
|
||||
case 2:
|
||||
player("No thanks.");
|
||||
stage = 200;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 210:
|
||||
end();
|
||||
TanningProduct.open(player, 2824);
|
||||
break;
|
||||
case 200:
|
||||
npc("Very well, sir, as you wish.");
|
||||
stage = 201;
|
||||
break;
|
||||
case 201:
|
||||
end();
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getIds() {
|
||||
return new int[] { 2824 };
|
||||
}
|
||||
}
|
||||
|
|
@ -15,7 +15,7 @@ public enum TanningProduct {
|
|||
SOFT_LEATHER(1, 1739, 1741),
|
||||
HARD_LEATHER(2, 1739, 1743),
|
||||
SNAKESKIN(3, 6287, 6289),
|
||||
SNAKESKIN2(4, 6287, 6289),
|
||||
SNAKESKIN2(4, 7801, 6289),
|
||||
GREEN_DHIDE(5, 1753, 1745),
|
||||
BLUEDHIDE(6, 1751, 2505),
|
||||
REDDHIDE(7, 1749, 2507),
|
||||
|
|
@ -120,9 +120,9 @@ public enum TanningProduct {
|
|||
} else if (def == HARD_LEATHER) {
|
||||
coins = 3;
|
||||
} else if (def == SNAKESKIN) {
|
||||
coins = 20;
|
||||
} else if (def == SNAKESKIN2) {
|
||||
coins = 15;
|
||||
} else if (def == SNAKESKIN2) {
|
||||
coins = 20;
|
||||
} else {
|
||||
coins = 20;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,56 +1,80 @@
|
|||
package content.region.asgarnia.dialogue
|
||||
|
||||
import content.global.skill.crafting.TanningProduct
|
||||
import core.api.amountInInventory
|
||||
import core.api.inInventory
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.plugin.Initializable
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
import core.tools.END_DIALOGUE
|
||||
|
||||
/**
|
||||
* Handles the Crafting Guild Tanner's dialogue.
|
||||
* @author bushtail
|
||||
*/
|
||||
|
||||
@Initializable
|
||||
class TannerDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun newInstance(player: Player) : DialoguePlugin {
|
||||
override fun newInstance(player: Player): DialoguePlugin {
|
||||
return TannerDialogue(player)
|
||||
}
|
||||
|
||||
override fun open(vararg args: Any?) : Boolean {
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
npcl(FacialExpression.NEUTRAL, "Greetings friend. I am a manufacturer of leather.")
|
||||
stage = 0
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int) : Boolean {
|
||||
when(stage) {
|
||||
0 -> options("Can I buy some leather then?", "Leather is rather weak stuff.").also{ stage++ }
|
||||
1 -> when(buttonId) {
|
||||
1 -> player(FacialExpression.ASKING,"Can I buy some leather then?").also{ stage = 10 }
|
||||
2 -> player(FacialExpression.SUSPICIOUS, "Leather is rather weak stuff.").also { stage = 20 }
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> {
|
||||
var hasHides = false
|
||||
|
||||
for (tanningProduct in TanningProduct.values()) {
|
||||
if (inInventory(player, tanningProduct.item)) {
|
||||
hasHides = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
10 -> npcl(FacialExpression.FRIENDLY, "Certainly!").also { stage = 30 }
|
||||
20 -> npcl(FacialExpression.NOD_YES, "Normal leather may be quite weak, but it's very cheap - I " +
|
||||
"make it from cowhides for only 1 gp per hide - and it's so easy to craft that anyone can work with it.").also{ stage++ }
|
||||
21 -> npcl(FacialExpression.HALF_THINKING, "Alternatively you could try hard leather. It's not so easy " +
|
||||
"to craft, but I only charge 3 gp per cowhide to prepare it, and it makes much sturdier armour.").also{ stage++ }
|
||||
22 -> npcl(FacialExpression.FRIENDLY, "I can also tan snake hides and dragonhides, suitable for crafting" +
|
||||
"into the highest quality armour for rangers.").also{ stage++ }
|
||||
23 -> player(FacialExpression.NEUTRAL, "Thanks, I'll bear it in mind.").also { stage = END_DIALOGUE }
|
||||
30 -> {
|
||||
end()
|
||||
TanningProduct.open(player, npc.id)
|
||||
if(hasHides) {
|
||||
npcl(FacialExpression.FRIENDLY, "I see you have brought me some hides. Would you like me to tan them for you?").also { stage = 10 }
|
||||
} else {
|
||||
options("Can I buy some leather?", "Leather is rather weak stuff.").also { stage = 20 }
|
||||
}
|
||||
}
|
||||
|
||||
10 -> options("Yes please.", "No thanks.").also { stage++ }
|
||||
11 -> when (buttonId) {
|
||||
1 -> playerl(FacialExpression.HAPPY, "Yes please.").also { stage = 12 }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "No thanks.").also { stage = 13 }
|
||||
}
|
||||
|
||||
12 -> end().also { TanningProduct.open(player, NPCs.TANNER_804) }
|
||||
13 -> npcl(FacialExpression.FRIENDLY, "Very well, @g[sir,madam], as you wish.").also { stage = END_DIALOGUE }
|
||||
|
||||
20 -> when (buttonId) {
|
||||
1 -> playerl(FacialExpression.ASKING, "Can I buy some leather?").also { stage = 21 }
|
||||
2 -> playerl(FacialExpression.SUSPICIOUS, "Leather is rather weak stuff.").also { stage = 22 }
|
||||
}
|
||||
|
||||
21 -> npcl(FacialExpression.FRIENDLY, "I make leather from animal hides. Bring me some cowhides and one gold coin per hide, and I'll tan them into soft leather for you.").also { stage = END_DIALOGUE }
|
||||
|
||||
22 -> npcl(FacialExpression.NOD_YES, "Normal leather may be quite weak, but it's very cheap - I make it from cowhides for only 1 gp per hide - and it's so easy to craft that anyone can work with it.").also { stage++ }
|
||||
23 -> npcl(FacialExpression.HALF_THINKING, "Alternatively you could try hard leather. It's not so easy to craft, but I only charge 3 gp per cowhide to prepare it, and it makes much sturdier armour.").also { stage++ }
|
||||
24 -> npcl(FacialExpression.FRIENDLY, "I can also tan snake hides and dragonhides, suitable for crafting into the highest quality armour for rangers.").also { stage++ }
|
||||
25 -> playerl(FacialExpression.NEUTRAL, "Thanks, I'll bear it in mind.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
override fun getIds() : IntArray {
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.TANNER_804)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@ package content.region.asgarnia.handlers
|
|||
|
||||
import content.global.skill.crafting.TanningProduct
|
||||
import core.api.*
|
||||
import core.game.interaction.IntType
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.world.map.Location
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
import org.rs09.consts.Scenery
|
||||
import content.region.asgarnia.dialogue.TheDoorDialogues
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.interaction.IntType
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
/**
|
||||
* @author bushtail
|
||||
|
|
@ -17,13 +17,18 @@ import org.rs09.consts.NPCs
|
|||
|
||||
class CraftingGuildListeners : InteractionListener {
|
||||
private val GUILD_DOOR = Scenery.GUILD_DOOR_2647
|
||||
private val REQUIRED_ITEMS = intArrayOf(Items.BROWN_APRON_1757, Items.CRAFTING_CAPE_9780, Items.CRAFTING_CAPET_9781)
|
||||
private val APRON = Items.BROWN_APRON_1757
|
||||
private val CAPE = Items.CRAFTING_CAPE_9780
|
||||
|
||||
override fun defineListeners() {
|
||||
on(GUILD_DOOR, IntType.SCENERY, "open") { player, door ->
|
||||
if (player.location == Location.create(2933, 3289, 0)) {
|
||||
if (hasLevelStat(player, Skills.CRAFTING, 40)) {
|
||||
if (anyInEquipment(player, *REQUIRED_ITEMS)) {
|
||||
if (inEquipment(player, APRON)) {
|
||||
openDialogue(player, TheDoorDialogues(0))
|
||||
core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door.asScenery())
|
||||
return@on true
|
||||
} else if (inEquipment(player, CAPE)) {
|
||||
openDialogue(player, TheDoorDialogues(0))
|
||||
core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door.asScenery())
|
||||
return@on true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
package content.region.desert.alkharid.dialogue
|
||||
|
||||
import content.global.skill.crafting.TanningProduct
|
||||
import core.api.inInventory
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
/**
|
||||
* Handles Ellis's dialogue.
|
||||
*/
|
||||
@Initializable
|
||||
class EllisDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
npcl(FacialExpression.FRIENDLY, "Greetings friend. I am a manufacturer of leather.").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> {
|
||||
var hasHides = false
|
||||
|
||||
for (tanningProduct in TanningProduct.values()) {
|
||||
if (inInventory(player, tanningProduct.item)) {
|
||||
hasHides = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if(hasHides) {
|
||||
npcl(FacialExpression.FRIENDLY, "I see you have brought me some hides. Would you like me to tan them for you?").also { stage = 10 }
|
||||
} else {
|
||||
options("Can I buy some leather?", "Leather is rather weak stuff.").also { stage = 20 }
|
||||
}
|
||||
}
|
||||
|
||||
10 -> options("Yes please.", "No thanks.").also { stage++ }
|
||||
11 -> when (buttonId) {
|
||||
1 -> playerl(FacialExpression.HAPPY, "Yes please.").also { stage = 12 }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "No thanks.").also { stage = 13 }
|
||||
}
|
||||
|
||||
12 -> end().also { TanningProduct.open(player, NPCs.ELLIS_2824) }
|
||||
13 -> npcl(FacialExpression.FRIENDLY, "Very well, @g[sir,madam], as you wish.").also { stage = END_DIALOGUE }
|
||||
|
||||
20 -> when (buttonId) {
|
||||
1 -> playerl(FacialExpression.ASKING, "Can I buy some leather?").also { stage = 21 }
|
||||
2 -> playerl(FacialExpression.SUSPICIOUS, "Leather is rather weak stuff.").also { stage = 22 }
|
||||
}
|
||||
|
||||
21 -> npcl(FacialExpression.FRIENDLY, "I make leather from animal hides. Bring me some cowhides and one gold coin per hide, and I'll tan them into soft leather for you.").also { stage = END_DIALOGUE }
|
||||
|
||||
22 -> npcl(FacialExpression.NOD_YES, "Normal leather may be quite weak, but it's very cheap - I make it from cowhides for only 1 gp per hide - and it's so easy to craft that anyone can work with it.").also { stage++ }
|
||||
23 -> npcl(FacialExpression.HALF_THINKING, "Alternatively you could try hard leather. It's not so easy to craft, but I only charge 3 gp per cowhide to prepare it, and it makes much sturdier armour.").also { stage++ }
|
||||
24 -> npcl(FacialExpression.FRIENDLY, "I can also tan snake hides and dragonhides, suitable for crafting into the highest quality armour for rangers.").also { stage++ }
|
||||
25 -> playerl(FacialExpression.NEUTRAL, "Thanks, I'll bear it in mind.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return EllisDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.ELLIS_2824)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
package content.region.desert.alkharid.handlers;
|
||||
|
||||
import core.cache.def.impl.NPCDefinition;
|
||||
import core.plugin.Initializable;
|
||||
import content.global.skill.crafting.TanningProduct;
|
||||
import core.game.interaction.OptionHandler;
|
||||
import core.game.node.Node;
|
||||
import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* @author 'Vexia
|
||||
*/
|
||||
@Initializable
|
||||
public class TanningNPC extends OptionHandler {
|
||||
|
||||
@Override
|
||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||
NPCDefinition.forId(1041).getHandlers().put("option:trade", this);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(Player player, Node node, String option) {
|
||||
TanningProduct.open(player, ((NPC) node).getId());
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,103 +0,0 @@
|
|||
package content.region.morytania.canifis.dialogue;
|
||||
|
||||
import core.game.dialogue.DialoguePlugin;
|
||||
import core.game.dialogue.FacialExpression;
|
||||
import core.plugin.Initializable;
|
||||
import content.global.skill.crafting.TanningProduct;
|
||||
import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
/**
|
||||
* Handles the SbottDialogue dialogue.
|
||||
* @author 'Vexia
|
||||
*/
|
||||
@Initializable
|
||||
public class SbottDialogue extends DialoguePlugin {
|
||||
|
||||
public SbottDialogue() {
|
||||
|
||||
}
|
||||
|
||||
public SbottDialogue(Player player) {
|
||||
super(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DialoguePlugin newInstance(Player player) {
|
||||
|
||||
return new SbottDialogue(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean open(Object... args) {
|
||||
npc = (NPC) args[0];
|
||||
interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Hello stranger. Would you like to me to tan any hides for", "you?");
|
||||
stage = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(int interfaceId, int buttonId) {
|
||||
switch (stage) {
|
||||
case 0:
|
||||
// interpreter.sendDialogues(npc, FacialExpression.NORMAL,
|
||||
// "Soft leather - 2 gp per hide","Hard leather - 5 gp per hide","Snakeskins - 25 gp per hide","Dragon leather - 45 gp per hide.");
|
||||
interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Soft leather - 1 gp per hide", "Hard leather - 3 gp per hide", "Snakeskins - 20 gp per hide", "Dragon leather - 20 gp per hide.");
|
||||
stage = 1;
|
||||
break;
|
||||
case 1:
|
||||
player.getInventory().refresh();
|
||||
Item items[] = player.getInventory().toArray();
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
if (items[i] == null) {
|
||||
continue;
|
||||
}
|
||||
if (TanningProduct.forItemId(items[i].getId()) != null) {
|
||||
interpreter.sendDialogues(npc, FacialExpression.FRIENDLY, "I see you have brought me some hides.", "Would you like me to tan them for you?");
|
||||
stage = 100;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No thanks, I haven't any hides.");
|
||||
stage = 2;
|
||||
break;
|
||||
case 2:
|
||||
end();
|
||||
break;
|
||||
case 100:
|
||||
interpreter.sendOptions("Select an Option", "Yes please.", "No thanks.");
|
||||
stage = 101;
|
||||
break;
|
||||
case 101:
|
||||
switch (buttonId) {
|
||||
case 1:
|
||||
interpreter.sendDialogues(player, FacialExpression.HAPPY, "Yes please.");
|
||||
stage = 210;
|
||||
break;
|
||||
case 2:
|
||||
interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "No thanks.");
|
||||
stage = 200;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 210:
|
||||
end();
|
||||
TanningProduct.open(player, 2824);
|
||||
break;
|
||||
case 200:
|
||||
interpreter.sendDialogues(npc, FacialExpression.FRIENDLY, "Very well, sir, as you wish.");
|
||||
stage = 201;
|
||||
break;
|
||||
case 201:
|
||||
end();
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getIds() {
|
||||
return new int[] { 1041 };
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package content.region.morytania.canifis.dialogue
|
||||
|
||||
import content.global.skill.crafting.TanningProduct
|
||||
import core.api.inInventory
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
/**
|
||||
* Handles Sbott's dialogue.
|
||||
*/
|
||||
@Initializable
|
||||
class SbottDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
npcl(FacialExpression.HAPPY, "Hello stranger. Would you like to me to tan any hides for you?").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
//0 -> npc(FacialExpression.HAPPY, "Soft leather - 2 gp per hide", "Hard leather - 5 gp per hide", "Snakeskins - 25 gp per hide", "Dragon leather - 45 gp per hide.").also { stage++ }
|
||||
0 -> npc(FacialExpression.HAPPY, "Soft leather - 1 gp per hide", "Hard leather - 3 gp per hide", "Snakeskins - 20 gp per hide", "Dragon leather - 20 gp per hide.").also { stage++ }
|
||||
1 -> {
|
||||
var hasHides = false
|
||||
|
||||
for (tanningProduct in TanningProduct.values()) {
|
||||
if (inInventory(player, tanningProduct.item)) {
|
||||
hasHides = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if(hasHides) {
|
||||
npcl(FacialExpression.FRIENDLY, "I see you have brought me some hides. Would you like me to tan them for you?").also { stage = 10 }
|
||||
} else {
|
||||
playerl(FacialExpression.HALF_GUILTY, "No thanks, I haven't any hides.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
|
||||
10 -> options("Yes please.", "No thanks.").also { stage++ }
|
||||
|
||||
11 -> when (buttonId) {
|
||||
1 -> playerl(FacialExpression.HAPPY, "Yes please.").also { stage = 12 }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "No thanks.").also { stage = 13 }
|
||||
}
|
||||
|
||||
12 -> end().also { TanningProduct.open(player, NPCs.SBOTT_1041) }
|
||||
13 -> npcl(FacialExpression.FRIENDLY, "Very well, @g[sir,madam], as you wish.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return SbottDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.SBOTT_1041)
|
||||
}
|
||||
}
|
||||
|
|
@ -126,8 +126,8 @@ class Shops : StartupListener, TickListener, InteractionListener, InterfaceListe
|
|||
override fun defineListeners() {
|
||||
on(IntType.NPC, "trade", "shop"){ player, node ->
|
||||
val npc = node as NPC
|
||||
if (npc.id == 2824) {
|
||||
TanningProduct.open(player, 2824)
|
||||
if (npc.id == 2824 || npc.id == 1041 || npc.id == 804) {
|
||||
TanningProduct.open(player, npc.id)
|
||||
return@on true
|
||||
}
|
||||
if (npc.id == 7601) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue