@Override public OperationInfo calculateGoal(WorldObject performer, World world) { List<WorldObject> targets = findPotentialTargets(performer, world); if (targets.size() > 0) { return new OperationInfo( performer, targets.get(0), Conversations.createArgs(Conversations.SWITCH_DEITY_CONVERSATION), Actions.TALK_ACTION); } else { return null; } }
@Override public OperationInfo calculateGoal(WorldObject performer, World world) { for (WorldObject nonMember : getNonMembersSellingItems(performer, world)) { boolean actionAlreadyPerformed = world .getHistory() .findHistoryItems( performer, nonMember, Conversations.createArgs(Conversations.STOP_SELLING_CONVERSATION), Actions.TALK_ACTION) .size() > 0; if (!actionAlreadyPerformed) { return new OperationInfo( performer, nonMember, Conversations.createArgs(Conversations.STOP_SELLING_CONVERSATION), Actions.TALK_ACTION); } } return null; }