From df2528c5e84f60e59ca70d7dcbc941d29b59132d Mon Sep 17 00:00:00 2001 From: dginovker Date: Sun, 9 Jun 2019 12:29:46 -0400 Subject: [PATCH] Added bot equipment --- .../src/org/crandor/game/interaction/Interaction.java | 7 ------- .../crandor/game/node/entity/player/ai/AIPlayer.java | 6 ------ .../entity/player/ai/general/GeneralBotCreator.java | 11 +++++++++++ .../game/node/entity/player/ai/general/ScriptAPI.java | 2 +- .../ai/general/scriptrepository/ManThiever.java | 9 ++++++++- .../player/ai/general/scriptrepository/Script.java | 7 ++++++- .../src/plugin/command/AIPCommandPlugin.java | 3 +++ 7 files changed, 29 insertions(+), 16 deletions(-) diff --git a/09HDscape-server/src/org/crandor/game/interaction/Interaction.java b/09HDscape-server/src/org/crandor/game/interaction/Interaction.java index ef0b75648..f4f85f2ed 100644 --- a/09HDscape-server/src/org/crandor/game/interaction/Interaction.java +++ b/09HDscape-server/src/org/crandor/game/interaction/Interaction.java @@ -61,30 +61,23 @@ public final class Interaction { * @param option The option used. */ public void handle(final Player player, final Option option) { - System.out.println("In handle"); if (player.getLocks().isInteractionLocked()) { - System.out.println("Locked!"); return; } boolean hasHandler = option.getHandler() != null; String pulseType = "interaction:" + option.getName() + ":" + node.hashCode(); boolean walk = hasHandler && option.getHandler().isWalk(); - System.out.println("Which one will he take?"); if (!walk && hasHandler && option.getHandler().isWalk(player, node)) { walk = true; } if (!hasHandler || walk) { handleWalkOption(player, option, pulseType); - System.out.println("A"); } else if (hasHandler) { player.debug("Option handler being used=" + option.getHandler().getClass().getSimpleName()); handleDefaultOption(player, option, pulseType); - System.out.println("D"); } else { player.getPulseManager().runUnhandledAction(player, pulseType); - System.out.println("C"); } - System.out.println("Done"); } /** diff --git a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/AIPlayer.java b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/AIPlayer.java index f7bff6073..0ba12cbb0 100644 --- a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/AIPlayer.java +++ b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/AIPlayer.java @@ -57,11 +57,6 @@ public class AIPlayer extends Player { */ private Player controler; - /** - * The scriptAPI the bot will perform - */ - private ScriptAPI scriptAPI; - /** * Constructs a new {@code AIPlayer} {@code Object}. * @param name The name of the AIP. @@ -75,7 +70,6 @@ public class AIPlayer extends Player { super.getDetails().setSession(ArtificialSession.getSingleton()); this.username = StringUtils.formatDisplayName(name); this.uid = currentUID++; - this.scriptAPI = new ScriptAPI(); } @Override diff --git a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/GeneralBotCreator.java b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/GeneralBotCreator.java index 3018d07e3..b11b87b07 100644 --- a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/GeneralBotCreator.java +++ b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/GeneralBotCreator.java @@ -3,6 +3,7 @@ package org.crandor.game.node.entity.player.ai.general; import org.crandor.game.node.entity.player.ai.AIPBuilder; import org.crandor.game.node.entity.player.ai.AIPlayer; import org.crandor.game.node.entity.player.ai.general.scriptrepository.Script; +import org.crandor.game.node.item.Item; import org.crandor.game.system.task.Pulse; import org.crandor.game.world.GameWorld; import org.crandor.game.world.map.Location; @@ -18,6 +19,16 @@ public class GeneralBotCreator { bot.init(); botScript.setPlayer(bot); + // Initialize inventory + for (Item i : botScript.inventory) + { + bot.getInventory().add(i); + } + for (Item i : botScript.equipment) + { + bot.getEquipment().add(i, true, false); + } + GameWorld.submit(new Pulse(1, bot) { int ticks = 0; @Override diff --git a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/ScriptAPI.java b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/ScriptAPI.java index 7a91baed0..b93fdd382 100644 --- a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/ScriptAPI.java +++ b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/ScriptAPI.java @@ -20,7 +20,7 @@ public class ScriptAPI { return Math.sqrt(Math.pow(n1.getLocation().getX() - n2.getLocation().getX(), 2) + Math.pow(n2.getLocation().getY() - n1.getLocation().getY(), 2)); } - public Node getNearestEntity(Player me, String entityName) + public Node getNearestNode(Player me, String entityName) { Node entity = null; double minDistance = Double.MAX_VALUE; diff --git a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/ManThiever.java b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/ManThiever.java index 2ab8693c8..4f8743061 100644 --- a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/ManThiever.java +++ b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/ManThiever.java @@ -1,12 +1,19 @@ package org.crandor.game.node.entity.player.ai.general.scriptrepository; import org.crandor.game.node.Node; +import org.crandor.game.node.item.Item; + +import java.util.Arrays; public class ManThiever extends Script { + public ManThiever() + { + this.equipment.addAll(Arrays.asList(new Item(1103), new Item(1139), new Item(1265))); + } @Override public void runLoop() { - Node man = scriptAPI.getNearestEntity(me, "Man"); + Node man = scriptAPI.getNearestNode(me, "Man"); if (man != null) { diff --git a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/Script.java b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/Script.java index 534575d34..9500c05cd 100644 --- a/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/Script.java +++ b/09HDscape-server/src/org/crandor/game/node/entity/player/ai/general/scriptrepository/Script.java @@ -2,10 +2,15 @@ package org.crandor.game.node.entity.player.ai.general.scriptrepository; import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.ai.general.ScriptAPI; +import org.crandor.game.node.item.Item; + +import java.util.ArrayList; public abstract class Script { - public Player me; public ScriptAPI scriptAPI = new ScriptAPI(); + public Player me; + public ArrayList inventory = new ArrayList<>(); + public ArrayList equipment = new ArrayList<>(); public void setPlayer(Player me) { diff --git a/09HDscape-server/src/plugin/command/AIPCommandPlugin.java b/09HDscape-server/src/plugin/command/AIPCommandPlugin.java index bbec35221..351956904 100644 --- a/09HDscape-server/src/plugin/command/AIPCommandPlugin.java +++ b/09HDscape-server/src/plugin/command/AIPCommandPlugin.java @@ -1,5 +1,6 @@ package plugin.command; +import org.crandor.game.container.Container; import org.crandor.game.interaction.Interaction; import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.ai.AIPBuilder; @@ -10,6 +11,7 @@ import org.crandor.game.node.entity.player.ai.pvp.PVPAIPActions; import org.crandor.game.node.entity.player.ai.pvp.PVPAIPBuilderUtils; import org.crandor.game.node.entity.player.ai.resource.ResourceAIPActions; import org.crandor.game.node.entity.player.link.appearance.Gender; +import org.crandor.game.node.item.Item; import org.crandor.game.system.command.CommandPlugin; import org.crandor.game.system.command.CommandSet; import org.crandor.game.system.task.Pulse; @@ -22,6 +24,7 @@ import org.crandor.plugin.InitializablePlugin; import org.crandor.plugin.Plugin; import org.crandor.tools.RandomFunction; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List;