mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Merge branch 'roguesDenTest' into 'master'
draft:initial files for rogues den, many things still missing See merge request 2009scape/2009scape!2017
This commit is contained in:
commit
4328fb2d48
5 changed files with 848 additions and 109 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
package content.global.handlers.scenery;
|
package content.global.handlers.scenery;
|
||||||
|
|
||||||
|
import content.global.skill.agility.AgilityHandler;
|
||||||
import core.cache.def.impl.SceneryDefinition;
|
import core.cache.def.impl.SceneryDefinition;
|
||||||
import core.game.interaction.OptionHandler;
|
import core.game.interaction.OptionHandler;
|
||||||
import core.game.node.Node;
|
import core.game.node.Node;
|
||||||
|
|
@ -12,15 +13,15 @@ import core.game.node.item.Item;
|
||||||
import core.game.node.scenery.Scenery;
|
import core.game.node.scenery.Scenery;
|
||||||
import core.game.node.scenery.SceneryBuilder;
|
import core.game.node.scenery.SceneryBuilder;
|
||||||
import core.game.system.task.Pulse;
|
import core.game.system.task.Pulse;
|
||||||
|
import core.game.world.map.Direction;
|
||||||
|
import core.game.world.map.Location;
|
||||||
import core.game.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.plugin.Initializable;
|
import core.plugin.Initializable;
|
||||||
import core.plugin.Plugin;
|
import core.plugin.Plugin;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
import core.game.world.GameWorld;
|
import core.game.world.GameWorld;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the thieving guide plugin.
|
* Represents the thieving guide plugin.
|
||||||
|
|
@ -33,6 +34,8 @@ public class ThievingGuidePlugin extends OptionHandler {
|
||||||
/**
|
/**
|
||||||
* The coin looots.
|
* The coin looots.
|
||||||
*/
|
*/
|
||||||
|
//private static final Map<Location, MovementHook> LOCATION_TRAPS = new HashMap<>();
|
||||||
|
|
||||||
private static final ChanceItem[] COINS = new ChanceItem[] { new ChanceItem(995, 20, 20, 90), new ChanceItem(995, 40, 40, 80) };
|
private static final ChanceItem[] COINS = new ChanceItem[] { new ChanceItem(995, 20, 20, 90), new ChanceItem(995, 40, 40, 80) };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -58,7 +61,7 @@ public class ThievingGuidePlugin extends OptionHandler {
|
||||||
/**
|
/**
|
||||||
* Represents the animations to use.
|
* Represents the animations to use.
|
||||||
*/
|
*/
|
||||||
private static final Animation[] animations = new Animation[] { new Animation(2247), new Animation(2248), new Animation(1113), new Animation(2244) };
|
private static final Animation[] animations = new Animation[] { new Animation(2247), new Animation(2248), new Animation(1113), new Animation(2244), };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the cracked safe.
|
* Represents the cracked safe.
|
||||||
|
|
@ -69,17 +72,52 @@ public class ThievingGuidePlugin extends OptionHandler {
|
||||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||||
SceneryDefinition.forId(7236).getHandlers().put("option:crack", this);// wall
|
SceneryDefinition.forId(7236).getHandlers().put("option:crack", this);// wall
|
||||||
// safe.
|
// safe.
|
||||||
SceneryDefinition.forId(7227).getHandlers().put("option:disarm", this);// trap
|
SceneryDefinition.forId(7227).getHandlers().put("option:search", this);// trap
|
||||||
|
SceneryDefinition.forId(7245).getHandlers().put("option:search", this);// trap
|
||||||
|
SceneryDefinition.forId(7230).getHandlers().put("option:search", this);// trap
|
||||||
SceneryDefinition.forId(7256).getHandlers().put("option:open", this);
|
SceneryDefinition.forId(7256).getHandlers().put("option:open", this);
|
||||||
|
SceneryDefinition.forId(7239).getHandlers().put("option:climb", this);
|
||||||
|
SceneryDefinition.forId(7240).getHandlers().put("option:climb", this);
|
||||||
|
SceneryDefinition.forId(7251).getHandlers().put("option:enter", this);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handle(final Player player, final Node node, String option) {
|
public boolean handle(final Player player, final Node node, String option) {
|
||||||
|
final Direction dir = Direction.getLogicalDirection(player.getLocation(), node.getLocation());
|
||||||
|
final Location start = player.getLocation();
|
||||||
|
|
||||||
|
Location end = player.getLocation();
|
||||||
switch (option) {
|
switch (option) {
|
||||||
case "open":
|
case "open":
|
||||||
|
if(player.getAttribute("rogues-den", true)==true) {
|
||||||
|
if(player.getInventory().freeSlots() == 28) {
|
||||||
|
if(!player.getFamiliarManager().hasFamiliar()) {
|
||||||
|
player.getPacketDispatch().sendMessage("Brian O'Richard gives you a jewel as you enter the maze");
|
||||||
|
player.getProperties().setTeleportLocation(Location.create(3056, 4992, 1));
|
||||||
|
player.getSkills().restore();
|
||||||
|
player.getSkills().setPrayerPoints(0);
|
||||||
|
//player.getSkills().drainLevel(Skills.PRAYER);
|
||||||
|
Item gem = new Item(5561);
|
||||||
|
player.getInventory().add(gem);
|
||||||
|
//player.removeAttribute("rogues-den");
|
||||||
|
player.setAttribute("rogues-den", false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
player.getDialogueInterpreter().sendDialogues(2266, null, "Sorry but I can't allow you to take your follower in there,", "never know what trouble they might cause.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
player.getDialogueInterpreter().sendDialogues(2266, null, "Tut tut tut, now you know you're not allowed to", "take anything except that jewel in with you.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
player.getDialogueInterpreter().sendDialogues(2266, null, "And where do you think you're going? A little too eager", "I think. Come and talk to me before you go wandering", "around in there.");
|
player.getDialogueInterpreter().sendDialogues(2266, null, "And where do you think you're going? A little too eager", "I think. Come and talk to me before you go wandering", "around in there.");
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case "crack":
|
case "crack":
|
||||||
if (player.getSkills().getLevel(Skills.THIEVING) < 50) {
|
if (player.getSkills().getLevel(Skills.THIEVING) < 50) {
|
||||||
player.getPacketDispatch().sendMessage("You need to be level " + level + " thief to crack this safe.");
|
player.getPacketDispatch().sendMessage("You need to be level " + level + " thief to crack this safe.");
|
||||||
|
|
@ -120,7 +158,51 @@ public class ThievingGuidePlugin extends OptionHandler {
|
||||||
case "search":
|
case "search":
|
||||||
player.animate(animations[3]);
|
player.animate(animations[3]);
|
||||||
player.getPacketDispatch().sendMessage("You temporarily disarm the trap!");
|
player.getPacketDispatch().sendMessage("You temporarily disarm the trap!");
|
||||||
|
String clearMsg = "/save:clear-trap" + node.getLocation().toString();
|
||||||
|
//clearMsg.concat(node.getLocation().toString());
|
||||||
|
System.out.println(clearMsg);
|
||||||
|
player.setAttribute(clearMsg, true);
|
||||||
|
player.getSkills().updateLevel(Skills.THIEVING, -1, 0);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
case "climb":
|
||||||
|
|
||||||
|
if(dir.ordinal()==1) {
|
||||||
|
end = new Location(player.getLocation().getX(), player.getLocation().getY() + 5, player.getLocation().getZ());
|
||||||
|
}
|
||||||
|
else if(dir.ordinal()==4){
|
||||||
|
end = new Location(player.getLocation().getX() + 5, player.getLocation().getY(), player.getLocation().getZ());
|
||||||
|
}
|
||||||
|
else if(dir.ordinal()==3){
|
||||||
|
end = new Location(player.getLocation().getX() - 5, player.getLocation().getY(), player.getLocation().getZ());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
end = new Location(player.getLocation().getX(), player.getLocation().getY() - 5, player.getLocation().getZ());
|
||||||
|
}
|
||||||
|
AgilityHandler.walk(player, -1, player.getLocation(), end, null, 0.0, null);
|
||||||
|
break;
|
||||||
|
case "enter":
|
||||||
|
if(player.getSkills().getLevel(Skills.AGILITY) < 5) {
|
||||||
|
|
||||||
|
player.lock(4);
|
||||||
|
|
||||||
|
GameWorld.getPulser().submit(new Pulse(1, player) {
|
||||||
|
@Override
|
||||||
|
public boolean pulse() {
|
||||||
|
player.getSkills().updateLevel(Skills.AGILITY, -5, 0);
|
||||||
|
|
||||||
|
AgilityHandler.forceWalk(player, -1, player.getLocation(), player.getLocation().transform(dir.getStepX() << 1, dir.getStepY() << 1, 0), Animation.create(10580), 4, 26, null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
player.getPacketDispatch().sendMessage("You don't have enough Agility skill left");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -186,4 +268,6 @@ public class ThievingGuidePlugin extends OptionHandler {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
package content.minigame.roguesden
|
||||||
|
|
||||||
|
import core.api.*
|
||||||
|
import core.game.dialogue.DialogueFile
|
||||||
|
import core.game.dialogue.Topic
|
||||||
|
import core.game.interaction.IntType
|
||||||
|
import core.game.interaction.InteractionListener
|
||||||
|
import core.game.world.map.Location
|
||||||
|
import core.tools.END_DIALOGUE
|
||||||
|
import org.rs09.consts.Items
|
||||||
|
|
||||||
|
class RogueGemListener : InteractionListener {
|
||||||
|
override fun defineListeners() {
|
||||||
|
on(Items.MYSTIC_JEWEL_5561, IntType.ITEM, "activate") { player, _ ->
|
||||||
|
openDialogue(player, MysticJewelDialogue())
|
||||||
|
return@on true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class MysticJewelDialogue() : DialogueFile() {
|
||||||
|
var firstRun = true
|
||||||
|
override fun handle(interfaceId: Int, buttonId: Int) {
|
||||||
|
when (stage) {
|
||||||
|
|
||||||
|
0 -> npcl(
|
||||||
|
2266,
|
||||||
|
core.game.dialogue.FacialExpression.FRIENDLY,
|
||||||
|
"Want to come out then? Giving up are you? You know there's no time limit here."
|
||||||
|
).also { stage++ }
|
||||||
|
|
||||||
|
1 -> showTopics(
|
||||||
|
Topic(core.game.dialogue.FacialExpression.HALF_WORRIED, "Yes I'd like to leave!", 100),
|
||||||
|
|
||||||
|
Topic(core.game.dialogue.FacialExpression.FRIENDLY, "No I'm fine thanks.", END_DIALOGUE),
|
||||||
|
)
|
||||||
|
|
||||||
|
100 -> {
|
||||||
|
|
||||||
|
npcl(
|
||||||
|
2266,
|
||||||
|
core.game.dialogue.FacialExpression.FRIENDLY,
|
||||||
|
"Right you are then, out you come."
|
||||||
|
).also { stage++ }
|
||||||
|
stage = 200
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
200 -> {
|
||||||
|
END_DIALOGUE
|
||||||
|
player!!.properties.teleportLocation = Location.create(3056, 4981, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
46
Server/src/main/content/minigame/roguesden/PendulumTrap.java
Normal file
46
Server/src/main/content/minigame/roguesden/PendulumTrap.java
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
package content.minigame.roguesden;
|
||||||
|
|
||||||
|
|
||||||
|
import core.game.node.entity.skill.Skills;
|
||||||
|
import content.global.skill.agility.AgilityHandler;
|
||||||
|
import core.game.node.entity.Entity;
|
||||||
|
import core.game.node.entity.player.Player;
|
||||||
|
import core.game.system.task.MovementHook;
|
||||||
|
import core.game.system.task.Pulse;
|
||||||
|
import core.game.world.GameWorld;
|
||||||
|
import core.game.world.map.Direction;
|
||||||
|
import core.game.world.map.Location;
|
||||||
|
import core.game.world.update.flag.context.Animation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles floor spikes trap.
|
||||||
|
* @author taylorwhite18
|
||||||
|
*/
|
||||||
|
public final class PendulumTrap implements MovementHook {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean handle(Entity e, final Location l) {
|
||||||
|
final Direction dir = e.getDirection();
|
||||||
|
final Player player = (Player) e;
|
||||||
|
final Location start = l.transform(-dir.getStepX(), -dir.getStepY(), 0);
|
||||||
|
if (player.getSkills().getLevel(Skills.AGILITY) < 5) {
|
||||||
|
e.lock(5);
|
||||||
|
|
||||||
|
GameWorld.getPulser().submit(new Pulse(1, e) {
|
||||||
|
@Override
|
||||||
|
public boolean pulse() {
|
||||||
|
player.getSkills().updateLevel(Skills.AGILITY, -3, 0);
|
||||||
|
|
||||||
|
AgilityHandler.forceWalk(player, -1, l, l.transform(dir.getStepX() << 2, dir.getStepY() << 2, 0), Animation.create(1115), 20, 0, null);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}else {
|
||||||
|
AgilityHandler.failWalk(player, 1, player.getLocation(), start, start, Animation.create(1114), 10, 0, "Your agility level is too low!").setDirection(dir);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
524
Server/src/main/content/minigame/roguesden/RoguesDen.java
Normal file
524
Server/src/main/content/minigame/roguesden/RoguesDen.java
Normal file
|
|
@ -0,0 +1,524 @@
|
||||||
|
package content.minigame.roguesden;
|
||||||
|
|
||||||
|
import static core.api.ContentAPIKt.*;
|
||||||
|
|
||||||
|
|
||||||
|
import core.game.node.entity.Entity;
|
||||||
|
import core.game.node.entity.combat.ImpactHandler;
|
||||||
|
import core.game.node.entity.player.Player;
|
||||||
|
|
||||||
|
import core.game.system.task.MovementHook;
|
||||||
|
import core.game.system.task.Pulse;
|
||||||
|
import core.game.world.GameWorld;
|
||||||
|
import core.game.world.map.*;
|
||||||
|
import core.game.world.map.zone.MapZone;
|
||||||
|
import core.game.world.map.zone.ZoneBorders;
|
||||||
|
import core.game.world.map.zone.ZoneBuilder;
|
||||||
|
import core.game.world.update.flag.context.Animation;
|
||||||
|
import core.plugin.Initializable;
|
||||||
|
import core.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* locationUpdate hook for Rogues Den area
|
||||||
|
* @author taylorwhite18
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Initializable
|
||||||
|
public final class RoguesDen extends MapZone implements Plugin<Object> {
|
||||||
|
|
||||||
|
public RoguesDen() { super("Isafdar", true); }
|
||||||
|
|
||||||
|
Location LOBBY = new Location(3056,4981,1);
|
||||||
|
|
||||||
|
private String STICK_FAIL_MSG = "You set off the trap as you pass.";
|
||||||
|
|
||||||
|
private static final Map<Location, MovementHook> LOCATION_TRAPS = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
List<Location> SPIKE_TRAPS = Arrays.asList(
|
||||||
|
//region 12110
|
||||||
|
new Location(3010, 5002, 1),
|
||||||
|
new Location(3010, 5003, 1),
|
||||||
|
new Location(3010, 5004, 1),
|
||||||
|
new Location(3010, 5005, 1),
|
||||||
|
new Location(3011, 5001, 1),
|
||||||
|
new Location(3011, 5002, 1),
|
||||||
|
new Location(3011, 5003, 1),
|
||||||
|
new Location(3011, 5004, 1),
|
||||||
|
new Location(3012, 5002, 1),
|
||||||
|
new Location(3012, 5003, 1),
|
||||||
|
new Location(3012, 5004, 1),
|
||||||
|
new Location(3012, 5005, 1),
|
||||||
|
new Location(3013, 5001, 1),
|
||||||
|
new Location(3013, 5002, 1),
|
||||||
|
new Location(3013, 5003, 1),
|
||||||
|
new Location(3014, 5002, 1),
|
||||||
|
new Location(3014, 5004, 1),
|
||||||
|
new Location(3019, 4995, 1),
|
||||||
|
new Location(3019, 4997, 1),
|
||||||
|
new Location(3021, 4996, 1),
|
||||||
|
new Location(3026, 4996, 1),
|
||||||
|
new Location(3026, 5000, 1),
|
||||||
|
new Location(3027, 5001, 1),
|
||||||
|
new Location(3028, 4995, 1),
|
||||||
|
new Location(3029, 4997, 1),
|
||||||
|
new Location(3029, 4998, 1),
|
||||||
|
new Location(3029, 4999, 1),
|
||||||
|
new Location(3029, 5000, 1),
|
||||||
|
new Location(3029, 5001, 1),
|
||||||
|
new Location(3030, 4997, 1),
|
||||||
|
new Location(3030, 4998, 1),
|
||||||
|
new Location(3030, 4999, 1),
|
||||||
|
new Location(3030, 5000, 1),
|
||||||
|
new Location(3030, 5001, 1),
|
||||||
|
new Location(3030, 5003, 1),
|
||||||
|
new Location(3030, 5020, 1),
|
||||||
|
new Location(3031, 4997, 1),
|
||||||
|
new Location(3031, 4998, 1),
|
||||||
|
new Location(3031, 4999, 1),
|
||||||
|
new Location(3031, 5000, 1),
|
||||||
|
new Location(3031, 5001, 1),
|
||||||
|
new Location(3031, 5023, 1),
|
||||||
|
new Location(3032, 4995, 1),
|
||||||
|
new Location(3032, 4997, 1),
|
||||||
|
new Location(3032, 4998, 1),
|
||||||
|
new Location(3032, 5000, 1),
|
||||||
|
new Location(3032, 5001, 1),
|
||||||
|
new Location(3033, 4997, 1),
|
||||||
|
new Location(3033, 4998, 1),
|
||||||
|
new Location(3033, 5000, 1),
|
||||||
|
new Location(3033, 5001, 1),
|
||||||
|
new Location(3033, 5003, 1),
|
||||||
|
new Location(3034, 4995, 1),
|
||||||
|
new Location(3034, 4997, 1),
|
||||||
|
new Location(3034, 4998, 1),
|
||||||
|
new Location(3034, 4999, 1),
|
||||||
|
new Location(3034, 5000, 1),
|
||||||
|
new Location(3034, 5001, 1),
|
||||||
|
new Location(3035, 4994, 1),
|
||||||
|
new Location(3035, 4997, 1),
|
||||||
|
new Location(3035, 4998, 1),
|
||||||
|
new Location(3035, 4999, 1),
|
||||||
|
new Location(3035, 5000, 1),
|
||||||
|
new Location(3035, 5001, 1),
|
||||||
|
new Location(3036, 4997, 1),
|
||||||
|
new Location(3036, 4998, 1),
|
||||||
|
new Location(3036, 4999, 1),
|
||||||
|
new Location(3036, 5000, 1),
|
||||||
|
new Location(3036, 5001, 1),
|
||||||
|
new Location(3037, 4995, 1),
|
||||||
|
new Location(3037, 5013, 1),
|
||||||
|
new Location(3038, 5002, 1),
|
||||||
|
new Location(3039, 5012, 1),
|
||||||
|
new Location(3040, 5014, 1),
|
||||||
|
new Location(3043, 5024, 1),
|
||||||
|
new Location(3045, 5024, 1),
|
||||||
|
new Location(3055, 4994, 1),
|
||||||
|
new Location(3056, 4994, 1),
|
||||||
|
new Location(3056, 5000, 1),
|
||||||
|
new Location(3056, 5001, 1),
|
||||||
|
new Location(3057, 4994, 1),
|
||||||
|
new Location(3057, 5000, 1),
|
||||||
|
new Location(3057, 5001, 1),
|
||||||
|
new Location(3058, 5000, 1),
|
||||||
|
new Location(3058, 5001, 1),
|
||||||
|
//region 12111
|
||||||
|
new Location(3021, 5096, 1),
|
||||||
|
new Location(3022, 5094, 1),
|
||||||
|
new Location(3022, 5097, 1),
|
||||||
|
new Location(3023, 5095, 1),
|
||||||
|
new Location(3023, 5102, 1),
|
||||||
|
new Location(3024, 5096, 1),
|
||||||
|
new Location(3025, 5102, 1),
|
||||||
|
new Location(3027, 5102, 1),
|
||||||
|
//region 11854
|
||||||
|
new Location(2963, 5051, 1),
|
||||||
|
new Location(2963, 5052, 1),
|
||||||
|
new Location(2963, 5053, 1),
|
||||||
|
new Location(2963, 5054, 1),
|
||||||
|
new Location(2992, 5046, 1),
|
||||||
|
new Location(2992, 5048, 1),
|
||||||
|
new Location(2992, 5050, 1),
|
||||||
|
new Location(2992, 5052, 1),
|
||||||
|
new Location(2998, 5039, 1),
|
||||||
|
new Location(3005, 5003, 1),
|
||||||
|
new Location(3007, 5003, 1),
|
||||||
|
//region 11855
|
||||||
|
new Location(2963, 5051, 1),
|
||||||
|
new Location(2963, 5052, 1),
|
||||||
|
new Location(2963, 5053, 1),
|
||||||
|
new Location(2963, 5054, 1),
|
||||||
|
new Location(2992, 5046, 1),
|
||||||
|
new Location(2992, 5048, 1),
|
||||||
|
new Location(2992, 5050, 1),
|
||||||
|
new Location(2992, 5052, 1),
|
||||||
|
new Location(2998, 5039, 1),
|
||||||
|
new Location(3005, 5003, 1),
|
||||||
|
new Location(3007, 5003, 1),
|
||||||
|
new Location(2971, 5081, 1),
|
||||||
|
new Location(2972, 5081, 1),
|
||||||
|
new Location(2973, 5081, 1),
|
||||||
|
new Location(2974, 5081, 1),
|
||||||
|
new Location(2975, 5081, 1),
|
||||||
|
new Location(2976, 5081, 1),
|
||||||
|
new Location(2977, 5081, 1),
|
||||||
|
new Location(2979, 5104, 1),
|
||||||
|
new Location(2980, 5103, 1),
|
||||||
|
new Location(2980, 5104, 1),
|
||||||
|
new Location(2981, 5103, 1),
|
||||||
|
new Location(2981, 5104, 1),
|
||||||
|
new Location(2982, 5103, 1),
|
||||||
|
new Location(2982, 5104, 1),
|
||||||
|
new Location(2983, 5103, 1),
|
||||||
|
new Location(2983, 5104, 1),
|
||||||
|
new Location(2984, 5103, 1),
|
||||||
|
new Location(2984, 5104, 1),
|
||||||
|
new Location(2985, 5103, 1),
|
||||||
|
new Location(2985, 5104, 1),
|
||||||
|
new Location(2986, 5103, 1),
|
||||||
|
new Location(2986, 5104, 1),
|
||||||
|
new Location(2987, 5103, 1),
|
||||||
|
new Location(2997, 5103, 1),
|
||||||
|
new Location(2998, 5104, 1),
|
||||||
|
new Location(2999, 5103, 1),
|
||||||
|
new Location(3000, 5104, 1),
|
||||||
|
//pad traps
|
||||||
|
//region 12110
|
||||||
|
new Location(3044, 5000, 1),
|
||||||
|
new Location(3045, 5000, 1),
|
||||||
|
new Location(3045, 5001, 1),
|
||||||
|
new Location(3045, 5002, 1),
|
||||||
|
new Location(3045, 5003, 1),
|
||||||
|
new Location(3046, 5002, 1),
|
||||||
|
new Location(3046, 5003, 1),
|
||||||
|
new Location(3046, 5004, 1),
|
||||||
|
new Location(3047, 5002, 1),
|
||||||
|
new Location(3047, 5003, 1),
|
||||||
|
new Location(3047, 5005, 1),
|
||||||
|
//region 11854
|
||||||
|
new Location(2965, 5000, 1),
|
||||||
|
new Location(2965, 5002, 1),
|
||||||
|
new Location(2965, 5004, 1),
|
||||||
|
new Location(2967, 5000, 1),
|
||||||
|
new Location(2967, 5002, 1),
|
||||||
|
new Location(2967, 5004, 1),
|
||||||
|
new Location(3005, 4996, 1),
|
||||||
|
new Location(3005, 5032, 1),
|
||||||
|
new Location(3005, 5034, 1),
|
||||||
|
new Location(3006, 5033, 1),
|
||||||
|
new Location(3007, 4996, 1),
|
||||||
|
new Location(3007, 5032, 1),
|
||||||
|
new Location(3007, 5034, 1),
|
||||||
|
//region 11855
|
||||||
|
new Location(2962, 5082, 1),
|
||||||
|
new Location(2962, 5083, 1),
|
||||||
|
new Location(2963, 5080, 1),
|
||||||
|
new Location(2963, 5081, 1),
|
||||||
|
new Location(2963, 5082, 1),
|
||||||
|
new Location(2963, 5083, 1),
|
||||||
|
new Location(2963, 5084, 1),
|
||||||
|
new Location(2964, 5079, 1),
|
||||||
|
new Location(2964, 5080, 1),
|
||||||
|
new Location(2964, 5081, 1),
|
||||||
|
new Location(2964, 5082, 1),
|
||||||
|
new Location(2964, 5083, 1),
|
||||||
|
new Location(2964, 5084, 1),
|
||||||
|
new Location(2965, 5079, 1),
|
||||||
|
new Location(2965, 5080, 1),
|
||||||
|
new Location(2965, 5081, 1),
|
||||||
|
new Location(2989, 5071, 1),
|
||||||
|
new Location(2991, 5071, 1),
|
||||||
|
new Location(2992, 5068, 1),
|
||||||
|
new Location(2992, 5070, 1),
|
||||||
|
//explosive traps
|
||||||
|
//region 12110
|
||||||
|
new Location(3011, 5033, 1),
|
||||||
|
new Location(3012, 5032, 1),
|
||||||
|
new Location(3012, 5033, 1),
|
||||||
|
new Location(3012, 5034, 1),
|
||||||
|
new Location(3013, 5033, 1),
|
||||||
|
new Location(3049, 5034, 1),
|
||||||
|
new Location(3049, 5035, 1),
|
||||||
|
new Location(3049, 5036, 1),
|
||||||
|
new Location(3049, 5037, 1),
|
||||||
|
new Location(3049, 5038, 1),
|
||||||
|
new Location(3049, 5039, 1),
|
||||||
|
new Location(3049, 5040, 1),
|
||||||
|
new Location(3050, 5033, 1),
|
||||||
|
new Location(3050, 5034, 1),
|
||||||
|
new Location(3050, 5035, 1),
|
||||||
|
new Location(3050, 5036, 1),
|
||||||
|
new Location(3050, 5037, 1),
|
||||||
|
new Location(3050, 5038, 1),
|
||||||
|
new Location(3050, 5039, 1),
|
||||||
|
new Location(3050, 5040, 1),
|
||||||
|
new Location(3050, 5041, 1),
|
||||||
|
new Location(3051, 5033, 1),
|
||||||
|
new Location(3051, 5034, 1),
|
||||||
|
new Location(3051, 5040, 1),
|
||||||
|
new Location(3051, 5041, 1),
|
||||||
|
new Location(3052, 5033, 1),
|
||||||
|
new Location(3052, 5034, 1),
|
||||||
|
new Location(3052, 5036, 1),
|
||||||
|
new Location(3052, 5037, 1),
|
||||||
|
new Location(3052, 5038, 1),
|
||||||
|
new Location(3052, 5040, 1),
|
||||||
|
new Location(3052, 5041, 1),
|
||||||
|
new Location(3052, 5042, 1),
|
||||||
|
new Location(3053, 5033, 1),
|
||||||
|
new Location(3053, 5034, 1),
|
||||||
|
new Location(3053, 5036, 1),
|
||||||
|
new Location(3053, 5038, 1),
|
||||||
|
new Location(3053, 5040, 1),
|
||||||
|
new Location(3053, 5041, 1),
|
||||||
|
new Location(3053, 5042, 1),
|
||||||
|
new Location(3054, 5033, 1),
|
||||||
|
new Location(3054, 5034, 1),
|
||||||
|
new Location(3054, 5036, 1),
|
||||||
|
new Location(3054, 5037, 1),
|
||||||
|
new Location(3054, 5038, 1),
|
||||||
|
new Location(3054, 5040, 1),
|
||||||
|
new Location(3054, 5041, 1),
|
||||||
|
new Location(3054, 5042, 1),
|
||||||
|
new Location(3055, 5033, 1),
|
||||||
|
new Location(3055, 5034, 1),
|
||||||
|
new Location(3055, 5040, 1),
|
||||||
|
new Location(3055, 5041, 1),
|
||||||
|
new Location(3055, 5042, 1),
|
||||||
|
new Location(3056, 5026, 1),
|
||||||
|
new Location(3056, 5027, 1),
|
||||||
|
new Location(3056, 5033, 1),
|
||||||
|
new Location(3056, 5034, 1),
|
||||||
|
new Location(3056, 5035, 1),
|
||||||
|
new Location(3056, 5036, 1),
|
||||||
|
new Location(3056, 5037, 1),
|
||||||
|
new Location(3056, 5038, 1),
|
||||||
|
new Location(3056, 5039, 1),
|
||||||
|
new Location(3056, 5040, 1),
|
||||||
|
new Location(3056, 5041, 1),
|
||||||
|
new Location(3056, 5042, 1),
|
||||||
|
new Location(3057, 5025, 1),
|
||||||
|
new Location(3057, 5026, 1),
|
||||||
|
new Location(3057, 5034, 1),
|
||||||
|
new Location(3057, 5035, 1),
|
||||||
|
new Location(3057, 5036, 1),
|
||||||
|
new Location(3057, 5037, 1),
|
||||||
|
new Location(3057, 5038, 1),
|
||||||
|
new Location(3057, 5039, 1),
|
||||||
|
new Location(3057, 5040, 1),
|
||||||
|
new Location(3057, 5041, 1),
|
||||||
|
new Location(3060, 5022, 1),
|
||||||
|
new Location(3061, 5022, 1),
|
||||||
|
new Location(3061, 5023, 1),
|
||||||
|
new Location(3062, 5022, 1),
|
||||||
|
new Location(3062, 5023, 1),
|
||||||
|
//region 11854
|
||||||
|
new Location(2979, 5023, 1),
|
||||||
|
new Location(2979, 5025, 1),
|
||||||
|
new Location(2980, 5024, 1),
|
||||||
|
new Location(2981, 5023, 1),
|
||||||
|
new Location(2981, 5025, 1),
|
||||||
|
new Location(2982, 5024, 1),
|
||||||
|
new Location(2998, 5050, 1),
|
||||||
|
new Location(2998, 5052, 1),
|
||||||
|
new Location(2998, 5054, 1),
|
||||||
|
new Location(3003, 5016, 1),
|
||||||
|
new Location(3003, 5021, 1),
|
||||||
|
new Location(3003, 5026, 1),
|
||||||
|
new Location(3005, 5016, 1),
|
||||||
|
new Location(3005, 5021, 1),
|
||||||
|
new Location(3005, 5026, 1),
|
||||||
|
new Location(3005, 5033, 1),
|
||||||
|
new Location(3006, 5032, 1),
|
||||||
|
new Location(3006, 5034, 1),
|
||||||
|
new Location(3007, 5016, 1),
|
||||||
|
new Location(3007, 5021, 1),
|
||||||
|
new Location(3007, 5026, 1),
|
||||||
|
new Location(3007, 5033, 1),
|
||||||
|
//region 11855
|
||||||
|
new Location(2973, 5066, 1),
|
||||||
|
new Location(2973, 5067, 1),
|
||||||
|
new Location(2973, 5068, 1),
|
||||||
|
new Location(2974, 5067, 1),
|
||||||
|
new Location(2974, 5068, 1)
|
||||||
|
);
|
||||||
|
List<Location> WALL_TRAPSONE = Arrays.asList(
|
||||||
|
//region 12110
|
||||||
|
new Location(3022, 5030, 1),
|
||||||
|
new Location(3022, 5036, 1),
|
||||||
|
new Location(3029, 5021, 1),
|
||||||
|
new Location(3030, 5030, 1),
|
||||||
|
new Location(3032, 5022, 1),
|
||||||
|
new Location(3037, 5011, 1),
|
||||||
|
new Location(3062, 5037, 1),
|
||||||
|
new Location(3062, 5038, 1),
|
||||||
|
new Location(3062, 5039, 1),
|
||||||
|
//region 11854
|
||||||
|
new Location(2961, 5051, 1),
|
||||||
|
new Location(2961, 5053, 1),
|
||||||
|
new Location(2961, 5055, 1),
|
||||||
|
new Location(2965, 5052, 1),
|
||||||
|
new Location(2965, 5054, 1),
|
||||||
|
new Location(2989, 4996, 1),
|
||||||
|
new Location(2989, 4999, 1),
|
||||||
|
new Location(2990, 4996, 1),
|
||||||
|
new Location(2990, 4999, 1),
|
||||||
|
new Location(2990, 5047, 1),
|
||||||
|
new Location(2990, 5049, 1),
|
||||||
|
new Location(2990, 5051, 1),
|
||||||
|
new Location(2990, 5053, 1),
|
||||||
|
new Location(2991, 4996, 1),
|
||||||
|
new Location(2991, 4999, 1),
|
||||||
|
new Location(2992, 4996, 1),
|
||||||
|
new Location(2992, 4999, 1),
|
||||||
|
new Location(2993, 4996, 1),
|
||||||
|
new Location(2993, 4999, 1),
|
||||||
|
new Location(2994, 5047, 1),
|
||||||
|
new Location(2994, 5049, 1),
|
||||||
|
new Location(2994, 5051, 1),
|
||||||
|
new Location(2994, 5053, 1)
|
||||||
|
);
|
||||||
|
List<Location> WALL_TRAPSSPIKE = Arrays.asList(
|
||||||
|
//region 12110
|
||||||
|
new Location(3030, 5013, 1),
|
||||||
|
new Location(3032, 5012, 1),
|
||||||
|
//region 11854
|
||||||
|
new Location(3004, 5014, 1),
|
||||||
|
new Location(3004, 5017, 1),
|
||||||
|
new Location(3004, 5019, 1),
|
||||||
|
new Location(3004, 5022, 1),
|
||||||
|
new Location(3004, 5024, 1),
|
||||||
|
new Location(3004, 5027, 1),
|
||||||
|
new Location(3006, 5014, 1),
|
||||||
|
new Location(3006, 5017, 1),
|
||||||
|
new Location(3006, 5019, 1),
|
||||||
|
new Location(3006, 5022, 1),
|
||||||
|
new Location(3006, 5024, 1),
|
||||||
|
new Location(3006, 5027, 1)
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configure() {
|
||||||
|
register(new ZoneBorders(2945, 4990, 3066, 5117, 1));
|
||||||
|
PendulumTrap pendulumTrap = new PendulumTrap();
|
||||||
|
//region 12110
|
||||||
|
LOCATION_TRAPS.put(Location.create(3027, 5049, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3027, 5053, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3029, 5049, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3029, 5053, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(3029, 5049, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3029, 5053, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3031, 5049, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3031, 5053, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(3040, 4997, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3040, 4999, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3042, 4997, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3042, 4999, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(3052, 5015, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3056, 5015, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3052, 5017, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3056, 5017, 1), pendulumTrap);
|
||||||
|
//region 12111
|
||||||
|
LOCATION_TRAPS.put(Location.create(3022, 5108, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3022, 5110, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3024, 5108, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3024, 5110, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(3027, 5108, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3027, 5110, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3029, 5108, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3029, 5110, 1), pendulumTrap);
|
||||||
|
//region 11854
|
||||||
|
LOCATION_TRAPS.put(Location.create(2953, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2953, 5027, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2955, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2955, 5027, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(2956, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2956, 5027, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2958, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2958, 5027, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(2959, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2959, 5027, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2961, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2961, 5027, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(2962, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2962, 5027, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2964, 5025, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2964, 5027, 1), pendulumTrap);
|
||||||
|
|
||||||
|
LOCATION_TRAPS.put(Location.create(3001, 5032, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3001, 5034, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3003, 5032, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(3003, 5034, 1), pendulumTrap);
|
||||||
|
//region 11855
|
||||||
|
LOCATION_TRAPS.put(Location.create(2981, 5109, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2981, 5111, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2983, 5109, 1), pendulumTrap);
|
||||||
|
LOCATION_TRAPS.put(Location.create(2983, 5111, 1), pendulumTrap);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void locationUpdate(Entity e, Location last) {
|
||||||
|
if (e instanceof Player) {
|
||||||
|
Player player = (Player) e;
|
||||||
|
String clearmsg = "clear-trap" + player.getLocation().toString();
|
||||||
|
|
||||||
|
if ((player.getAttribute(clearmsg, true)) && (SPIKE_TRAPS.contains(player.getLocation()) || WALL_TRAPSSPIKE.contains(player.getLocation().getCardinalTiles()))) {
|
||||||
|
System.out.println("hello");
|
||||||
|
sendMessage(player, STICK_FAIL_MSG);
|
||||||
|
player.animate(Animation.create(1114));
|
||||||
|
player.getPacketDispatch().sendSceneryAnimation(RegionManager.getObject(player.getLocation()), Animation.create(1111));
|
||||||
|
impact(player, 1, ImpactHandler.HitsplatType.NORMAL);
|
||||||
|
player.teleport(LOBBY);
|
||||||
|
|
||||||
|
} else if ((SPIKE_TRAPS.contains(player.getLocation()))) {
|
||||||
|
GameWorld.getPulser().submit(new Pulse(20) {
|
||||||
|
@Override
|
||||||
|
public boolean pulse() {
|
||||||
|
player.removeAttribute(clearmsg);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||||
|
ZoneBuilder.configure(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object fireEvent(String identifier, Object... args) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean move(Entity e, Location loc, Location dest) {
|
||||||
|
if (!e.getLocks().isMovementLocked() && e instanceof Player) {
|
||||||
|
MovementHook hook = LOCATION_TRAPS.get(loc);
|
||||||
|
if (hook != null) {
|
||||||
|
e.setDirection(Direction.getLogicalDirection(loc, dest));
|
||||||
|
return hook.handle(e, loc);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return super.move(e, loc, dest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -9,7 +9,7 @@ import core.game.node.entity.player.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reprepsents the dialogue plugin used to handle the brian orichard npc.
|
* Reprepsents the dialogue plugin used to handle the brian orichard npc.
|
||||||
* @author 'Vexia
|
* @authors 'Vexia, taylorwhite18
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
@Initializable
|
@Initializable
|
||||||
|
|
@ -40,7 +40,7 @@ public final class BrianORichardDialogue extends DialoguePlugin {
|
||||||
@Override
|
@Override
|
||||||
public boolean open(Object... args) {
|
public boolean open(Object... args) {
|
||||||
npc = (NPC) args[0];
|
npc = (NPC) args[0];
|
||||||
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Hi there, looking for a challenge are you?");
|
interpreter.sendDialogues(npc, FacialExpression.FRIENDLY, "Hi there, looking for a challenge are you?");
|
||||||
stage = 1;
|
stage = 1;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -55,15 +55,15 @@ public final class BrianORichardDialogue extends DialoguePlugin {
|
||||||
case 2:
|
case 2:
|
||||||
switch (buttonId) {
|
switch (buttonId) {
|
||||||
case 1:
|
case 1:
|
||||||
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes actually, what've you got?");
|
interpreter.sendDialogues(player, FacialExpression.ASKING, "Yes actually, what've you got?");
|
||||||
stage = 10;
|
stage = 10;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What is this place?");
|
interpreter.sendDialogues(player, FacialExpression.ASKING, "What is this place?");
|
||||||
stage = 20;
|
stage = 20;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No thanks.");
|
interpreter.sendDialogues(player, FacialExpression.FRIENDLY, "No thanks.");
|
||||||
stage = 30;
|
stage = 30;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -72,19 +72,24 @@ public final class BrianORichardDialogue extends DialoguePlugin {
|
||||||
if (player.getSkills().getLevel(Skills.THIEVING) < 50) {
|
if (player.getSkills().getLevel(Skills.THIEVING) < 50) {
|
||||||
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Shame, I don't think I have anything for you. Train up", "your Thieving skill to at least 50 and I might be able to", "help you out.");
|
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Shame, I don't think I have anything for you. Train up", "your Thieving skill to at least 50 and I might be able to", "help you out.");
|
||||||
stage = 11;
|
stage = 11;
|
||||||
} else {
|
} else if((player.getSkills().getLevel(Skills.AGILITY) < 50 && player.getSkills().getLevel(Skills.THIEVING) > 49)) {
|
||||||
|
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Shame, I don't think I have anything for you. Train up your Agility skill to at least 50 and I might be able to help you out.");
|
||||||
|
stage = 11;
|
||||||
|
}
|
||||||
|
else if((player.getSkills().getLevel(Skills.AGILITY) > 49 && player.getSkills().getLevel(Skills.THIEVING) > 49)) {
|
||||||
|
interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Aha, I have the perfect thing for you! See if you", "can get to the centre of my maze, the further", "you get the greater the rewards. There's even some", "special prizes if you make it right to the end.");
|
||||||
|
stage = 30;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
end();
|
end();
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Ah welcome to my humble home, well actually it belongs", "to mummsie but she's getting on a bit so I look after", "the place for her.");
|
interpreter.sendDialogues(npc, FacialExpression.NEUTRAL, "Ah welcome to my humble home, well actually it belongs", "to mummsie but she's getting on a bit so I look after", "the place for her.");
|
||||||
stage = 21;
|
stage = 21;
|
||||||
break;
|
break;
|
||||||
case 21:
|
case 21:
|
||||||
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "So are you interested in a challenge?");
|
interpreter.sendDialogues(npc, FacialExpression.ASKING, "So are you interested in a challenge?");
|
||||||
stage = 22;
|
stage = 22;
|
||||||
break;
|
break;
|
||||||
case 22:
|
case 22:
|
||||||
|
|
@ -94,11 +99,11 @@ public final class BrianORichardDialogue extends DialoguePlugin {
|
||||||
case 23:
|
case 23:
|
||||||
switch (buttonId) {
|
switch (buttonId) {
|
||||||
case 1:
|
case 1:
|
||||||
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes actually, what've you got?");
|
interpreter.sendDialogues(player, FacialExpression.ASKING, "Yes actually, what've you got?");
|
||||||
stage = 24;
|
stage = 24;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No, thanks.");
|
interpreter.sendDialogues(player, FacialExpression.FRIENDLY, "No, thanks.");
|
||||||
stage = 25;
|
stage = 25;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -115,6 +120,30 @@ public final class BrianORichardDialogue extends DialoguePlugin {
|
||||||
end();
|
end();
|
||||||
break;
|
break;
|
||||||
case 30:
|
case 30:
|
||||||
|
interpreter.sendOptions("Select an Option", "Ok that sounds good!", "No thanks.");
|
||||||
|
stage = 31;
|
||||||
|
break;
|
||||||
|
case 31:
|
||||||
|
switch (buttonId) {
|
||||||
|
case 1:
|
||||||
|
interpreter.sendDialogues(player, FacialExpression.HAPPY, "Ok that sounds good!");
|
||||||
|
stage = 42;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
interpreter.sendDialogues(player, FacialExpression.FRIENDLY, "No thanks.");
|
||||||
|
stage = 44;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 42://dialogue for entering rogues guild, doesn
|
||||||
|
interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Great! When you enter the maze, I'll give you", "a jewel - it'll allow you to get out of the maze", "at any time. However that's all you're allowed to take", "in with you, no cheating!");
|
||||||
|
stage = 43;
|
||||||
|
break;
|
||||||
|
case 43: interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh one last thing, if you happen to see my harmonica", "I'd really like to have it back.");
|
||||||
|
player.setAttribute("/save:rogues-den", true);
|
||||||
|
player.setAttribute("/save:delaytrap", true);
|
||||||
|
stage = 44;
|
||||||
|
break;
|
||||||
|
case 44:
|
||||||
end();
|
end();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue