Items can now be dropped and used in pyramid plunder

This commit is contained in:
Avi Weinstock
2022-02-21 21:51:23 +00:00
committed by Ryan
parent 0238936bc0
commit bf004ca5a4
@@ -9,6 +9,7 @@ import core.game.node.entity.npc.NPC;
import core.game.node.entity.player.Player; import core.game.node.entity.player.Player;
import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.Skills;
import core.game.node.item.Item; import core.game.node.item.Item;
import core.game.node.scenery.Scenery;
import core.game.node.scenery.SceneryBuilder; import core.game.node.scenery.SceneryBuilder;
import core.game.system.task.LocationLogoutTask; import core.game.system.task.LocationLogoutTask;
import core.game.system.task.LogoutTask; import core.game.system.task.LogoutTask;
@@ -197,9 +198,9 @@ public class PlunderZones implements Plugin<Object> {
} }
return true; 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(); 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 alreadyOpened = manager.openedMap.getOrDefault(object.getLocation(),false);
boolean charmed = manager.charmedMap.getOrDefault(object.getLocation(),false); boolean charmed = manager.charmedMap.getOrDefault(object.getLocation(),false);
boolean success = success(player, Skills.THIEVING); boolean success = success(player, Skills.THIEVING);
@@ -211,7 +212,7 @@ public class PlunderZones implements Plugin<Object> {
case 16517: //Spear trap case 16517: //Spear trap
if(!checkRequirements(player,room)){ if(!checkRequirements(player,room)){
player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving.");
break; return true;
} }
player.getLocks().lockInteractions(2); player.getLocks().lockInteractions(2);
player.animate(animations[success ? 1 : 0]); player.animate(animations[success ? 1 : 0]);
@@ -225,18 +226,18 @@ public class PlunderZones implements Plugin<Object> {
} else { } else {
player.getPacketDispatch().sendMessage("You fail to pass the spears."); player.getPacketDispatch().sendMessage("You fail to pass the spears.");
} }
break; return true;
case 16503: case 16503:
case 16502: case 16502:
case 16501: // Urns case 16501: // Urns
if (optionName.equals("search")) { if (optionName.equals("search")) {
if (!checkRequirements(player,room)){ if (!checkRequirements(player,room)){
player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving.");
break; return true;
} }
if (alreadyOpened){ if (alreadyOpened){
player.getPacketDispatch().sendMessage("You've already looted this."); player.getPacketDispatch().sendMessage("You've already looted this.");
break; return true;
} }
player.animate(animations[success ? 1 : 0]); player.animate(animations[success ? 1 : 0]);
@@ -259,7 +260,7 @@ public class PlunderZones implements Plugin<Object> {
SceneryBuilder.replace(target.asScenery(), target.asScenery().transform(object.snakeId), 5); SceneryBuilder.replace(target.asScenery(), target.asScenery().transform(object.snakeId), 5);
} }
} }
break; return true;
case 16509: case 16509:
case 16510: case 16510:
case 16511: // Snake urns case 16511: // Snake urns
@@ -271,17 +272,17 @@ public class PlunderZones implements Plugin<Object> {
player.getImpactHandler().manualHit(player, RandomFunction.random(2, 8), ImpactHandler.HitsplatType.NORMAL); player.getImpactHandler().manualHit(player, RandomFunction.random(2, 8), ImpactHandler.HitsplatType.NORMAL);
player.getPacketDispatch().sendMessage("The snake bites you."); player.getPacketDispatch().sendMessage("The snake bites you.");
} }
break; return true;
case 16473: // Chest case 16473: // Chest
if(optionName.equals("search")) { if(optionName.equals("search")) {
boolean willSpawnSwarm = (RandomFunction.random(1,20) == 10); boolean willSpawnSwarm = (RandomFunction.random(1,20) == 10);
if(!checkRequirements(player,room)){ if(!checkRequirements(player,room)){
player.getPacketDispatch().sendMessage("You need at least level " + room.reqLevel + " thieving to loot this."); player.getPacketDispatch().sendMessage("You need at least level " + room.reqLevel + " thieving to loot this.");
break; return true;
} }
if (alreadyOpened){ if (alreadyOpened){
player.getPacketDispatch().sendMessage("You've already looted this."); player.getPacketDispatch().sendMessage("You've already looted this.");
break; return true;
} }
player.getPacketDispatch().sendMessage("You search the chest..."); player.getPacketDispatch().sendMessage("You search the chest...");
player.animate(animations[1]); player.animate(animations[1]);
@@ -300,16 +301,16 @@ public class PlunderZones implements Plugin<Object> {
manager.registerOpened(object); manager.registerOpened(object);
//ObjectBuilder.replace(target.asObject(), target.asObject().transform(object.openId), 5); //ObjectBuilder.replace(target.asObject(), target.asObject().transform(object.openId), 5);
} }
break; return true;
case 16495: //Sarcophagus case 16495: //Sarcophagus
if(optionName.equals("open")) { if(optionName.equals("open")) {
if (!checkRequirements(player,room)){ if (!checkRequirements(player,room)){
player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving.");
break; return true;
} }
if (alreadyOpened){ if (alreadyOpened){
player.getPacketDispatch().sendMessage("You've already looted this."); player.getPacketDispatch().sendMessage("You've already looted this.");
break; return true;
} }
boolean willSpawnMummy = (RandomFunction.random(1,5) == 3); boolean willSpawnMummy = (RandomFunction.random(1,5) == 3);
player.animate(animations[1]); player.animate(animations[1]);
@@ -328,12 +329,12 @@ public class PlunderZones implements Plugin<Object> {
manager.registerOpened(object); manager.registerOpened(object);
//ObjectBuilder.replace(target.asObject(), target.asObject().transform(object.openId), 5); //ObjectBuilder.replace(target.asObject(), target.asObject().transform(object.openId), 5);
} }
break; return true;
case 16475: //doors case 16475: //doors
if(optionName.equals("pick-lock") && roomnum < 8) { if(optionName.equals("pick-lock") && roomnum < 8) {
if (!checkRequirements(player,room)){ if (!checkRequirements(player,room)){
player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving."); player.getPacketDispatch().sendMessage("You need to be at least level " + room.reqLevel + " thieving.");
break; return true;
} }
player.animate(animations[1]); player.animate(animations[1]);
player.getLocks().lockInteractions(2); player.getLocks().lockInteractions(2);
@@ -354,14 +355,13 @@ public class PlunderZones implements Plugin<Object> {
} else if(roomnum == 8) { } else if(roomnum == 8) {
ClimbActionHandler.climb(player, ClimbActionHandler.CLIMB_UP, Location.create(3288, 2801, 0)); ClimbActionHandler.climb(player, ClimbActionHandler.CLIMB_UP, Location.create(3288, 2801, 0));
} }
break; return true;
case 16476: case 16476:
player.getDialogueInterpreter().sendDialogue("This door doesn't seem to lead","anywhere."); player.getDialogueInterpreter().sendDialogue("This door doesn't seem to lead","anywhere.");
break; return true;
default: default:
return super.interact(e, target, option); return super.interact(e, target, option);
} }
return true;
} }
} }
} }