From bf004ca5a4b9b98f31b74a428abc9ada9d9dd377 Mon Sep 17 00:00:00 2001 From: Avi Weinstock Date: Mon, 21 Feb 2022 21:51:23 +0000 Subject: [PATCH] Items can now be dropped and used in pyramid plunder --- .../activity/pyramidplunder/PlunderZones.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java b/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java index 6a2e2de5b..2f3fbcf9c 100644 --- a/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java +++ b/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java @@ -9,6 +9,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; import core.game.node.item.Item; +import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; @@ -197,9 +198,9 @@ public class PlunderZones implements Plugin { } return true; } - PlunderObject object = target instanceof NPC ? null : new PlunderObject(target.asScenery()); //PlunderObject(target.getId(),target.getLocation()); + PlunderObject object = target instanceof Scenery ? new PlunderObject(target.asScenery()) : null; PlunderObjectManager manager = player.getPlunderObjectManager(); - if(manager == null) return super.interact(e, target, option); + if(object == null || manager == null) return super.interact(e, target, option); boolean alreadyOpened = manager.openedMap.getOrDefault(object.getLocation(),false); boolean charmed = manager.charmedMap.getOrDefault(object.getLocation(),false); boolean success = success(player, Skills.THIEVING); @@ -211,7 +212,7 @@ public class PlunderZones implements Plugin { case 16517: //Spear trap if(!checkRequirements(player,room)){ player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); - break; + return true; } player.getLocks().lockInteractions(2); player.animate(animations[success ? 1 : 0]); @@ -225,18 +226,18 @@ public class PlunderZones implements Plugin { } else { player.getPacketDispatch().sendMessage("You fail to pass the spears."); } - break; + return true; case 16503: case 16502: case 16501: // Urns if (optionName.equals("search")) { if (!checkRequirements(player,room)){ player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); - break; + return true; } if (alreadyOpened){ player.getPacketDispatch().sendMessage("You've already looted this."); - break; + return true; } player.animate(animations[success ? 1 : 0]); @@ -259,7 +260,7 @@ public class PlunderZones implements Plugin { SceneryBuilder.replace(target.asScenery(), target.asScenery().transform(object.snakeId), 5); } } - break; + return true; case 16509: case 16510: case 16511: // Snake urns @@ -271,17 +272,17 @@ public class PlunderZones implements Plugin { player.getImpactHandler().manualHit(player, RandomFunction.random(2, 8), ImpactHandler.HitsplatType.NORMAL); player.getPacketDispatch().sendMessage("The snake bites you."); } - break; + return true; case 16473: // Chest if(optionName.equals("search")) { boolean willSpawnSwarm = (RandomFunction.random(1,20) == 10); if(!checkRequirements(player,room)){ player.getPacketDispatch().sendMessage("You need at least level " + room.reqLevel + " thieving to loot this."); - break; + return true; } if (alreadyOpened){ player.getPacketDispatch().sendMessage("You've already looted this."); - break; + return true; } player.getPacketDispatch().sendMessage("You search the chest..."); player.animate(animations[1]); @@ -300,16 +301,16 @@ public class PlunderZones implements Plugin { manager.registerOpened(object); //ObjectBuilder.replace(target.asObject(), target.asObject().transform(object.openId), 5); } - break; + return true; case 16495: //Sarcophagus if(optionName.equals("open")) { if (!checkRequirements(player,room)){ player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); - break; + return true; } if (alreadyOpened){ player.getPacketDispatch().sendMessage("You've already looted this."); - break; + return true; } boolean willSpawnMummy = (RandomFunction.random(1,5) == 3); player.animate(animations[1]); @@ -328,12 +329,12 @@ public class PlunderZones implements Plugin { manager.registerOpened(object); //ObjectBuilder.replace(target.asObject(), target.asObject().transform(object.openId), 5); } - break; + return true; case 16475: //doors if(optionName.equals("pick-lock") && roomnum < 8) { if (!checkRequirements(player,room)){ player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); - break; + return true; } player.animate(animations[1]); player.getLocks().lockInteractions(2); @@ -354,14 +355,13 @@ public class PlunderZones implements Plugin { } else if(roomnum == 8) { ClimbActionHandler.climb(player, ClimbActionHandler.CLIMB_UP, Location.create(3288, 2801, 0)); } - break; + return true; case 16476: player.getDialogueInterpreter().sendDialogue("This door doesn't seem to lead","anywhere."); - break; + return true; default: return super.interact(e, target, option); } - return true; } } }