Items can now be dropped and used in pyramid plunder
This commit is contained in:
@@ -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<Object> {
|
||||
}
|
||||
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<Object> {
|
||||
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<Object> {
|
||||
} 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<Object> {
|
||||
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<Object> {
|
||||
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<Object> {
|
||||
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<Object> {
|
||||
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<Object> {
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user