mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-10 10:20:41 -07:00
First phase of TzHaar rewrite
This commit is contained in:
parent
c135877680
commit
7a23f6f0a3
4 changed files with 86 additions and 204 deletions
|
|
@ -0,0 +1,49 @@
|
||||||
|
package content.region.karamja.tzhaar.handlers
|
||||||
|
|
||||||
|
import core.api.openNpcShop
|
||||||
|
import core.game.dialogue.DialoguePlugin
|
||||||
|
import core.game.dialogue.FacialExpression
|
||||||
|
import core.game.dialogue.Topic
|
||||||
|
import core.game.node.entity.npc.NPC
|
||||||
|
import core.game.node.entity.player.Player
|
||||||
|
import core.plugin.Initializable
|
||||||
|
import core.tools.END_DIALOGUE
|
||||||
|
import org.rs09.consts.NPCs
|
||||||
|
|
||||||
|
@Initializable
|
||||||
|
class TzHaarDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||||
|
override fun open(vararg args: Any): Boolean {
|
||||||
|
npc = args[0] as NPC
|
||||||
|
npcl(FacialExpression.HALF_GUILTY, "Can I help you JalYt-Ket-${player.username}?").also { stage = 0 }
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||||
|
when (stage) {
|
||||||
|
0 -> showTopics(
|
||||||
|
Topic(FacialExpression.HALF_GUILTY, "What do you have to trade?", 10, true),
|
||||||
|
Topic(FacialExpression.HALF_GUILTY, "What did you call me?", 20),
|
||||||
|
Topic(FacialExpression.HALF_GUILTY, "No I'm fine thanks.", END_DIALOGUE),
|
||||||
|
)
|
||||||
|
10 -> end().also { openNpcShop(player, npc.id) }
|
||||||
|
20 -> npcl(FacialExpression.HALF_GUILTY, "Are you not JalYt-Ket?").also { stage++ }
|
||||||
|
21 -> showTopics(
|
||||||
|
Topic(FacialExpression.HALF_GUILTY, "What's a 'JalYt-Ket'?", 22),
|
||||||
|
Topic(FacialExpression.HALF_GUILTY, "I guess so...", 25),
|
||||||
|
Topic(FacialExpression.HALF_GUILTY, "No I'm not!", END_DIALOGUE)
|
||||||
|
)
|
||||||
|
|
||||||
|
22 -> npcl(FacialExpression.HALF_GUILTY, "That what you are... you tough and strong no?").also { stage++ }
|
||||||
|
23 -> playerl(FacialExpression.HALF_GUILTY, "Well yes I suppose I am...").also { stage++ }
|
||||||
|
24 -> npcl(FacialExpression.HALF_GUILTY, "Then you JalYt-Ket!").also { stage = END_DIALOGUE }
|
||||||
|
|
||||||
|
25 -> npcl(FacialExpression.HALF_GUILTY, "Well then, no problems.").also { stage = END_DIALOGUE }
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getIds(): IntArray {
|
||||||
|
return intArrayOf(NPCs.TZHAAR_HUR_TEL_2620, NPCs.TZHAAR_HUR_LEK_2622, NPCs.TZHAAR_MEJ_ROH_2623)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,203 +0,0 @@
|
||||||
package content.region.karamja.tzhaar.handlers;
|
|
||||||
|
|
||||||
import core.cache.def.impl.SceneryDefinition;
|
|
||||||
import core.game.activity.ActivityManager;
|
|
||||||
import core.game.dialogue.DialoguePlugin;
|
|
||||||
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.game.node.scenery.Scenery;
|
|
||||||
import core.game.world.map.Location;
|
|
||||||
import core.plugin.Initializable;
|
|
||||||
import core.plugin.Plugin;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the plugin used for tzhaar city.
|
|
||||||
* @author 'Vexia
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
@Initializable
|
|
||||||
public final class TzhaarCityPlugin extends OptionHandler {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the locations to use.
|
|
||||||
*/
|
|
||||||
private static final Location[] LOCATIONS = new Location[] { Location.create(2480, 5175, 0), Location.create(2866, 9571, 0) };
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
|
||||||
SceneryDefinition.forId(31284).getHandlers().put("option:enter", this); //karamja cave.
|
|
||||||
SceneryDefinition.forId(9359).getHandlers().put("option:enter", this); //tzhaar exit
|
|
||||||
SceneryDefinition.forId(9356).getHandlers().put("option:enter", this);
|
|
||||||
SceneryDefinition.forId(9369).getHandlers().put("option:pass", this);
|
|
||||||
SceneryDefinition.forId(31292).getHandlers().put("option:go-through", this); //unimplemented door near fairy ring
|
|
||||||
new TzhaarDialogue().init();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean handle(Player player, Node node, String option) {
|
|
||||||
int id = ((Scenery) node).getId();
|
|
||||||
switch (option) {
|
|
||||||
case "enter":
|
|
||||||
switch (id) {
|
|
||||||
case 31284:
|
|
||||||
player.getProperties().setTeleportLocation(LOCATIONS[0]);
|
|
||||||
break;
|
|
||||||
case 9359:
|
|
||||||
player.getProperties().setTeleportLocation(LOCATIONS[1]);
|
|
||||||
break;
|
|
||||||
case 9356:
|
|
||||||
if (player.getFamiliarManager().hasFamiliar()) {
|
|
||||||
player.getPacketDispatch().sendMessage("You can't enter this with a follower.");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ActivityManager.start(player, "fight caves", false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "pass":
|
|
||||||
switch (id) {
|
|
||||||
case 9369:
|
|
||||||
ActivityManager.start(player, "fight pits", false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "go-through":
|
|
||||||
switch (id) {
|
|
||||||
case 31292:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the dialogue plugin used for the tzhaar npcs.
|
|
||||||
* @author 'Vexia
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
public static final class TzhaarDialogue extends DialoguePlugin {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a new {@code TzhaarDialogue} {@code Object}.
|
|
||||||
*/
|
|
||||||
public TzhaarDialogue() {
|
|
||||||
/**
|
|
||||||
* empty.
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a new {@code TzhaarDialogue} {@code Object}.
|
|
||||||
* @param player the player.
|
|
||||||
*/
|
|
||||||
public TzhaarDialogue(Player player) {
|
|
||||||
super(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DialoguePlugin newInstance(Player player) {
|
|
||||||
return new TzhaarDialogue(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean open(Object... args) {
|
|
||||||
npc = (NPC) args[0];
|
|
||||||
npc("Can I help you JalYt-Ket-" + player.getUsername() + "?");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean handle(int interfaceId, int buttonId) {
|
|
||||||
switch (stage) {
|
|
||||||
case 0:
|
|
||||||
options("What do you have to trade?", "What did you call me?", "No I'm fine thanks.");
|
|
||||||
stage = 1;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
switch (buttonId) {
|
|
||||||
case 1:
|
|
||||||
end();
|
|
||||||
npc.openShop(player);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
player("What did you call me?");
|
|
||||||
stage = 20;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
player("No I'm fine thanks.");
|
|
||||||
stage = 30;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 10:
|
|
||||||
break;
|
|
||||||
case 20:
|
|
||||||
npc("Are you not JalYt-Ket?");
|
|
||||||
stage = 21;
|
|
||||||
break;
|
|
||||||
case 21:
|
|
||||||
options("What's a 'JalYt-Ket'?", "I guess so...", "No I'm not!");
|
|
||||||
stage = 22;
|
|
||||||
break;
|
|
||||||
case 22:
|
|
||||||
switch (buttonId) {
|
|
||||||
case 1:
|
|
||||||
player("What's a 'JalYt-Ket'?");
|
|
||||||
stage = 100;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
player("I guess so...");
|
|
||||||
stage = 120;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
player("No I'm not!");
|
|
||||||
stage = 130;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 100:
|
|
||||||
npc("That what you are... you tough and strong no?");
|
|
||||||
stage = 101;
|
|
||||||
break;
|
|
||||||
case 101:
|
|
||||||
player("Well yes I suppose I am...");
|
|
||||||
stage = 102;
|
|
||||||
break;
|
|
||||||
case 102:
|
|
||||||
npc("Then you JalYt-Ket!");
|
|
||||||
stage = 103;
|
|
||||||
break;
|
|
||||||
case 103:
|
|
||||||
end();
|
|
||||||
break;
|
|
||||||
case 120:
|
|
||||||
npc("Well then, no problems.");
|
|
||||||
stage = 121;
|
|
||||||
break;
|
|
||||||
case 121:
|
|
||||||
end();
|
|
||||||
break;
|
|
||||||
case 130:
|
|
||||||
end();
|
|
||||||
break;
|
|
||||||
case 23:
|
|
||||||
end();
|
|
||||||
break;
|
|
||||||
case 30:
|
|
||||||
end();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int[] getIds() {
|
|
||||||
return new int[] { 2620, 2622, 2623 };
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -62,7 +62,7 @@ public final class TzhaarFightCavesPlugin extends ActivityPlugin {
|
||||||
* @param player The player.
|
* @param player The player.
|
||||||
*/
|
*/
|
||||||
public TzhaarFightCavesPlugin(Player player) {
|
public TzhaarFightCavesPlugin(Player player) {
|
||||||
super("fight caves", true, true, true, ZoneRestriction.CANNON, ZoneRestriction.RANDOM_EVENTS);
|
super("fight caves", true, true, true, ZoneRestriction.CANNON, ZoneRestriction.RANDOM_EVENTS, ZoneRestriction.FOLLOWERS);
|
||||||
super.player = player;
|
super.player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
package content.region.karamja.tzhaar.handlers
|
||||||
|
|
||||||
|
import core.api.sendNPCDialogueLines
|
||||||
|
import core.api.teleport
|
||||||
|
import core.game.activity.ActivityManager
|
||||||
|
import core.game.dialogue.FacialExpression
|
||||||
|
import core.game.interaction.IntType
|
||||||
|
import core.game.interaction.InteractionListener
|
||||||
|
import core.game.world.map.Location
|
||||||
|
import org.rs09.consts.NPCs
|
||||||
|
|
||||||
|
class TzhaarListeners : InteractionListener {
|
||||||
|
override fun defineListeners() {
|
||||||
|
on(intArrayOf(31284, 9359, 9356), IntType.SCENERY, "enter") { player, node ->
|
||||||
|
when (node.id) {
|
||||||
|
31284 -> teleport(player, Location.create(2480, 5175, 0))
|
||||||
|
9359 -> teleport(player, Location.create(2866, 9571, 0))
|
||||||
|
9356 -> {
|
||||||
|
if (player.familiarManager.hasFamiliar()) {
|
||||||
|
sendNPCDialogueLines(player, NPCs.TZHAAR_MEJ_JAL_2617, FacialExpression.ANGRY, false, "No Kimit-Zil in the cave! This is a fight for YOU,", "not your friends!")
|
||||||
|
} else ActivityManager.start(player, "fight caves", false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return@on true
|
||||||
|
}
|
||||||
|
|
||||||
|
on(9369, IntType.SCENERY, "pass") { player, _ ->
|
||||||
|
ActivityManager.start(player, "fight pits", false)
|
||||||
|
return@on true
|
||||||
|
}
|
||||||
|
|
||||||
|
on(31292, IntType.SCENERY, "go-through") { _, _ ->
|
||||||
|
return@on false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue