mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Adventure updates
Clear quests on New Game+ Small cleanup tweaks to town layouts Added (big) signs to capitals for arena and spellsmith. Quests can now be tagged with sources, allowing generation in specific towns / biomes. NPC arena matches are now weighted on relative HP rather than 50/50 odds. Removed invisible collision wall in Maze_1.tmx, gave threat range to nearby enemy instead.
This commit is contained in:
@@ -97,7 +97,7 @@ public class EnemyEdit extends FormPanel {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
existingModel = QuestController.getInstance().getEnemyTags(true);
|
existingModel = QuestController.getInstance().getEnemyTags();
|
||||||
existingTags.setModel(existingModel);
|
existingTags.setModel(existingModel);
|
||||||
|
|
||||||
|
|
||||||
@@ -243,7 +243,7 @@ public class EnemyEdit extends FormPanel {
|
|||||||
|
|
||||||
private void filterExisting(DefaultListModel<String> filter){
|
private void filterExisting(DefaultListModel<String> filter){
|
||||||
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
||||||
for (Enumeration<String> e = QuestController.getInstance().getEnemyTags(true).elements(); e.hasMoreElements();){
|
for (Enumeration<String> e = QuestController.getInstance().getEnemyTags().elements(); e.hasMoreElements();){
|
||||||
String toTest = e.nextElement();
|
String toTest = e.nextElement();
|
||||||
if (toTest != null & !filter.contains(toTest)){
|
if (toTest != null & !filter.contains(toTest)){
|
||||||
toReturn.addElement(toTest);
|
toReturn.addElement(toTest);
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class PointOfInterestEdit extends JComponent {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
existingModel = QuestController.getInstance().getPOITags(true);
|
existingModel = QuestController.getInstance().getPOITags();
|
||||||
existingTags.setModel(existingModel);
|
existingTags.setModel(existingModel);
|
||||||
|
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ public class PointOfInterestEdit extends JComponent {
|
|||||||
|
|
||||||
private void filterExisting(DefaultListModel<String> filter){
|
private void filterExisting(DefaultListModel<String> filter){
|
||||||
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
||||||
for (Enumeration<String> e = QuestController.getInstance().getPOITags(true).elements(); e.hasMoreElements();){
|
for (Enumeration<String> e = QuestController.getInstance().getPOITags().elements(); e.hasMoreElements();){
|
||||||
String toTest = e.nextElement();
|
String toTest = e.nextElement();
|
||||||
if (toTest != null & !filter.contains(toTest)){
|
if (toTest != null & !filter.contains(toTest)){
|
||||||
toReturn.addElement(toTest);
|
toReturn.addElement(toTest);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ public class QuestController {
|
|||||||
public final DefaultListModel<String> questPOITags = new DefaultListModel<>();
|
public final DefaultListModel<String> questPOITags = new DefaultListModel<>();
|
||||||
private final DefaultListModel<PointOfInterestData> allPOI = new DefaultListModel<>();
|
private final DefaultListModel<PointOfInterestData> allPOI = new DefaultListModel<>();
|
||||||
private final DefaultListModel<EnemyData> allEnemies = new DefaultListModel<>();
|
private final DefaultListModel<EnemyData> allEnemies = new DefaultListModel<>();
|
||||||
|
private final DefaultListModel<String> questSourceTags = new DefaultListModel<>();
|
||||||
|
|
||||||
private final DefaultListModel<AdventureQuestData> allQuests = new DefaultListModel<>();
|
private final DefaultListModel<AdventureQuestData> allQuests = new DefaultListModel<>();
|
||||||
|
|
||||||
@@ -43,21 +44,13 @@ public class QuestController {
|
|||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
public DefaultListModel<String> getEnemyTags(boolean includeQuest){
|
public DefaultListModel<String> getEnemyTags(){
|
||||||
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
||||||
for (int i = 0; i < enemyTags.size(); i++){
|
for (int i = 0; i < enemyTags.size(); i++){
|
||||||
toReturn.removeElement(enemyTags.get(i));
|
toReturn.removeElement(enemyTags.get(i));
|
||||||
toReturn.addElement(enemyTags.get(i));
|
toReturn.addElement(enemyTags.get(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (includeQuest){
|
|
||||||
for (int i = 0; i < questEnemyTags.size(); i++)
|
|
||||||
{
|
|
||||||
toReturn.removeElement(questEnemyTags.get(i));
|
|
||||||
toReturn.addElement(questEnemyTags.get(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Object> sortedObjects = Arrays.stream(toReturn.toArray()).sorted().collect(Collectors.toList());
|
List<Object> sortedObjects = Arrays.stream(toReturn.toArray()).sorted().collect(Collectors.toList());
|
||||||
|
|
||||||
toReturn.clear();
|
toReturn.clear();
|
||||||
@@ -69,19 +62,31 @@ public class QuestController {
|
|||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DefaultListModel<String> getPOITags(boolean includeQuest){
|
public DefaultListModel<String> getPOITags(){
|
||||||
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
||||||
for (int i = 0; i < POITags.size(); i++){
|
for (int i = 0; i < POITags.size(); i++){
|
||||||
toReturn.removeElement(POITags.get(i));
|
toReturn.removeElement(POITags.get(i));
|
||||||
toReturn.addElement(POITags.get(i));
|
toReturn.addElement(POITags.get(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (includeQuest){
|
List<Object> sortedObjects = Arrays.stream(toReturn.toArray()).sorted().collect(Collectors.toList());
|
||||||
for (int i = 0; i < questEnemyTags.size(); i++)
|
|
||||||
{
|
toReturn.clear();
|
||||||
toReturn.removeElement(questEnemyTags.get(i));
|
|
||||||
toReturn.addElement(questEnemyTags.get(i));
|
for (Object sortedObject : sortedObjects) {
|
||||||
|
toReturn.addElement((String) sortedObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultListModel<String> getSourceTags(){
|
||||||
|
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
||||||
|
|
||||||
|
for (int i = 0; i < questSourceTags.size(); i++)
|
||||||
|
{
|
||||||
|
toReturn.removeElement(questSourceTags.get(i));
|
||||||
|
toReturn.addElement(questSourceTags.get(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Object> sortedObjects = Arrays.stream(toReturn.toArray()).sorted().collect(Collectors.toList());
|
List<Object> sortedObjects = Arrays.stream(toReturn.toArray()).sorted().collect(Collectors.toList());
|
||||||
@@ -101,6 +106,7 @@ public class QuestController {
|
|||||||
questPOITags.clear();
|
questPOITags.clear();
|
||||||
questEnemyTags.clear();
|
questEnemyTags.clear();
|
||||||
questTags.clear();
|
questTags.clear();
|
||||||
|
questSourceTags.clear();
|
||||||
|
|
||||||
for (int i=0;i<allEnemies.size();i++) {
|
for (int i=0;i<allEnemies.size();i++) {
|
||||||
for (String tag : allEnemies.get(i).questTags)
|
for (String tag : allEnemies.get(i).questTags)
|
||||||
@@ -122,12 +128,6 @@ public class QuestController {
|
|||||||
|
|
||||||
for (int i=0;i<allQuests.size();i++) {
|
for (int i=0;i<allQuests.size();i++) {
|
||||||
|
|
||||||
for (String tag : allQuests.get(i).questTags)
|
|
||||||
{
|
|
||||||
questTags.removeElement(tag); //Ensure uniqueness
|
|
||||||
if (tag!= null)
|
|
||||||
questTags.addElement(tag);
|
|
||||||
}
|
|
||||||
for (String tag : allQuests.get(i).questEnemyTags)
|
for (String tag : allQuests.get(i).questEnemyTags)
|
||||||
{
|
{
|
||||||
questEnemyTags.removeElement(tag); //Ensure uniqueness
|
questEnemyTags.removeElement(tag); //Ensure uniqueness
|
||||||
@@ -140,6 +140,14 @@ public class QuestController {
|
|||||||
if (tag!= null)
|
if (tag!= null)
|
||||||
questPOITags.addElement(tag);
|
questPOITags.addElement(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (String tag : allQuests.get(i).questSourceTags)
|
||||||
|
{
|
||||||
|
questSourceTags.removeElement(tag); //Ensure uniqueness
|
||||||
|
if (tag!= null)
|
||||||
|
questSourceTags.addElement(tag);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,12 +203,6 @@ public class QuestController {
|
|||||||
|
|
||||||
allQuests.add(i,template);
|
allQuests.add(i,template);
|
||||||
|
|
||||||
for (String tag : template.questTags)
|
|
||||||
{
|
|
||||||
questTags.removeElement(tag); //Ensure uniqueness
|
|
||||||
if (tag!= null)
|
|
||||||
questTags.addElement(tag);
|
|
||||||
}
|
|
||||||
for (String tag : template.questEnemyTags)
|
for (String tag : template.questEnemyTags)
|
||||||
{
|
{
|
||||||
questEnemyTags.removeElement(tag); //Ensure uniqueness
|
questEnemyTags.removeElement(tag); //Ensure uniqueness
|
||||||
@@ -213,6 +215,12 @@ public class QuestController {
|
|||||||
if (tag!= null)
|
if (tag!= null)
|
||||||
questPOITags.addElement(tag);
|
questPOITags.addElement(tag);
|
||||||
}
|
}
|
||||||
|
for (String tag : template.questSourceTags)
|
||||||
|
{
|
||||||
|
questSourceTags.removeElement(tag); //Ensure uniqueness
|
||||||
|
if (tag!= null)
|
||||||
|
questSourceTags.addElement(tag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,12 @@ package forge.adventure.editor;
|
|||||||
import forge.adventure.data.AdventureQuestData;
|
import forge.adventure.data.AdventureQuestData;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
import javax.swing.event.ListDataEvent;
|
||||||
|
import javax.swing.event.ListDataListener;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
|
||||||
public class QuestEdit extends FormPanel {
|
public class QuestEdit extends FormPanel {
|
||||||
AdventureQuestData currentData;
|
AdventureQuestData currentData;
|
||||||
@@ -24,6 +30,13 @@ public class QuestEdit extends FormPanel {
|
|||||||
public DialogEditor declineEditor = new DialogEditor();
|
public DialogEditor declineEditor = new DialogEditor();
|
||||||
private boolean updating=false;
|
private boolean updating=false;
|
||||||
|
|
||||||
|
JTextField manualEntry = new JTextField(20);
|
||||||
|
DefaultListModel<String> existingModel = new DefaultListModel<>();
|
||||||
|
DefaultListModel<String> selectedTagModel = new DefaultListModel<>();
|
||||||
|
JList<String> existingTags;
|
||||||
|
JList<String> selectedTags;
|
||||||
|
JPanel tags = new JPanel();
|
||||||
|
|
||||||
public QuestEdit()
|
public QuestEdit()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -46,6 +59,125 @@ public class QuestEdit extends FormPanel {
|
|||||||
tabs.add("Epilogue",getEpilogueTab());
|
tabs.add("Epilogue",getEpilogueTab());
|
||||||
tabs.add("Failure Dialog", getFailureTab());
|
tabs.add("Failure Dialog", getFailureTab());
|
||||||
tabs.add("Decline Dialog",getDeclineTab());
|
tabs.add("Decline Dialog",getDeclineTab());
|
||||||
|
tabs.add("Quest Sources", getSourcesTab());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
existingTags = new JList<>();
|
||||||
|
|
||||||
|
|
||||||
|
existingTags.getInputMap(JList.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
|
||||||
|
KeyStroke.getKeyStroke("ENTER"), "addSelected");
|
||||||
|
existingTags.getActionMap().put("addSelected", new AbstractAction() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
addSelected();
|
||||||
|
|
||||||
|
int index = existingTags.getSelectedIndex();
|
||||||
|
|
||||||
|
String selectedItem = existingTags.getSelectedValue();
|
||||||
|
|
||||||
|
if (selectedItem != null) {
|
||||||
|
selectedTagModel.addElement(selectedItem);
|
||||||
|
existingTags.grabFocus();
|
||||||
|
existingTags.setSelectedIndex(index<existingModel.size()?index:index-1);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
existingModel = QuestController.getInstance().getSourceTags();
|
||||||
|
existingTags.setModel(existingModel);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
selectedTags = new JList<>();
|
||||||
|
selectedTagModel = new DefaultListModel<>();
|
||||||
|
selectedTags.setModel(selectedTagModel);
|
||||||
|
|
||||||
|
selectedTags.getModel().addListDataListener(new ListDataListener() {
|
||||||
|
@Override
|
||||||
|
public void intervalAdded(ListDataEvent e) {
|
||||||
|
doUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void intervalRemoved(ListDataEvent e) {
|
||||||
|
doUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void contentsChanged(ListDataEvent e) {
|
||||||
|
doUpdate();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
JButton select = new JButton("Select");
|
||||||
|
select.addActionListener(q -> addSelected());
|
||||||
|
JButton add = new JButton("Manual Add");
|
||||||
|
add.addActionListener(q -> manualAdd(selectedTagModel));
|
||||||
|
JButton remove = new JButton("Remove Item");
|
||||||
|
remove.addActionListener(q -> removeSelected());
|
||||||
|
|
||||||
|
tags.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
JPanel left = new JPanel();
|
||||||
|
left.setLayout(new BorderLayout());
|
||||||
|
left.add(new JLabel("Tags already in use"), BorderLayout.NORTH);
|
||||||
|
JScrollPane listScroller = new JScrollPane(existingTags);
|
||||||
|
listScroller.setMinimumSize(new Dimension(400, 800));
|
||||||
|
left.add(listScroller, BorderLayout.CENTER);
|
||||||
|
tags.add(left, BorderLayout.WEST);
|
||||||
|
|
||||||
|
FormPanel tagEdit = new FormPanel();
|
||||||
|
tagEdit.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
FormPanel mappedTags = new FormPanel();
|
||||||
|
mappedTags.setLayout(new BorderLayout());
|
||||||
|
mappedTags.add(new JLabel("Tags Mapped to this object"), BorderLayout.NORTH);
|
||||||
|
JScrollPane listScroller2 = new JScrollPane(selectedTags);
|
||||||
|
listScroller2.setMinimumSize(new Dimension(400, 800));
|
||||||
|
mappedTags.add(listScroller2, BorderLayout.CENTER);
|
||||||
|
tagEdit.add(mappedTags,BorderLayout.EAST);
|
||||||
|
|
||||||
|
JPanel controlPanel = new JPanel();
|
||||||
|
|
||||||
|
controlPanel.add(select);
|
||||||
|
controlPanel.add(add);
|
||||||
|
controlPanel.add(manualEntry);
|
||||||
|
|
||||||
|
manualEntry.getInputMap(JList.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
|
||||||
|
KeyStroke.getKeyStroke("ENTER"), "addTyped");
|
||||||
|
manualEntry.getActionMap().put("addTyped", new AbstractAction() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
if (!manualEntry.getText().trim().isEmpty()) {
|
||||||
|
manualAdd(selectedTagModel);
|
||||||
|
manualEntry.grabFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
controlPanel.add(remove);
|
||||||
|
tagEdit.add(controlPanel, BorderLayout.CENTER);
|
||||||
|
tags.add(tagEdit,BorderLayout.CENTER);
|
||||||
|
|
||||||
|
JTextArea right1 = new JTextArea("This is really just to pad some space\n" +
|
||||||
|
"but also to explain the use of tags.\n" +
|
||||||
|
"Rather than adding 100's of object names\n" +
|
||||||
|
"to every quest definition, instead we will\n"+
|
||||||
|
"categorize enemies and points of interest with\n"+
|
||||||
|
"tags and reference those categories in quests");
|
||||||
|
right1.setEnabled(false);
|
||||||
|
tags.add(right1, BorderLayout.EAST);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
name.getDocument().addDocumentListener(new DocumentChangeListener(QuestEdit.this::updateQuest));
|
name.getDocument().addDocumentListener(new DocumentChangeListener(QuestEdit.this::updateQuest));
|
||||||
description.getDocument().addDocumentListener(new DocumentChangeListener(QuestEdit.this::updateQuest));
|
description.getDocument().addDocumentListener(new DocumentChangeListener(QuestEdit.this::updateQuest));
|
||||||
@@ -59,10 +191,60 @@ public class QuestEdit extends FormPanel {
|
|||||||
failureEditor.addChangeListener(e -> QuestEdit.this.updateQuest());
|
failureEditor.addChangeListener(e -> QuestEdit.this.updateQuest());
|
||||||
declineEditor.addChangeListener(e -> QuestEdit.this.updateQuest());
|
declineEditor.addChangeListener(e -> QuestEdit.this.updateQuest());
|
||||||
stages.addChangeListener(e -> QuestEdit.this.updateQuest());
|
stages.addChangeListener(e -> QuestEdit.this.updateQuest());
|
||||||
|
selectedTagModel.addListDataListener(new ListDataListener() {
|
||||||
|
@Override
|
||||||
|
public void intervalAdded(ListDataEvent e) {
|
||||||
|
QuestEdit.this.updateQuest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void intervalRemoved(ListDataEvent e) {
|
||||||
|
QuestEdit.this.updateQuest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void contentsChanged(ListDataEvent e) {
|
||||||
|
QuestEdit.this.updateQuest();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void doUpdate(){
|
||||||
|
QuestEdit.this.updateQuest();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addSelected(){
|
||||||
|
if (existingTags.getSelectedIndex()>-1)
|
||||||
|
selectedTagModel.addElement(existingTags.getModel().getElementAt(existingTags.getSelectedIndex()));
|
||||||
|
doUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeSelected(){
|
||||||
|
if (selectedTags.getSelectedIndex()>-1)
|
||||||
|
selectedTagModel.remove(selectedTags.getSelectedIndex());
|
||||||
|
doUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void filterExisting(DefaultListModel<String> filter){
|
||||||
|
DefaultListModel<String> toReturn = new DefaultListModel<>();
|
||||||
|
for (Enumeration<String> e = QuestController.getInstance().getSourceTags().elements(); e.hasMoreElements();){
|
||||||
|
String toTest = e.nextElement();
|
||||||
|
if (toTest != null & !filter.contains(toTest)){
|
||||||
|
toReturn.addElement(toTest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
existingTags.setModel(toReturn);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void manualAdd(DefaultListModel<String> model){
|
||||||
|
if (!manualEntry.getText().trim().isEmpty())
|
||||||
|
model.addElement(manualEntry.getText().trim());
|
||||||
|
manualEntry.setText("");
|
||||||
|
doUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
protected void updateQuest() {
|
protected void updateQuest() {
|
||||||
if(currentData==null||updating)
|
if(currentData==null||updating)
|
||||||
return;
|
return;
|
||||||
@@ -78,6 +260,15 @@ public class QuestEdit extends FormPanel {
|
|||||||
currentData.epilogue = epilogueEditor.getDialogData();
|
currentData.epilogue = epilogueEditor.getDialogData();
|
||||||
currentData.failureDialog = failureEditor.getDialogData();
|
currentData.failureDialog = failureEditor.getDialogData();
|
||||||
currentData.declinedDialog = declineEditor.getDialogData();
|
currentData.declinedDialog = declineEditor.getDialogData();
|
||||||
|
|
||||||
|
ArrayList<String> tags = new ArrayList<>();
|
||||||
|
for (Enumeration<String> e = selectedTagModel.elements(); e.hasMoreElements();){
|
||||||
|
tags.add(e.nextElement());
|
||||||
|
}
|
||||||
|
|
||||||
|
currentData.questSourceTags = tags.toArray(currentData.questSourceTags);
|
||||||
|
QuestController.getInstance().refresh();
|
||||||
|
filterExisting(selectedTagModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCurrentQuest(AdventureQuestData data)
|
public void setCurrentQuest(AdventureQuestData data)
|
||||||
@@ -108,6 +299,13 @@ public class QuestEdit extends FormPanel {
|
|||||||
failureEditor.loadData(currentData.failureDialog);
|
failureEditor.loadData(currentData.failureDialog);
|
||||||
declineEditor.loadData(currentData.declinedDialog);
|
declineEditor.loadData(currentData.declinedDialog);
|
||||||
|
|
||||||
|
selectedTagModel.clear();
|
||||||
|
for(String val : currentData.questSourceTags) {
|
||||||
|
if (val != null)
|
||||||
|
selectedTagModel.addElement(val);
|
||||||
|
}
|
||||||
|
filterExisting(selectedTagModel);
|
||||||
|
|
||||||
updating=false;
|
updating=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,4 +362,13 @@ public class QuestEdit extends FormPanel {
|
|||||||
stagesTab.add(center);
|
stagesTab.add(center);
|
||||||
return stagesTab;
|
return stagesTab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JPanel getSourcesTab(){
|
||||||
|
JPanel sourcesTab = new JPanel();
|
||||||
|
sourcesTab.setLayout(new BoxLayout(sourcesTab, BoxLayout.Y_AXIS));
|
||||||
|
FormPanel center = new FormPanel();
|
||||||
|
center.add(tags);
|
||||||
|
sourcesTab.add(center);
|
||||||
|
return sourcesTab;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,10 +77,10 @@ public class QuestTagSelector extends JComponent {
|
|||||||
selectedItems.clear();
|
selectedItems.clear();
|
||||||
|
|
||||||
if (useEnemyTags){
|
if (useEnemyTags){
|
||||||
allItems = QuestController.getInstance().getEnemyTags(true);
|
allItems = QuestController.getInstance().getEnemyTags();
|
||||||
}
|
}
|
||||||
else if (usePOITags) {
|
else if (usePOITags) {
|
||||||
allItems = QuestController.getInstance().getPOITags(true);
|
allItems = QuestController.getInstance().getPOITags();
|
||||||
}
|
}
|
||||||
unselectedList.setModel(allItems);
|
unselectedList.setModel(allItems);
|
||||||
for (int i=0;i<allItems.size();i++){
|
for (int i=0;i<allItems.size();i++){
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class AdventureQuestData implements Serializable {
|
|||||||
public String rewardDescription = "";
|
public String rewardDescription = "";
|
||||||
|
|
||||||
public AdventureQuestStage[] stages = new AdventureQuestStage[0];
|
public AdventureQuestStage[] stages = new AdventureQuestStage[0];
|
||||||
public String[] questTags = new String[0];
|
public String[] questSourceTags = new String[0];
|
||||||
public String[] questEnemyTags = new String[0];
|
public String[] questEnemyTags = new String[0];
|
||||||
public String[] questPOITags = new String[0];
|
public String[] questPOITags = new String[0];
|
||||||
private transient EnemySprite targetEnemySprite = null;
|
private transient EnemySprite targetEnemySprite = null;
|
||||||
@@ -83,7 +83,7 @@ public class AdventureQuestData implements Serializable {
|
|||||||
for (int i = 0; i < stages.length; i++){
|
for (int i = 0; i < stages.length; i++){
|
||||||
stages[i] = new AdventureQuestStage(data.stages[i]);
|
stages[i] = new AdventureQuestStage(data.stages[i]);
|
||||||
}
|
}
|
||||||
questTags = data.questTags.clone();
|
questSourceTags = data.questSourceTags.clone();
|
||||||
questPOITags = data.questPOITags.clone();
|
questPOITags = data.questPOITags.clone();
|
||||||
questEnemyTags = data.questEnemyTags.clone();
|
questEnemyTags = data.questEnemyTags.clone();
|
||||||
targetPoI = data.targetPoI;
|
targetPoI = data.targetPoI;
|
||||||
|
|||||||
@@ -164,7 +164,8 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
|||||||
Array<ArenaRecord> winners = new Array<>();
|
Array<ArenaRecord> winners = new Array<>();
|
||||||
Array<EnemySprite> winnersEnemies = new Array<>();
|
Array<EnemySprite> winnersEnemies = new Array<>();
|
||||||
for (int i = 0; i < fighters.size - 2; i += 2) {
|
for (int i = 0; i < fighters.size - 2; i += 2) {
|
||||||
boolean leftWon = rand.nextBoolean();
|
int matchHP = enemies.get(i).getData().life + enemies.get(i+1).getData().life;
|
||||||
|
boolean leftWon = rand.nextInt(matchHP) < enemies.get(i).getData().life;
|
||||||
if (leftWon) {
|
if (leftWon) {
|
||||||
winners.add(fighters.get(i));
|
winners.add(fighters.get(i));
|
||||||
winnersEnemies.add(enemies.get(i));
|
winnersEnemies.add(enemies.get(i));
|
||||||
|
|||||||
@@ -241,6 +241,7 @@ public class SaveLoadScene extends UIScene {
|
|||||||
Current.player().updateDifficulty(Config.instance().getConfigData().difficulties[difficulty.getSelectedIndex()]);
|
Current.player().updateDifficulty(Config.instance().getConfigData().difficulties[difficulty.getSelectedIndex()]);
|
||||||
Current.player().setWorldPosY((int) (WorldSave.getCurrentSave().getWorld().getData().playerStartPosY * WorldSave.getCurrentSave().getWorld().getData().height * WorldSave.getCurrentSave().getWorld().getTileSize()));
|
Current.player().setWorldPosY((int) (WorldSave.getCurrentSave().getWorld().getData().playerStartPosY * WorldSave.getCurrentSave().getWorld().getData().height * WorldSave.getCurrentSave().getWorld().getTileSize()));
|
||||||
Current.player().setWorldPosX((int) (WorldSave.getCurrentSave().getWorld().getData().playerStartPosX * WorldSave.getCurrentSave().getWorld().getData().width * WorldSave.getCurrentSave().getWorld().getTileSize()));
|
Current.player().setWorldPosX((int) (WorldSave.getCurrentSave().getWorld().getData().playerStartPosX * WorldSave.getCurrentSave().getWorld().getData().width * WorldSave.getCurrentSave().getWorld().getTileSize()));
|
||||||
|
Current.player().getQuests().clear();
|
||||||
SoundSystem.instance.changeBackgroundTrack();
|
SoundSystem.instance.changeBackgroundTrack();
|
||||||
Forge.switchScene(GameScene.instance());
|
Forge.switchScene(GameScene.instance());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -351,8 +351,23 @@ public class AdventureQuestController implements Serializable {
|
|||||||
ret.offerDialog = response;
|
ret.offerDialog = response;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
//todo - Make use of questOrigin in selecting appropriate quests
|
//todo - Should quest availability be weighted instead of uniform?
|
||||||
nextQuestDate.put(pointID, LocalDate.now().toEpochDay());
|
nextQuestDate.put(pointID, LocalDate.now().toEpochDay());
|
||||||
|
|
||||||
|
Array<AdventureQuestData> validSideQuests = new Array<>();
|
||||||
|
for (AdventureQuestData option : allSideQuests){
|
||||||
|
if (option.questSourceTags.length == 0)
|
||||||
|
validSideQuests.add(option);
|
||||||
|
for (int i = 0; i < option.questSourceTags.length; i++){
|
||||||
|
if (option.questSourceTags[i] != null && option.questSourceTags[i].equals(questOrigin)){
|
||||||
|
validSideQuests.add(option);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (validSideQuests.size > 0)
|
||||||
|
ret = new AdventureQuestData(Aggregates.random(validSideQuests));
|
||||||
|
else
|
||||||
ret = new AdventureQuestData(Aggregates.random(allSideQuests));
|
ret = new AdventureQuestData(Aggregates.random(allSideQuests));
|
||||||
ret.sourceID = pointID;
|
ret.sourceID = pointID;
|
||||||
ret.initialize();
|
ret.initialize();
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="2" name="Ground" width="30" height="17">
|
<layer id="2" name="Ground" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/Y0ow+jvCEiaPTlAJYmF4gEKfoNKX2Z0PjLAcpHs9jiV90GhbX1AS0TrfIoIQXQdPTXmQwai9xAADlPiO/
|
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/IaQZmhz6O8NRnx05TCmBheoFAnKLTlNoPMycHKR7PY4lfdBoW1+SCbCz6aZ1ukUEJL4Kmp73IYNRe4gAA1fMlZw==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="3" name="Foreground" width="30" height="17">
|
<layer id="3" name="Foreground" width="30" height="17">
|
||||||
@@ -21,12 +21,12 @@
|
|||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQWdWgwMXVoQtrEOA4OJDu3s2qjOwLBJHcJeCrRzGRDrDZLwQvY7NcMhl4s8uZEI9I3I02cNTEc2BNIwTBydphUgFLfLuBkYDMn0L0z/YAUmUH8ZUOC/4QiusDMwXGWnv70DUR+CAABO1BOr
|
eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQWdWgwMXVoQtrEOA4OJDu3s2qjOwLBJHcJeCrRzGRDrDZLwQvY7NcMhl4s8uaEIrIHxaaNFvn59I8rdgCvuYOLoNK0Aobhdxs3AYEgF/9IbgNxNCJhA/WUwBP1HS3CFnYHhKjv97R2I+hAEAFsEE6s=
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="AboveSprites" width="30" height="17">
|
<layer id="5" name="AboveSprites" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFpABxHQYGCR3amT9VnYFhmjqE3anFwNClRTu7SAXIfqd1OIwC6gJ5YDpSgKYlXHEHE0enR8EoGAXDCwAAl/AHJQ==
|
eJxjYBgFpABxHQYGCR3amT9VnYFhmjqE3anFwNClRTu7SAXIfqd1OAxXIA+MT4UBjlNccQcTR6dHwSgYBcMLAADc2Acl
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
@@ -80,13 +80,13 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
|
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
|
||||||
<object id="48" template="../obj/shop.tx" x="176" y="192">
|
<object id="48" template="../obj/shop.tx" x="173.75" y="209.75" width="20.75" height="18.75">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="commonShopList" value="Island"/>
|
<property name="commonShopList" value="Island"/>
|
||||||
<property name="noRestock" type="bool" value="true"/>
|
<property name="noRestock" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="50" template="../obj/quest.tx" x="176" y="162">
|
<object id="50" template="../obj/quest.tx" x="158.5" y="146.25" width="33.75" height="36">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="questtype" value="island_town_generic"/>
|
<property name="questtype" value="island_town_generic"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="2" name="Ground" width="30" height="17">
|
<layer id="2" name="Ground" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/Y0ow+jvCEiaPTlAJYmF4gEKfoNKX2Z0PjLAcpHs9jiV90GhbX1AS0TrfIoIQXQdPTXmQwai9xAADlPiO/
|
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/IaQZmhz6O8NRnx05TCmBheoFAnKLTlNoPMycHKR7PY4lfdBoW1+SCbCz6aZ1ukUEJL4Kmp73IYNRe4gAA1fMlZw==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="3" name="Foreground" width="30" height="17">
|
<layer id="3" name="Foreground" width="30" height="17">
|
||||||
@@ -20,12 +20,12 @@
|
|||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQWdWgwMXVoQtrEOA4OJDu3s2qjOwLBJHcJeCrRzGRDrDZLwQvY7NcMhl4s8uZEInmiQp88amI5s0NLwWTSzYOLoNLXBS6i9hOJ2GTdl9lCqfxTQH1xhZ2C4yk5/eweiPgQBAMi+FTE=
|
eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQWdWgwMXVoQtrEOA4OJDu3s2qjOwLBJHcJeCrRzGRDrDZLwQvY7NcMhl4s8uaEIrIHxaaNFvv4nGpS7ARZ3ZzWwi6PT1AYvofYSittl3NS3mx5gqLp7MIAr7AwMV9npb+9A1IcgAADU7hUx
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="AboveSprites" width="30" height="17">
|
<layer id="5" name="AboveSprites" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFpABxHQYGCR3amT9VnYFhmjqE3anFwNClRTu7SAXIfqd1OIwC7OCEBnn65IHpSAGalnDFHUwcnR4Fo2AUDC8AAJuECBU=
|
eJxjYBgFpABxHQYGCR3amT9VnYFhmjqE3anFwNClRTu7SAXIfqd1OAxXIA+MTwUK4vSEBuVuwBV3MHF0ehSMglEwvAAA4GwIFQ==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
@@ -79,13 +79,13 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
|
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
|
||||||
<object id="48" template="../obj/shop.tx" x="176" y="192">
|
<object id="48" template="../obj/shop.tx" x="173.75" y="209.75" width="20.75" height="18.75">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="commonShopList" value="Island"/>
|
<property name="commonShopList" value="Island"/>
|
||||||
<property name="noRestock" type="bool" value="true"/>
|
<property name="noRestock" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="52" template="../obj/quest.tx" x="176" y="162">
|
<object id="52" template="../obj/quest.tx" x="158.5" y="146.25" width="33.75" height="36">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="questtype" value="island_town_identity"/>
|
<property name="questtype" value="island_town_identity"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="2" name="Ground" width="30" height="17">
|
<layer id="2" name="Ground" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/Y0ow+jvCEiaPTlAJYmF4gEKfoNKX2Z0PjLAcpHs9jiV90GhbX1AS0TrfIoIQXQdPTXmQwai9xAADlPiO/
|
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/IaQZmhz6O8NRnx05TCmBheoFAnKLTlNoPMycHKR7PY4lfdBoW1+SCbCz6aZ1ukUEJL4Kmp73IYNRe4gAA1fMlZw==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="3" name="Foreground" width="30" height="17">
|
<layer id="3" name="Foreground" width="30" height="17">
|
||||||
@@ -21,12 +21,12 @@
|
|||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYKAfKORgYCgC4mIO+tn5n4mBgZ+TgUEAiAU56WcvzG5SwVR1BoZp6hB2pxYDQ5cWhG2sw8BgokM9t6GDjUA7N0HtXQq0cxkQ69E5vHABZL9TMxxyuciTG0og3Qi3XAoeOWoBa2A6ssGRhmH2w8TRaVoBQnG7jJsy8ynVPwroD66wMzBcBWIGZvraS+/6EAYAMd8XYg==
|
eJxjYKAfKORgYCgC4mIO+tn5n4mBgZ+TgUEAiAU56WcvzG5SwVR1BoZp6hB2pxYDQ5cWhG2sw8BgokM9t6GDjUA7N0HtXQq0cxkQ69E5vHABZL9TMxxyuciTG0og3QhCWwPj00YLVS7FiL5uQY87mP0wcXSaVoBQ3C7jpp3dtARD1d2DAVxhZ2C4CsQMzPS1l971IQwAAD4PF2I=
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="AboveSprites" width="30" height="17">
|
<layer id="5" name="AboveSprites" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFpABxHQYGCR362NWpxcDQpUUfu4gByH6nZziMAsqBPDAdKUDTEq64g4mj06NgFIyC4QUAK4MFrA==
|
eJxjYBgFpABxHQYGCR362NWpxcDQpUUfu4gByH6nZzgMJyAPjE+FAY5TXHEHE0enR8EoGAXDCwAAcGsFrA==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
@@ -80,13 +80,13 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
|
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
|
||||||
<object id="48" template="../obj/shop.tx" x="176" y="192">
|
<object id="48" template="../obj/shop.tx" x="173.75" y="209.75" width="20.75" height="18.75">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="commonShopList" value="Island"/>
|
<property name="commonShopList" value="Island"/>
|
||||||
<property name="noRestock" type="bool" value="true"/>
|
<property name="noRestock" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="52" template="../obj/quest.tx" x="176" y="162">
|
<object id="52" template="../obj/quest.tx" x="158.5" y="146.25" width="33.75" height="36">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="questtype" value="island_town_tribal"/>
|
<property name="questtype" value="island_town_tribal"/>
|
||||||
</properties>
|
</properties>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="6" name="Ground2" width="40" height="40">
|
<layer id="6" name="Ground2" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzNmEtOwzAQhr0CpBa14nWBQiiEFbCDi7CnUPa8LgCFFeIAcAZAXADaAqLiFJyANxsQExGr02HGjp209JdGysNxvow944mDvFIhWAA2DdYPmop5wthKYA2wZp/w1YFjMmaM2O7BNgtKbfWJbRfajHpMR4pKjfaJjRXbfmwSvgmw83+yccKHNcLcmxbmRy2n1AGyw1zn/f0c/5xNHAN3z9Z/PY6nhhBXveDT76jMm/ssMTxHcH4cX1sjzy/MKbU413mt7MinmHeaRL+nBf588MhVLnzRGGLGatg+5nxAvwczY82iY+1b3c6FLwthvskE7bvBx/mS4+NE57YL31r4t42POMY7oW0vxvcEgvG0bG/XDb4rv9caheeHD1/Vkv+yVBr/1YS1LK1w/k7Dp2vGqN55g9h5t8TPF8zBb8d56MJXIe+vZ1TDmnJ72vioGWqWJyh2nqWCJ6F8+HCu0j6M6tqrfPZz0ZWPy617+d+5GHbhfyrN+OL5WBd8uASL/3JcAHxA+08hhtaF61muH5gRz8dwMNnzWDpmfPmmLIx4rKtDUJ8O/NrGkBunC59Ul7zA2LwKY01jW6oDpL7TjC+t07FwXEtxk2TtTsp3Y+lHYpXiRusWHa/MmBmaCdgrpP6mYl7hnHvWhfVXrwUmPk62/zm6DnLtV4U+MIP+zqR8pWGZKTAjW7kkvoDh2/Xcz4mUdo9pp2DnS7Ofk9UeEze+Z0W3vZxLdHxR/NvHpWN/56Q/6j9fPZbN577i+GjO+U9l5T8X6fIVr3sNpl2U+649+ZLkkpZ7tx21uWYLe+w/uq95wDBR66V0zuA4AuQzfP4DEgnvlw==
|
eJzNmEtO40AQhnsFSAlKxOsCARMwK2AHF2FPIOxnBi4AgRXiAHAGQFwAkgAi4hScgNcMmxlNWbiVSlHVLzshv1SSH+325+qu6nJHRaVisAhsHmwYNJfyxKlVwFpg7SHhawLHbMqYsD2A/Sgp9XNI7Fepy6jHdKKs1OSQ2FS568c24ZsBu/gmmyZ8WBPMvXlhfjQKSh0iOyr03j8o8M/ZxDFw92z9N9N4aglxNQg+/Y7asrnPCsNzDOcn6bUt8vzKklKrS73Xqp58inmnSfR7OuDPx4Bc5cOXjCFmrMfdY84H9HswM9YiOta+1e18+PIQ5pt1aN8PPs6XHB8nOrd9+Lbir21CxDHeC20HMb6nEIxnVXu7fvBdh73WKDw/QvjqlvyXp7L4ryGsZVmF83cWPl0zJvXOO8TOb4f4+Qvz8J/HXPThq5H3N3OqYU25PWt8NAw1yzMUOy9SweOoED6cq7QPk7r2upj/XPTl43LrfvFzLsZ9+J/KMr54PjYFH67B4r+eFgB/oP2HEEPbwvU81w/MiOdjPOr2PJaOmVC+OQsjHuv6GNSnI5+2M+bH6cMn1SWvMDZvwljT2JbqAKnvLONL63QsHNdS3Lis3a58t5Z+JFYpbrTu0PHGgpmh7cBeI/U3FfMK79yzLay/ei0w8XGy/c/RdZBrvyn0gRn0d7ryVcZlpsiMbOWS+CKGby9wPydR1j2m3ZKdL8t+Tl57TNz4npf99nKu0PFl+WsfV579XZD+qP9C9VQ1n4eK46M55zuVl/98pMtXvO61mHZJ7rsJ5HPJJR3/bntqc80WD9h/dF/zkGGiNkjpnMFxRMhn+Pw/CN3vlw==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="3" name="Walls" width="40" height="40">
|
<layer id="3" name="Walls" width="40" height="40">
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="Overlay" width="40" height="40">
|
<layer id="5" name="Overlay" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzt1EsKgCAUBdC7g4Y1q1lirrHf5lpB/xaT0DCKIOuF3QOCjny+jwAR0TWhASIjHYUs5sAd5tKtSgG1ko7CHfbH94wZMGXSUTxDqt/aFOjS9++l98QaSPS2n+38LJ7MkI9/9NGbeluz4WbdfMwXEf1THgCFXWUgHcleo87PRPRfKyQjEbs=
|
eJzt1DkOgzAQBdB/A0rShQ7L0HE/tobcg9yFE5CE5TBYookUSBBBDMt/kiVbLjyeGRsgIprG9oGLLx2FLOZgOczlshIFpEo6it9yU/P7hLqzP7an8oDak45iviwAbsHwnlS/lS7wcNc/l9Zz1YCj+3lj3k+74zf07oh/9NidnqZmrz/rdsR8EdE5hRYQmRFb0pF8KtT3NRGdVwdj7hTP
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
|
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="71" template="../../obj/arena.tx" x="359" y="290">
|
<object id="71" template="../../obj/arena.tx" x="375" y="290">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="arena">{
|
<property name="arena">{
|
||||||
|
|
||||||
|
|||||||
@@ -5,14 +5,15 @@
|
|||||||
</editorsettings>
|
</editorsettings>
|
||||||
<tileset firstgid="1" source="../../tileset/main.tsx"/>
|
<tileset firstgid="1" source="../../tileset/main.tsx"/>
|
||||||
<tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
|
<tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
|
||||||
|
<tileset firstgid="11905" source="../../tileset/buildings-nocollide.tsx"/>
|
||||||
<layer id="1" name="Background" width="40" height="40">
|
<layer id="1" name="Background" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzNmEtOwzAQhrPIoxdhyUMFjsMJYAE36BGgbdpTcRmgtGwqMkp+MRnG9jhxCpVGVVPF/vzPwx5viix7z7PspuzbR/NsU/wP2zZ2l/et/gMOrhPX57/wcY7a8TyGD+t9U+JjSJy4+F4a++qe7xs7NLYM6E92W/5el7Trsr8GHy9xHBzzg92lG7FZeKy8sfkH9qVgwjhP1Xg2yTk2l9bN96po13tRtvyfiRmHaKn5kjhpHC2XUnBaGX1xVjty/VSMoRw4Vq1NwWdhDGkzNR/iaEz9IL6zBHXGZ7LGWdl2eVt/qBalzGNtjtD+q713zupBakbfvmXh47mbutbsHFwxviWmddHnjdGQGJ67PQo5Rt+Hzi/cn8RE+/UYDa7KuNiAPo9Vn49+0zrx/7z80WFovaX5Hqow307EFM4/nA9nGxlrWNMQvprNt/a8X7MzxmvDMZu54wH7PMaL8Y/Ug7QLsfGYJc77qn3POp/MQZo7FOs181GITc4F/11G1HbScOuJRfrgPIs4GppPqyLeX5xJqxf0OVb9c32Mbq64tdYkMPEc4z0AzgNjmDQ+i4b73F2zkZupzyqIX8t6fX3QWD9qhnpmHVfjs65tiMWcHV2+nersHsPni7sp+eAv5J4rh333FvweIbVh/4JRvyoZQzk7NaPUifvLwnZKRtITGlpqnezjUaen5MT+MDf2ldp9w1Racs34+VTTS+at7JNTatn1QQvf/R36Dd9+qOU5cXY9xILMwou+DL2HL84kR+3Qx5pLId/H5KTk097V7gBjxrT4wDpWqvvvlHza/e435SQojA==
|
eJzNmF1OwzAMx/vQj12ERz40xnE4ATzADXYE2JbtVFwGKBsvE7FaC9c4idMmY5OsaZ2a/GL77zjZVkXxURbFoh7ap322rc7Ddtbuy6GZf+CgfqL+ORc+ymEcz2P4cL3vQn6MyRMX36u17/753trB2irgf7C7+u+6uN3WwzX4eIHj4Jgf2V1+AzYNj5Y3Vn/IvmJMOM5zM52Nc07V0sZ+r6tuvVd1x/+VmHGML6VYAieMI2kpBaeW0ZdnxqH1UzGGNHBsOsvBp2EM+SY3H+bRlPoBfBcJ6ozPeI3TsrVlV3+gFqXUsTRHaP+V3rsk9SA1o2/f0vBR7aauNa2DKya2wLSphrwxPgSGl36PQo3B96GPC40nMMF+PcUHN3VcbqB/npohH/yGdeL/8/rXD2PrLcz32IT5WpZT2P9QPuxteK7hmsbwGTLfxvO+IT3Gm+WYzdz5gPs8jhcTH+4P8F2IjeYscD403Xva+bgGYe5QrhsSoxAbnwvjdx1R28GHO08uwgf7WcyjsXpaV/HxokxSvYDPsRn29TF+c+WttiYhE9UYPQNgPzCFSfIj9Lohxn3prtmozVy9iiZPfOegqXGUDLW/6PURGl/i09SMsRbTO7pim6t3j+Hz5V1OPowXas+lD9+9Bb1HSG24f6FJGg5pNjcj9xONl4btlIy0DmpqHT/HY53OyYn7w1x5rpTuG3L5kvqM9qeSv7hu+Tk5pS/7c9DSd3+H5w1TyXz0P56X/RliCabhxXMZnj18ecY5jMM/Wi2FYh+jSc4nvSvdAcaMqYmBdqxU998p+aT73R87migp
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="2" name="Ground" width="40" height="40">
|
<layer id="2" name="Ground" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzVWEtOwzAQ9SI1iAr1cwMQC1ilnIJLIMS+IEBC3If+1KogroDYp1yCg2CLDJ1OZmwnTlN40ogm2Jnn+ctK/S8c95Q66e2ahYyrvlLX/d3pPxJs89wsDRF7uyawZXydbj5rbc6si+vSRKnzxL23CWSGw2cS/r5plOHXJF3wK/CYqU2fNmk/To3V3zb8DvTP30Ei/x4wsVgnaKynuf6FkZuWX+aIK5dLZcDlGPWVfV6V8N+Q4cnZs0x+a+QbayvMBfTdtvi9M/J8ecbzjLEl2Ah8GMKFq3mub8fkT5Zzk3hJezidUyPLmviNBF1jI5OK/Ch88RECly46S6RJsaZQP0dQKSBlcsIF8BeW2No89+jjYm/EL/fyG8dR/QXMXmV700Sv6wbk+9RROyAepFx32a4Kv5B9I7IuJgagt8IZQ8to6Lkov9C6CRii3umrAdLM4tJp48HGgo0Brf25SPuelAccwNZ41grRmaEzLXKuuBfFzNrYNmCLNuKEdWqhHmb5OWBdnaBxBhxXwkzIcchIjcVnDq1HUAfo3Ib5vaB3uP7h2ZBySxneVWoGtQuet/B8BPGGuWHfDpBe2M99s0q9mWh5Jl4lm/pAsG+BL8A1Z8fMCxzvuS72NSq+Ga2u3ocBdQD3NY6Xr8/Vgf2ANdSWUs2AVzDvN4khmg/qjKMY2Hl6ip7/yp2GBBe/x0P/fleowr3gRcf9jTvz/3tGHjprfq41oXhizmO5SfeXgGXX9Awib0Zeu2t+y/wdXWfX+FD2frlMfcL+rVpW3g23jy3df9eRH9u6/4YeHHtvQfENf1fcDQ==
|
eJzVWEtOwzAQNVJqEBX0cwMQC1ilnIJLIMS+IEBC3If+1KogroDYt9yAFVdgjy06dDqZsZ04TeFJI5pgZ57nLyv1v3DYUuqotWkWMi7aSl22N6f/QLDNY7U0RGxvmsCa8Xm8+qy1ObPOrksTpU4T994qMDMc3pPw91UjD78q6YJfgcdIrfq0Svtxaqz+uuG3q3/+dhL5d4eJxTJBYz1d6J8Yuar5ZYy4crmUB1yOUV/Z53kO/3UZnpw98+S3Rr6xtsJcQN91jd87Is/nJzzPGFuCjcCHIVy4muf6dkz+zBbcJF7SHk7n0Mi0JH49QVffyKAgPwpffITApYvOEmmSrSnUzxFUMkiZnHAB/IUltjaPPfq42Ovxy738+nFUfwGzV97eNNDLugH5PnTUDogHKdddtivCL2Rfj6yLiQHorXDG0DIaei7KL7RuArqod/pqgDSzuHTaeLCxYGNAa38u0r4n5QEHsDWetUJ0ztCZJguuuBfFzNrYNmCLOuKEdWqhHgJgXZmgcQYc58JMiDl8EZ5cPITWI6gDdG7D/J7QO1z/8GyI7fOxpdT+jv/MIaB2wfMWno8g3jA37NsO0gv7uW8WqTcDLc/E82RVHwj2LfAFuObsmHmB4z3W2b5GxTejldX7MKAO4L7G8fL1uTLAhHIG1JZSzYBXMO9XiS6aD8qMoxjYeXqInv/KnYYEF7/7Pf9+V6jCveBZw/2NG/P/W0buGkt+rjWheGDOY7lJ95eAadP0DCIvRp6bS37TxTu6zq7xIe/9cp76hP1btKy8Gm5va7r/LiM/1nX/DT049t6C4hvBmdqg
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="8" name="Bridges" width="40" height="40">
|
<layer id="8" name="Bridges" width="40" height="40">
|
||||||
@@ -22,7 +23,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="6" name="Ground2" width="40" height="40">
|
<layer id="6" name="Ground2" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJztlU0OQDAUhN9xcAXuhHPgFH5K2Pk5kYN4i25EF0SbtsyXvIUumjHTdogAAKZoI6Iuur8O/ECVX8zfCbI2zh/8/OI/riHRFtpW4Re+9EcaEGVy8sC2misFayrlVIb0vclEsKZezuCgf8AeJu96zfs2ir0Fr/UOvS8uMbIv0wNvZu68xfPee3MGXesq8G129OcJ+GEfnRkgTwD0cABSpCk/
|
eJztlT0SQDAUhF/jLrgCd8I5UDmC/6HzcyIH8Yo0hoIhkrDfzCukiLUrWSIAgCxKl6hyz68DMzjKz+NnH1lL5w9+fvEbJ4dodlSrMAtT+iOwiUIxka1azZ6YNSViUkn67mRSs6ZGTKuhf0AdMs96zvsWB3vXvNZodL+cIbPeeU/HvvQXvBm480bDe+/OP6hbV4Fvs6A/N8AP9TyZAfIE4BlWYdkp1w==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="3" name="Walls" width="40" height="40">
|
<layer id="3" name="Walls" width="40" height="40">
|
||||||
@@ -35,7 +36,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="Overlay" width="40" height="40">
|
<layer id="5" name="Overlay" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFo2DogBMaqPxOLQaGLi1MddjE0fWOgsELsMWfPJCvQGRcjwLyASXhOZB5jBS7h2OamanJwDBLc6BdMbQAKfXHKMAN8oF5rwCKC2lUBlASJ91AN/VAce9oO2AUIAFa5vV2oLkdWMzuBor1UMnOwdiupcRN/cBwmUBC2EwH1nkzhni9R0kaHK2rRgE9wWAsbwYSjIbHwANqxsFofGKCOn4GhnoobuAfaNeMglFAHQAAkqgpdw==
|
eJxjYBgFo2DogBMaqPxOLQaGLi1MddjE0fWOgsELsMWfPJCvQGRcjwLyASXhOZB5jBS7h2OamanJwDBLc6BdMbQAKfXHKMAN8oF5rwCKC2lUBlASJ91AN/VAce9oO2AUIAFa5vV2oLkdWMzuBor1UMnOwdiupcRN/cBwmUBC2EwH1nkz6FDvtRsD49KYfP2LgXqX4NBPSRocratGAT3BYCxvBhKMhsfAA2rGwWh8YoI6fgaGeihu4B9o14yCUUAdAADsPiyZ
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="2" name="Ground" width="40" height="40">
|
<layer id="2" name="Ground" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzVmUtv00AQx7exVETU+NLYNyCc8iDiFQoHuCD4BIUz9DvAqSCRlguPEohoC4grfIIWDnyLgsIZKjgRmgRQzuywu/J4vbteO25qRhqts7se//wfP9aTqkvI41LU16gLW/EIue+xdlXye9SP+8HcGo3XcEnEFguEPHEIGdF2zH2P+lMn8AEaE/5QwfagFD7GMZ8xQFuh3uZcFT/MZrKhgumZE50zQg7zq26Yq645f2yg4xHK9b1sxwbW4fr8KkTHutIcwQatTjPZ1tG20NGk3ZkZNaOsmTyv44RzbquZrT23nKfilw2uWbgPNqhv5sxflJiWwNei2p3LmS/wfEJe88wH9r/xXaD+ccp+PgEfHpuWmRgOms89kY6vN0+I72Xrn+ejfJeL6fg8L3utREz3bKCdiW/9gPgw46T69Wo0LzW2/aNJSL8ZPe472vce9f+s07VKne9D2349HPPNYUIOcd+dkG8WxTL5W4s5Wx5rrxaZfuI9PI3rD/IUZyImngucafhulZPdm9sWc26XAz64N0wM/bl4bbPWT9iXYpBznX7wrbA3t798gypdt1eD3zMNQgqN6Dwdg2p9lbV+cr9qXlK+U/QcT/Pz/E2fDX/480HXL457kY5d4uNb9Hmz3WT9d1us72aL/b7Dfy+1zHyq9R+M2T5TsF8pqvu/Sv27CfSLG0tiIm8fZsP9y1wjodmypB1om5TPJqe4H/MluY9NDKaxSfIr8ol1XJK0uyFpOs38prH94sNrRPz+UK3zsuJ7leA7Fd6n4nsV9NuQ+m39ZcmeL41DPNU6bpJ4eefTrQ/ywveI1yB33PTfrT3efuJ8O1J/Wod4sH75Vg7qeKqaEtSQritqdiqTny+qfV/bhfpnkN/VmFrjUFNTtOGDfdccQq4VmGPWk5r6WhdtQ37bnppxkceEmrHuGDZ8Y1SvFXFs8wH5XeG15LbEiOvFA3QMk5YqPlwPHyNOzNglURPXhqglH/XDOg5RLFF3j9NAxzeSOE3nKecNuEQtvoLqyqpaNa6/y3VkFV/H8N+BrKFgw1qA/wXqmqpm
|
eJzVmUtv00AQx7exVETU+NI4NyCc8qDiFQoHuCD4BIUz9DvAqSCRlguPEohoC4grfIIWDnyLgsIZKjgRmgRQuDJT78rj9Xq9fjQ1I4023p2Of/5P7KynNZuxx6Wgr4ILW3YYu++444rk98CPV7zYOuRr2ixgCwXGnliMjWAcc98Ff2p5PiBrwh8q2B6U/Oc4VnEZcKyCtzlXteJn09lQwfTMCsaMiGN8zfZzNUKunxrqeAS4vpfN2NA6XJ9fheBaV4oRbDiGaSbbGvksdNRpd2ZKzShrJsd1LH/NTTUzteeGcSp+2fA7i/fBOvhGzvxFydUS+Vqg3bmc+TyvJ9Y1z3xo/xvfBfCPE/bzMfjo2qRMx3DQfPaJZHy9WcYqTrb+eTbId7mYjM+BfH/nstUKc+5pdtbTTse3FsGXtdGcgjGNfsJ6dahN3f38AzTtS7q+g+P3ZO5nA/YqDR4PY7/hz/nmMGOHuO+k5JsmuXT+1iBm03HHq0VXP/E7nFY/E8M6RZnISWORMwnfrXK8e3PLIOZ22ePDe0PH0J+J1jZr/YR9KXo1D9MP3xV2Z/aXb1CDfXvNO55qMlZoBuPCGFT7q6z1k+dVcXH5TsE1nubX+RueDX/48yFsXpz3Iqxd4uub8LzZmnPn77bcuZst9/gOP15s6flU+z9cM32mUL9SVM9/leZ3YugXtRbHRN0+TPvnl7hGQrMlSTvUNi6fSU3pPOWLcx/rGHRraeor6kl1XJS0uyFpOsn6JrH94qN7RPr7odrnZcX3KsZ7Kv6eivdV1G9dmjf1lyVzviSO+VT7uDT58s4Xtj/IC98j3oPctpO/t/b4+InzbUvzSR3z4f7lW9nr46l6SthDuq7o2alMfr6o/va1Wao9w/quRPQahyE9RRM+/NtVi7FrBdcp68mQ/lqXfMb6th014wLPiT3jsHOY8I1Jv1bkMa0H1neZ95LbEiPtFw/IOXRaqvhoP3xMOCljlwVNfDdEL/loxa/jkOQSffcoDcL4RhKn7jrluiGX6MVXSV9Z1aum/Xe5j6zi62j+dyBrKNioFuj/AOUjq4k=
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="6" name="Ground2" width="40" height="40">
|
<layer id="6" name="Ground2" width="40" height="40">
|
||||||
@@ -26,12 +26,12 @@
|
|||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJztwQENAAAAwqD3T20PBxQAAAAAAMCXARkAAAE=
|
eJztzgENADAIA7B5QuSRjQxO0ipoAgDAL14lXdsLAAAAuG8Ag6wBdg==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="Overlay" width="40" height="40">
|
<layer id="5" name="Overlay" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzt1O8JgzAQh+HfBo5gv2nEGatb+GeTdolaLdQFdA4PbLFgP0hBRPs+EHI5ErgQchIAAMDxXELpGo7xLZaqeL6nsFz5kb87qXavMzZXbv06gb1pAukRTOvO/kn/B3/laXds3fL4zY+kUzTGmfWb/EsvwvZ+fV8Ac2dPSmyk3taVYA28L4C9GQDl9SK0
|
eJzt1EsKwjAUheGzgy7BztoUZ92fugsfU91E3YT1AboB3UKnXqiitJMqXGrx/yDkJoRwQkgkAACAz1TjvhN0U6TSNq3rnWUuG7mXNl69ze2DdAiP9daXwSfXOpc2uc/egLdjIp2S1/hq7+Tm9FZ+ydnOeAnd66dRJsVZXc/tv1kM5P/8N9/eL4C2SSRNrc2ivpPAA/cLYGju2YIlhA==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
|
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="53" template="../../obj/spellsmith.tx" x="152" y="258"/>
|
<object id="53" template="../../obj/spellsmith.tx" x="168" y="258"/>
|
||||||
<object id="55" template="../../obj/shop.tx" x="366" y="433">
|
<object id="55" template="../../obj/shop.tx" x="366" y="433">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="commonShopList" value="Mountain"/>
|
<property name="commonShopList" value="Mountain"/>
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object id="59" template="../../obj/entry_left.tx" x="337" y="627" width="16" height="89.9726" rotation="0"/>
|
<object id="59" template="../../obj/entry_left.tx" x="337" y="627" width="16" height="89.9726" rotation="0"/>
|
||||||
<object id="60" template="../../obj/entry_right.tx" x="266" y="623" width="16" height="88"/>
|
<object id="60" template="../../obj/entry_right.tx" x="266" y="623" width="16" height="88"/>
|
||||||
<object id="61" template="../../obj/arena.tx" x="200" y="258">
|
<object id="61" template="../../obj/arena.tx" x="216" y="258">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="arena">{
|
<property name="arena">{
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="Overlay" width="40" height="40">
|
<layer id="5" name="Overlay" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFo2AUUALMNRgYLIDYUmOgXTIKsIHr2gwMN7QH2hWooENzoF0wCmgBBLUYGIS0BtoVIxsYAvOWEY78JQ+MGwWk+JEGsmVwxJe4DgODhA5+Nja1hIAvnrxvDXSLDZp7LEbT04gEtEp/17Sxs3GJYVMzCkbBSAF1/AwM9UDcwD/QLsEEi5jx84caKDDAzx8swHKQtt+HSviNglEwUGAwl+ejYBSMAvoBAFbjF4A=
|
eJzt1kEKwjAQBdAPHqDoRkFBl7XJQu3CFr2Cd/EE6s6eQz2TehxnqbaNiKST4n8QSEIWn0ymFCCiXyxjIJORx9pJ/DumQJFqp/jOzQB3o53iVTHVTkA+dBOgl2inKDtb4GK1UzRjLr21qOmvsdRm8lSfocxHNfXqy30NrHtedfaTjaP3V5Jl/ZYnC/A9kX++3t/VVM/r9qrOEP2LXQTsZRwi7SRlp4573TbbmXsdijzQ//e23B+RlpC/50TUnAdcVxqU
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
</editorsettings>
|
</editorsettings>
|
||||||
<tileset firstgid="1" source="../../tileset/main.tsx"/>
|
<tileset firstgid="1" source="../../tileset/main.tsx"/>
|
||||||
<tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
|
<tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
|
||||||
|
<tileset firstgid="11905" source="../../tileset/buildings-nocollide.tsx"/>
|
||||||
<layer id="1" name="Background" width="40" height="40">
|
<layer id="1" name="Background" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJztw7ENAAAMAiB3l/5/rX80kNBLqqqqqqqq+ugA4iKowQ==
|
eJztw7ENAAAMAiB3l/5/rX80kNBLqqqqqqqq+ugA4iKowQ==
|
||||||
@@ -17,7 +18,7 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="6" name="Ground2" width="40" height="40">
|
<layer id="6" name="Ground2" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJztV0tOwzAQHQk2iZtcoWFJrgArRIPoniPAPShXgZYeClRacw88aqwMlv9x06rKk0ZxHNvzMs/jD8CIESPOBe8FwMeRbFm4+d2VAI2wn4FtJuy+9OPn0y41fP2m4LfLAX7zsD5D8ntlAG8srE9ffiExofy+aoDvOszvi6W9iR/6XGXmfpQ/tp2JcuNp2K9v/NaZXTP6Hfll4j132ILtn1eT/vxc8aP8XP8isSBtVL8mjWk71Iy39pB3mnHl2SjfsWz7Fxe/eW3mSNtNRdyriVkf+o1le02xjiWInwmx6wtqKmMm84PGlyuGdcjPlB9zD31duBFj3NYdJ1d+0HhXRJsU+aEDzRnKzzc/YvzKdhciLpdtbExllZ9NX1VnWo5Z/3bKmDofppyleSXzRqerfI/Rl/pQc1j6qBQeOk19tT50/ur2NJ77r4WHmH8Ua6KjGm/U7+k6LT+6d5jmH63DOIXmbCy/z6Kbf7o1S1fP2vU59v6yKvz4bQLvDVzYtuz2j01bF3MH2QbO+8f6/9MG25lZHcdnvFBuz44xXeevlNxiEHPnGBIxe+6QcOl7bNDz3yni1OfftD2HjBhxTvgDGpfgIw==
|
eJztV0tOwzAQHQk2iZtcoWFJrgArRIPoniPAPShXgZYeClRacw88aqwMlv9x06rKk0ZxHNvzMs/jD8CIESPOBe8FwMeRbFm4+d2VAI2wn4FtJuy+9OPn0y41fP2m4LfLAX7zsD5D8ntlAG8srE9ffiExkfy+aoDvOpzfi6WPiR/6XGXmfpQ/tp2JcuNp2K9v/NaZXTP6Hfll4j132ILtn1eT/vxc8aP8XP8isSBtVL8mjWk71Iy39pB3mnHl2SjfsWz7Fxe/eW3mSNtNRdyriVkf+o1le02xjiWInwmx6wtqKmMm84PGlyuGdcjPlB9zD31duBFj3NYdJ1d+0HhXRJsU+aEDzRnKzzc/YvzKdhciLpdtbExllZ9NX1VnWo5Z/3bKmDofppyleSXzRqerfI/Rl/pQc1j6qBQeOk19tT50/ur2NJ77r4WHmH8Ua6KjGm/U7+k6LT+6d5jmH63DOIXmbCy/z6Kbf7o1S1fP2vU59v6yKvz4bQLvDVzYtuz2j01bF3MH2QbO+8f6/9MG25lZHcdnvFBuz44xXeevlNxiEHPnGBIxe+6QcOl7bNDz3yni1OfftD2HjBhxTvgDItPgIw==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="3" name="Walls" width="40" height="40">
|
<layer id="3" name="Walls" width="40" height="40">
|
||||||
@@ -30,12 +31,12 @@
|
|||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="Overlay" width="40" height="40">
|
<layer id="5" name="Overlay" width="40" height="40">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJzt0sEJg0AQheHXgSWYm6ztRGOqibZmLqYHc0kuWkbmEGHBJeTgsiT+HwizD4SBeRIAAOkcS6kq13lv2dXLB5tv3nt00t3F3w9rtd3hFLhZY9k5kGNbfve/mfcmtw4efriHMe872T+z+zwjnkchPYvUW6RD/7C4ZFL7/ros9TYAAODfvQDOSyqr
|
eJzt0s0JwkAQhuGvg5Sgt7BLbinF32rUm/ahjehFe9CLXkwZzkEhGhGFLIP6PrAw88HCwIwEAEB681JalM28F6V+vM/W1m8esq31u1q2D9IhtD/nJ5aFtCp8Z/AwsD0MYzMfWTZ+kqNd9dt/p/43HbvB7hffYcr9nu1PFV7XSOeYS6fcewo/3B9uJpk0vb5Z5j0NAAD4dRedmS2/
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
<object id="47" template="../../obj/inn.tx" x="361" y="371"/>
|
<object id="47" template="../../obj/inn.tx" x="361" y="371"/>
|
||||||
<object id="53" template="../../obj/spellsmith.tx" x="392" y="194"/>
|
<object id="53" template="../../obj/spellsmith.tx" x="376" y="194"/>
|
||||||
<object id="55" template="../../obj/shop.tx" x="416" y="402">
|
<object id="55" template="../../obj/shop.tx" x="416" y="402">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="commonShopList" value="Swamp"/>
|
<property name="commonShopList" value="Swamp"/>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="55">
|
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="55">
|
||||||
<editorsettings>
|
<editorsettings>
|
||||||
<export target="wastetown..tmx" format="tmx"/>
|
<export target="wastetown..tmx" format="tmx"/>
|
||||||
</editorsettings>
|
</editorsettings>
|
||||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||||
<layer id="6" name="Collision" width="30" height="17">
|
<layer id="6" name="Collision" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFo2AUjIJRAAN7eAbG3iheys3YC3R7PTfl5pAKooFu3z1A4TYKSAcAGL8Dsg==
|
eJxjYBgFo2AUjIJRMBzAXh4Ghnpu+tsbzcvAsJuH/vaOAvIAAN0IAoM=
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="1" name="Background" width="30" height="17">
|
<layer id="1" name="Background" width="30" height="17">
|
||||||
@@ -41,9 +41,10 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="51" template="../obj/treasure.tx" x="384.492" y="232.777"/>
|
<object id="51" template="../obj/treasure.tx" x="384.492" y="232.777"/>
|
||||||
<object id="53" template="../obj/enemy.tx" x="382.233" y="183.963">
|
<object id="53" template="../obj/enemy.tx" x="386.233" y="183.963">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Minotaur"/>
|
<property name="enemy" value="Minotaur"/>
|
||||||
|
<property name="threatRange" type="int" value="20"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="54" template="../obj/gold.tx" x="170" y="78.6667"/>
|
<object id="54" template="../obj/gold.tx" x="170" y="78.6667"/>
|
||||||
|
|||||||
@@ -21,12 +21,12 @@
|
|||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFQwXsYGFgkMaDd7FQph8X/saKas4uNgYGeS0GBgUtCD+UFdMuZIAsr2uEaRYMZGoyMGQB8Xp1BoYN6hAxPaB6Yx0GBhMgPsvOwGANtNOGBHthekEAmQ0DepwMDK1AO9uAWJ8d1X05HAwMk4HuO88OofM4iLcXZBYMILORwVl2VBqu3gi7ODH2wtwMwhdw2HsOzT+43EWsvV9YUdMgsn7kMMcljhy/yHxC9qK78SyOMMclro8W/jA+qfYih3kuEhuWbtDFYWwYTWy6QgbIYY5eBoD8Q0peR8/f5ABY+JPiB2qAUXvJAwAGckIl
|
eJxjYBgFQwXsYGFgkMaDd7FQph8X/saKas4uNgYGeS0GBgUtCD+UFdMuZIAsr2uEaRYMZGoyMGQB8Xp1BoYN6hAxYx0GBhMdCPssOwODNdBOGyDWMyLOXmT9yGwY0ONkYGgF2tkGxPrsqO7L4WBgmAx033l2CJ3HQbx/QWbBADIbGZxlR6Xh6o2wixNjL8zNIHwBh73n0PyDy13E2vuFFTUNIutHjz9s4jA2TB7GJ2QvuhvP4ghzXOL6aOEP45NqL3KY5yKxYekGXRzGhtHEpitkgBzm6GUAyD+k5HX0/E0OgIU/KX6gBhi1lzwAAABuQiU=
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="AboveSprites" width="30" height="17">
|
<layer id="5" name="AboveSprites" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFowA7mKzOwDBFHcEX12FgkNAhzyxkvZSYMwrIA7jCHF+8jMbTKBgFwxMAAMK5BSc=
|
eJxjYBgFowA7mKzOwDBFHcIW12FgkNAh3yxk/ZSaNQpIB7jCHF+8jMbTKBgFwxMAAMTVBSc=
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
|
|||||||
@@ -20,12 +20,12 @@
|
|||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFQwXsYGFgkMaDd7FQph8X/saKas4uNlR+KJo8OsAnj2xWpiYDQxYQr1dnYNigjhA31mFgMAHis+wMDNZaDAw2WsTbC9OLbA4y0ONkYGgF2tkGxPrsqHI5HAwMk4HuO88OofM4iLcX2Sx0c2HgLDsqjUse2VxC9sLcDMIXcJh7Ds0/lNr7hRU1DSLrRw5zkPgrDUxx5PhF5hOyF92NZ3GEOS5xfbTwh/FJtRc5zHOR2LB0gy4OY8NoYtMVMkAOc/QyAOQfUvI6ev4mB8DCnxQ/UAOM2kseAAD38kEl
|
eJxjYBgFQwXsYGFgkMaDd7FQph8X/saKas4uNlR+KJo8OsAnj2xWpiYDQxYQr1dnYNigDhEz1mFgMNGBsM+yMzBYazEw2GgRby+yfmQ2DOhxMjC0Au1sA2J9dlS5HA4GhslA951nh9B5HMTbi2wWurkwcJYdlcYlj2wuIXthbgbhCzjMPYfmH0rt/cKKmgaR9aPH3ysNTHEYG6YPxidkL7obz+IIc1zi+mjhD+OTai9ymOcisWHpBl0cxobRxKYrZIAc5uhlAMg/pOR19PxNDoCFPyl+oAYYtZc8AAD67kEl
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="AboveSprites" width="30" height="17">
|
<layer id="5" name="AboveSprites" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFowA7mKzOwDBFHcEX12FgkNCBsOW1GBgUtIg3C1kvMnsU0Aegh/k5DUxxdDWj8TQKRsHwBADmvgaw
|
eJxjYBgFowA7mKzOwDBFHcIW12FgkNBByMlrMTAoaBFvFrJ+dLNGAe0Bepif08AUR1czGk+jYBQMTwAA6NoGsA==
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
|
|||||||
@@ -21,12 +21,12 @@
|
|||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
</properties>
|
</properties>
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJy9VF0OwUAQ/qhazuAAUhFNyhvXcASE4BY8eXMQHsUdisOIR2zTTMyOLG3Yfsl0Zna68+3M/gDF4V52m7/kpbrsmeObQH+8t9+d4uGg1kMFaHyQY+W3+Ta5+WaeY9X0hyIu8SnOc031Ps207JrAXssoAsZaum2gpyVWQL8FDFrZeWluAm4TOnVgpTnXQZp/Er1i8xqw1es7q1Qva9l5Q/Xyuc0RK1Pb4jzvN15acyIXS96TqOdX3qtvnkE+n/fcNs73l/vfeOUaY0vPbeOh6D/5eXl5zxfMpnMjx8kmnfVccfCeyzcgqSfPXZf3Ow/oTaf+Uw3yDXYFzlsUp+QtEv/ifQLOoEZF
|
eJy9VF0OwUAQ/qhqncEBpCKa4I1rOAJCcAuevDkIj+IOxWHEI1aaSWeHrTZsv2Q6szPd+XZmf4DicC/bzV9yYl12dP8mUB/n7XereFio9VAB6ilyrPw23yQ3Fxh3kjzHqp536KbzpsV5rqnap5mSXQPYKxkpzm4L6LXieOQB/SYwaGbn5fO5TWjXgJXiXAdx/gmrc+4DW7W+sxfrpZ+dN/SSMbc5Ik/XpjjP+42X1vySiyHvSdTzK+/V1c8gny/375OfbIrT+BuvXGNk6LnJH4r+0zgvL+/5gtl0bqSfbNJZzxUH77l8A1715Lnrtxy8EvSmU/+pBvkG2wLnLYpT8haJf/E+ARjrRkU=
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer id="5" name="AboveSprites" width="30" height="17">
|
<layer id="5" name="AboveSprites" width="30" height="17">
|
||||||
<data encoding="base64" compression="zlib">
|
<data encoding="base64" compression="zlib">
|
||||||
eJxjYBgFowA7mKzOwDBFHcEX12FgkNCBsOW1GBgUtIg3C1kvMnsU0AfgCnN88TIaT6NgFAxPAAAOuQW6
|
eJxjYBgFowA7mKzOwDBFHcIW12FgkNBByMlrMTAoaBFvFrJ+dLNGAe0BrjDHFy+j8TQKRsHwBAAQ1QW6
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Objects">
|
<objectgroup id="4" name="Objects">
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 241 KiB |
Binary file not shown.
@@ -215,6 +215,11 @@
|
|||||||
},
|
},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"waste_town_generic",
|
||||||
|
"waste_town_tribal",
|
||||||
|
"waste_town_identity"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -697,6 +702,11 @@
|
|||||||
},
|
},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"waste_town_generic",
|
||||||
|
"waste_town_identity",
|
||||||
|
"waste_town_tribal"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -934,6 +944,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"forest_town_generic",
|
||||||
|
"forest_town_identity",
|
||||||
|
"forest_town_tribal",
|
||||||
|
"forest_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1181,6 +1197,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"swamp_town_generic",
|
||||||
|
"swamp_town_identity",
|
||||||
|
"swamp_town_tribal",
|
||||||
|
"swamp_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1577,6 +1599,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"plains_town_generic",
|
||||||
|
"plains_town_identity",
|
||||||
|
"plains_town_tribal",
|
||||||
|
"plains_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1588,9 +1616,6 @@
|
|||||||
"text": "Stepping out of the cool shade of the local tavern, you find yourself face to face with a Viashino adorned in tribal garb.",
|
"text": "Stepping out of the cool shade of the local tavern, you find yourself face to face with a Viashino adorned in tribal garb.",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"action": [
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"name": "\"...Can I help you?\"",
|
"name": "\"...Can I help you?\"",
|
||||||
"text": "\"Shaman Izka hunts defilers of sacred sands. You will help.\"",
|
"text": "\"Shaman Izka hunts defilers of sacred sands. You will help.\"",
|
||||||
"options": [
|
"options": [
|
||||||
@@ -1788,6 +1813,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"mountain_town_generic",
|
||||||
|
"mountain_town_identity",
|
||||||
|
"mountain_town_tribal",
|
||||||
|
"mountain_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2090,6 +2121,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"island_town_generic",
|
||||||
|
"island_town_identity",
|
||||||
|
"island_town_tribal",
|
||||||
|
"island_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2364,6 +2401,11 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"waste_town_generic",
|
||||||
|
"waste_town_tribal",
|
||||||
|
"waste_town_identity"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2767,6 +2809,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"forest_town_generic",
|
||||||
|
"forest_town_identity",
|
||||||
|
"forest_town_tribal",
|
||||||
|
"forest_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3189,6 +3237,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"plains_town_generic",
|
||||||
|
"plains_town_identity",
|
||||||
|
"plains_town_tribal",
|
||||||
|
"plains_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3620,6 +3674,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"swamp_town_generic",
|
||||||
|
"swamp_town_identity",
|
||||||
|
"swamp_town_tribal",
|
||||||
|
"swamp_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3936,6 +3996,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"mountain_town_generic",
|
||||||
|
"mountain_town_identity",
|
||||||
|
"mountain_town_tribal",
|
||||||
|
"mountain_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4165,6 +4231,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"island_town_generic",
|
||||||
|
"island_town_identity",
|
||||||
|
"island_town_tribal",
|
||||||
|
"island_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4398,6 +4470,11 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"waste_town_generic",
|
||||||
|
"waste_town_identity",
|
||||||
|
"waste_town_tribal"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4662,6 +4739,12 @@
|
|||||||
"epilogue": {},
|
"epilogue": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"swamp_town_generic",
|
||||||
|
"swamp_town_identity",
|
||||||
|
"swamp_town_tribal",
|
||||||
|
"swamp_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4858,6 +4941,12 @@
|
|||||||
"failureDialog": {},
|
"failureDialog": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"island_town_generic",
|
||||||
|
"island_town_identity",
|
||||||
|
"island_town_tribal",
|
||||||
|
"island_capital"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -5112,6 +5201,12 @@
|
|||||||
"failureDialog": {},
|
"failureDialog": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"forest_capital",
|
||||||
|
"forest_town_generic",
|
||||||
|
"forest_town_identity",
|
||||||
|
"forest_town_tribal"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -5369,6 +5464,12 @@
|
|||||||
"failureDialog": {},
|
"failureDialog": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"plains_capital",
|
||||||
|
"plains_town_generic",
|
||||||
|
"plains_town_identity",
|
||||||
|
"plains_town_tribal"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -5509,6 +5610,11 @@
|
|||||||
"failureDialog": {},
|
"failureDialog": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"waste_town_generic",
|
||||||
|
"waste_town_identity",
|
||||||
|
"waste_town_tribal"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -5665,6 +5771,12 @@
|
|||||||
"failureDialog": {},
|
"failureDialog": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"questSourceTags": [
|
||||||
|
"mountain_town_generic",
|
||||||
|
"mountain_town_identity",
|
||||||
|
"mountain_town_tribal",
|
||||||
|
"mountain_capital"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
Reference in New Issue
Block a user