mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Implemented thieving candles on Entrana
This commit is contained in:
parent
5c977c0522
commit
2da47d8353
4 changed files with 34 additions and 7 deletions
|
|
@ -6,6 +6,9 @@ import core.tools.RandomFunction;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static org.rs09.consts.Items.CANDLE_36;
|
||||||
|
import static org.rs09.consts.Scenery.CANDLES_19127;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a thieving stall.
|
* Represents a thieving stall.
|
||||||
* @author Ceikry, Woahscam
|
* @author Ceikry, Woahscam
|
||||||
|
|
@ -28,9 +31,9 @@ public enum Stall {
|
||||||
SCIMITAR_STALL(new Integer[]{4878}, new Integer[] { 4797 }, 65, new Item[]{new Item(1323, 1)}, 100, 134,"equipment"),
|
SCIMITAR_STALL(new Integer[]{4878}, new Integer[] { 4797 }, 65, new Item[]{new Item(1323, 1)}, 100, 134,"equipment"),
|
||||||
MAGIC_STALL(new Integer[]{4877}, new Integer[] { 4797 }, 65, new Item[]{new Item(556, 1), new Item(557, 1), new Item(554, 1), new Item(555, 1), new Item(563, 1)}, 100, 134,"equipment"),
|
MAGIC_STALL(new Integer[]{4877}, new Integer[] { 4797 }, 65, new Item[]{new Item(556, 1), new Item(557, 1), new Item(554, 1), new Item(555, 1), new Item(563, 1)}, 100, 134,"equipment"),
|
||||||
GENERAL_STALL(new Integer[]{4876}, new Integer[] { 4797 }, 5, new Item[]{new Item(1931, 1), new Item(2347, 1), new Item(590, 1)}, 16, 12,"goods"),
|
GENERAL_STALL(new Integer[]{4876}, new Integer[] { 4797 }, 5, new Item[]{new Item(1931, 1), new Item(2347, 1), new Item(590, 1)}, 16, 12,"goods"),
|
||||||
FOOD_STALL(new Integer[]{4875}, new Integer[] { 4797 }, 5, new Item[]{new Item(1963, 1)}, 16, 12,"food");
|
FOOD_STALL(new Integer[]{4875}, new Integer[] { 4797 }, 5, new Item[]{new Item(1963, 1)}, 16, 12,"food"),
|
||||||
//CRAFTING_STALL (Ape Atoll) shares same drops/exp as regular crafting stall
|
//CRAFTING_STALL (Ape Atoll) shares same drops/exp as regular crafting stall
|
||||||
|
CANDLES(new Integer[]{CANDLES_19127}, new Integer[]{CANDLES_19127}, 20, new Item[]{new Item(CANDLE_36, 1)}, 20, 0, "candles");
|
||||||
//Quest Stalls Rocking Out
|
//Quest Stalls Rocking Out
|
||||||
//CUSTOMS_EVIDENCE_FILES(new Integer[]{FIND OBJ ID}, FIND OBJ EMPTY ID, 63, new Item[]{new Item(1333, 1), new Item(1617, 1), new Item(1619, 1), new Item(1623, 1), new Item(385, 1), new Item(2359, 1), new Item(2357, 1), new Item(2351, 1), new Item(7114, 1), new Item(7134, 1), new Item(1025, 1), new Item(1281, 1), new Item(1325, 1), new Item(1323, 1), new Item(1321, 1), new Item(995, 300)}, 75, 100);
|
//CUSTOMS_EVIDENCE_FILES(new Integer[]{FIND OBJ ID}, FIND OBJ EMPTY ID, 63, new Item[]{new Item(1333, 1), new Item(1617, 1), new Item(1619, 1), new Item(1623, 1), new Item(385, 1), new Item(2359, 1), new Item(2357, 1), new Item(2351, 1), new Item(7114, 1), new Item(7134, 1), new Item(1025, 1), new Item(1281, 1), new Item(1325, 1), new Item(1323, 1), new Item(1321, 1), new Item(995, 300)}, 75, 100);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package content.global.skill.thieving;
|
package content.global.skill.thieving;
|
||||||
|
|
||||||
import core.game.event.ResourceProducedEvent;
|
import core.game.event.ResourceProducedEvent;
|
||||||
|
import core.game.node.entity.combat.ImpactHandler;
|
||||||
import core.game.node.entity.skill.SkillPulse;
|
import core.game.node.entity.skill.SkillPulse;
|
||||||
import core.game.node.entity.skill.Skills;
|
import core.game.node.entity.skill.Skills;
|
||||||
import core.game.node.entity.npc.NPC;
|
import core.game.node.entity.npc.NPC;
|
||||||
|
|
@ -9,6 +10,8 @@ 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.world.GameWorld;
|
import core.game.world.GameWorld;
|
||||||
|
import core.game.world.map.Direction;
|
||||||
|
import core.game.world.map.Location;
|
||||||
import core.game.world.map.RegionManager;
|
import core.game.world.map.RegionManager;
|
||||||
import core.game.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
import core.tools.RandomFunction;
|
import core.tools.RandomFunction;
|
||||||
|
|
@ -119,6 +122,9 @@ public final class StallThiefPulse extends SkillPulse<Scenery> {
|
||||||
player.getPacketDispatch().sendMessage("You steal grapes from the grape stall.");
|
player.getPacketDispatch().sendMessage("You steal grapes from the grape stall.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if(stall == Stall.CANDLES) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
player.getPacketDispatch().sendMessage("You steal " + (StringUtils.isPlusN(item.getName()) ? "an" : "a") + " " + item.getName().toLowerCase() + " from the " + stall.name().toLowerCase().replace('_',' ') + ".");
|
player.getPacketDispatch().sendMessage("You steal " + (StringUtils.isPlusN(item.getName()) ? "an" : "a") + " " + item.getName().toLowerCase() + " from the " + stall.name().toLowerCase().replace('_',' ') + ".");
|
||||||
player.dispatch(new ResourceProducedEvent(item.getId(), item.getAmount(), node, 0));
|
player.dispatch(new ResourceProducedEvent(item.getId(), item.getAmount(), node, 0));
|
||||||
}
|
}
|
||||||
|
|
@ -127,11 +133,12 @@ public final class StallThiefPulse extends SkillPulse<Scenery> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void message(int type) {
|
public void message(int type) {
|
||||||
switch (type) {
|
if(stall == Stall.CANDLES) {
|
||||||
case 0:
|
return;
|
||||||
player.getPacketDispatch().sendMessage("You attempt to steal some " + stall.msgItem + " from the " + stall.name().toLowerCase().replace('_',' '));
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
if (type == 0) {
|
||||||
|
player.getPacketDispatch().sendMessage("You attempt to steal some " + stall.msgItem + " from the " + stall.name().toLowerCase().replace('_', ' '));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -141,6 +148,15 @@ public final class StallThiefPulse extends SkillPulse<Scenery> {
|
||||||
private boolean success() {
|
private boolean success() {
|
||||||
int mod = 0;
|
int mod = 0;
|
||||||
if (RandomFunction.random(15 + mod) < 4) {
|
if (RandomFunction.random(15 + mod) < 4) {
|
||||||
|
if(stall == Stall.CANDLES) {
|
||||||
|
stun(player, 15, false);
|
||||||
|
impact(player, 1, ImpactHandler.HitsplatType.NORMAL);
|
||||||
|
// Location playerLoc = player.getLocation();
|
||||||
|
// forceMove(player, playerLoc, new Location(playerLoc.getX() - 1, playerLoc.getY() - 1),
|
||||||
|
// 0, 4, Direction.SOUTH_WEST, 819, null);
|
||||||
|
player.sendMessage("A higher power smites you");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
for (NPC npc : RegionManager.getLocalNpcs(player.getLocation(), 8)) {
|
for (NPC npc : RegionManager.getLocalNpcs(player.getLocation(), 8)) {
|
||||||
if (!npc.getProperties().getCombatPulse().isAttacking() && (npc.getId() == 32 || npc.getId() == 2236)) {
|
if (!npc.getProperties().getCombatPulse().isAttacking() && (npc.getId() == 32 || npc.getId() == 2236)) {
|
||||||
npc.sendChat("Hey! Get your hands off there!");
|
npc.sendChat("Hey! Get your hands off there!");
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ public class ThievingOptionPlugin extends OptionHandler {
|
||||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||||
SceneryDefinition.setOptionHandler("steal-from", this);
|
SceneryDefinition.setOptionHandler("steal-from", this);
|
||||||
SceneryDefinition.setOptionHandler("steal from", this);
|
SceneryDefinition.setOptionHandler("steal from", this);
|
||||||
|
SceneryDefinition.setOptionHandler("steal", this);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -28,6 +29,7 @@ public class ThievingOptionPlugin extends OptionHandler {
|
||||||
switch (option) {
|
switch (option) {
|
||||||
case "steal-from":
|
case "steal-from":
|
||||||
case "steal from":
|
case "steal from":
|
||||||
|
case "steal":
|
||||||
player.getPulseManager().run(new StallThiefPulse(player, (Scenery) node, Stall.forObject((Scenery) node)));
|
player.getPulseManager().run(new StallThiefPulse(player, (Scenery) node, Stall.forObject((Scenery) node)));
|
||||||
player.getLocks().lockInteractions(6);
|
player.getLocks().lockInteractions(6);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -2847,6 +2847,10 @@ fun delayAttack(entity: Entity, ticks: Int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun stun(entity: Entity, ticks: Int) {
|
fun stun(entity: Entity, ticks: Int) {
|
||||||
|
stun(entity, ticks, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun stun(entity: Entity, ticks: Int, sendMessage: Boolean) {
|
||||||
entity.walkingQueue.reset()
|
entity.walkingQueue.reset()
|
||||||
entity.pulseManager.clear()
|
entity.pulseManager.clear()
|
||||||
entity.locks.lockMovement(ticks)
|
entity.locks.lockMovement(ticks)
|
||||||
|
|
@ -2855,7 +2859,9 @@ fun stun(entity: Entity, ticks: Int) {
|
||||||
if (entity is Player) {
|
if (entity is Player) {
|
||||||
playAudio(entity.asPlayer(), Sounds.STUNNED_2727)
|
playAudio(entity.asPlayer(), Sounds.STUNNED_2727)
|
||||||
entity.animate(Animation(424, Animator.Priority.VERY_HIGH))
|
entity.animate(Animation(424, Animator.Priority.VERY_HIGH))
|
||||||
sendMessage(entity, "You have been stunned!")
|
if (sendMessage) {
|
||||||
|
sendMessage(entity, "You have been stunned!")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue