mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
@@ -169,7 +169,6 @@ public class QuestStageEdit extends FormPanel {
|
|||||||
switch(objectiveType.getSelectedItem().toString()){
|
switch(objectiveType.getSelectedItem().toString()){
|
||||||
case "Arena":
|
case "Arena":
|
||||||
arenaLabel.setVisible(true);
|
arenaLabel.setVisible(true);
|
||||||
nyi.setVisible(true);
|
|
||||||
poiPane.setVisible(true);
|
poiPane.setVisible(true);
|
||||||
anyPOI.setVisible(true);
|
anyPOI.setVisible(true);
|
||||||
here.setVisible(true);
|
here.setVisible(true);
|
||||||
|
|||||||
@@ -44,17 +44,29 @@ public class DialogActor extends CharacterSprite {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
dialog.addQuestAcceptedListener(listen);
|
dialog.addQuestAcceptedListener(listen);
|
||||||
|
|
||||||
|
ChangeListener finished = new ChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void changed(ChangeEvent changeEvent, Actor actor) {
|
||||||
|
removeFromMap();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
dialog.addDialogCompleteListener(finished);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void acceptQuest(){
|
public void acceptQuest(){
|
||||||
Current.player().addQuest(questData);
|
Current.player().addQuest(questData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeFromMap() { dialog = null; }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerCollide() {
|
public void onPlayerCollide() {
|
||||||
stage.resetPosition();
|
if (dialog != null) {
|
||||||
stage.showDialog();
|
stage.resetPosition();
|
||||||
dialog.activate();
|
stage.showDialog();
|
||||||
|
dialog.activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import forge.util.MyRandom;
|
|||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,7 +54,7 @@ public class EnemySprite extends CharacterSprite {
|
|||||||
public float threatRange = 0.0f;
|
public float threatRange = 0.0f;
|
||||||
public float fleeRange = 0.0f;
|
public float fleeRange = 0.0f;
|
||||||
public boolean ignoreDungeonEffect = false;
|
public boolean ignoreDungeonEffect = false;
|
||||||
public UUID questStageID;
|
public String questStageID;
|
||||||
|
|
||||||
public EnemySprite(EnemyData enemyData) {
|
public EnemySprite(EnemyData enemyData) {
|
||||||
this(0,enemyData);
|
this(0,enemyData);
|
||||||
|
|||||||
@@ -175,6 +175,8 @@ public class AdventureQuestData implements Serializable {
|
|||||||
public void initializeStage(AdventureQuestStage stage){
|
public void initializeStage(AdventureQuestStage stage){
|
||||||
if (stage == null || stage.objective == null) return;
|
if (stage == null || stage.objective == null) return;
|
||||||
|
|
||||||
|
stage.initialize();
|
||||||
|
|
||||||
switch (stage.objective){
|
switch (stage.objective){
|
||||||
case Clear:
|
case Clear:
|
||||||
stage.setTargetPOI(poiTokens);
|
stage.setTargetPOI(poiTokens);
|
||||||
@@ -311,7 +313,7 @@ public class AdventureQuestData implements Serializable {
|
|||||||
EnemyData toUse = generateTargetEnemyData(stage);
|
EnemyData toUse = generateTargetEnemyData(stage);
|
||||||
toUse.lifetime = stage.count1;
|
toUse.lifetime = stage.count1;
|
||||||
EnemySprite toReturn = new EnemySprite(toUse);
|
EnemySprite toReturn = new EnemySprite(toUse);
|
||||||
toReturn.questStageID = stage.questStageID;
|
toReturn.questStageID = stage.stageID;
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -394,6 +396,34 @@ public class AdventureQuestData implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateArenaComplete(boolean winner){
|
||||||
|
for (AdventureQuestStage stage: stages) {
|
||||||
|
if(failed)
|
||||||
|
break;
|
||||||
|
stage.updateArenaComplete(winner);
|
||||||
|
failed = failed || stage.getStatus() == AdventureQuestController.QuestStatus.Failed;
|
||||||
|
}
|
||||||
|
if (!failed)
|
||||||
|
updateStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateStatus(){
|
||||||
|
for (AdventureQuestStage stage: stages) {
|
||||||
|
switch (stage.getStatus()) {
|
||||||
|
case Complete:
|
||||||
|
continue;
|
||||||
|
case Failed:
|
||||||
|
failed = true;
|
||||||
|
break;
|
||||||
|
case None:
|
||||||
|
case Inactive:
|
||||||
|
case Active:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
completed = true;
|
||||||
|
}
|
||||||
|
|
||||||
public DialogData getPrologue() {
|
public DialogData getPrologue() {
|
||||||
if (!prologueDisplayed) {
|
if (!prologueDisplayed) {
|
||||||
prologueDisplayed = true;
|
prologueDisplayed = true;
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class AdventureQuestStage implements Serializable {
|
public class AdventureQuestStage implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 12042023L;
|
||||||
|
|
||||||
public int id;
|
public int id;
|
||||||
private AdventureQuestController.QuestStatus status = AdventureQuestController.QuestStatus.Inactive;
|
private AdventureQuestController.QuestStatus status = AdventureQuestController.QuestStatus.Inactive;
|
||||||
public String name = "";
|
public String name = "";
|
||||||
@@ -45,7 +48,13 @@ public class AdventureQuestStage implements Serializable {
|
|||||||
public String POIToken; //If defined, ignore tags input and use the target POI from a different stage's objective instead.
|
public String POIToken; //If defined, ignore tags input and use the target POI from a different stage's objective instead.
|
||||||
private transient boolean inTargetLocation = false;
|
private transient boolean inTargetLocation = false;
|
||||||
|
|
||||||
public UUID questStageID = UUID.randomUUID();
|
public String stageID;
|
||||||
|
|
||||||
|
public void initialize(){
|
||||||
|
if (stageID == null || stageID.isEmpty()){
|
||||||
|
stageID = UUID.randomUUID().toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void checkPrerequisites() {
|
public void checkPrerequisites() {
|
||||||
//Todo - implement
|
//Todo - implement
|
||||||
@@ -287,7 +296,20 @@ public class AdventureQuestStage implements Serializable {
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AdventureQuestStage(){}
|
public void updateArenaComplete(boolean winner){
|
||||||
|
if (this.objective == AdventureQuestController.ObjectiveTypes.Arena)
|
||||||
|
{
|
||||||
|
if (inTargetLocation){
|
||||||
|
if (winner){
|
||||||
|
status = AdventureQuestController.QuestStatus.Complete;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public AdventureQuestStage(){
|
||||||
|
|
||||||
|
}
|
||||||
public AdventureQuestStage(AdventureQuestStage other){
|
public AdventureQuestStage(AdventureQuestStage other){
|
||||||
this.status = other.status;
|
this.status = other.status;
|
||||||
this.prologueDisplayed = other.prologueDisplayed;
|
this.prologueDisplayed = other.prologueDisplayed;
|
||||||
@@ -320,6 +342,7 @@ public class AdventureQuestStage implements Serializable {
|
|||||||
this.POITags = other.POITags;
|
this.POITags = other.POITags;
|
||||||
this.targetEnemyData = other.targetEnemyData;
|
this.targetEnemyData = other.targetEnemyData;
|
||||||
this.deliveryItem = other.deliveryItem;
|
this.deliveryItem = other.deliveryItem;
|
||||||
this.questStageID = other.questStageID;
|
// if (this.stageID == null)
|
||||||
|
// this.stageID = other.stageID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import forge.adventure.data.EnemyData;
|
|||||||
import forge.adventure.data.WorldData;
|
import forge.adventure.data.WorldData;
|
||||||
import forge.adventure.stage.GameHUD;
|
import forge.adventure.stage.GameHUD;
|
||||||
import forge.adventure.stage.IAfterMatch;
|
import forge.adventure.stage.IAfterMatch;
|
||||||
|
import forge.adventure.stage.MapStage;
|
||||||
import forge.adventure.stage.WorldStage;
|
import forge.adventure.stage.WorldStage;
|
||||||
import forge.adventure.util.*;
|
import forge.adventure.util.*;
|
||||||
import forge.gui.FThreads;
|
import forge.gui.FThreads;
|
||||||
@@ -116,6 +117,8 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
|||||||
doneButton.layout();
|
doneButton.layout();
|
||||||
startButton.setDisabled(true);
|
startButton.setDisabled(true);
|
||||||
arenaStarted = false;
|
arenaStarted = false;
|
||||||
|
AdventureQuestController.instance().updateArenaComplete(false);
|
||||||
|
AdventureQuestController.instance().showQuestDialogs(MapStage.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startDialog() {
|
private void startDialog() {
|
||||||
@@ -193,6 +196,8 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
|||||||
startButton.setDisabled(true);
|
startButton.setDisabled(true);
|
||||||
doneButton.setText("[%80]" + Forge.getLocalizer().getMessage("lblDone"));
|
doneButton.setText("[%80]" + Forge.getLocalizer().getMessage("lblDone"));
|
||||||
doneButton.layout();
|
doneButton.layout();
|
||||||
|
AdventureQuestController.instance().updateArenaComplete(true);
|
||||||
|
AdventureQuestController.instance().showQuestDialogs(MapStage.getInstance());
|
||||||
}
|
}
|
||||||
if (!Forge.isLandscapeMode())
|
if (!Forge.isLandscapeMode())
|
||||||
drawArena();//update
|
drawArena();//update
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
|||||||
List<String> names = (List<String>) data.readObject("names");
|
List<String> names = (List<String>) data.readObject("names");
|
||||||
List<Float> x = (List<Float>) data.readObject("x");
|
List<Float> x = (List<Float>) data.readObject("x");
|
||||||
List<Float> y = (List<Float>) data.readObject("y");
|
List<Float> y = (List<Float>) data.readObject("y");
|
||||||
List<UUID> questStageIDs = (List<UUID>) data.readObject("questStageIDs");
|
List<String> questStageIDs = (List<String>) data.readObject("questStageIDs");
|
||||||
for (int i = 0; i < timeouts.size(); i++) {
|
for (int i = 0; i < timeouts.size(); i++) {
|
||||||
EnemySprite sprite = new EnemySprite(WorldData.getEnemy(names.get(i)));
|
EnemySprite sprite = new EnemySprite(WorldData.getEnemy(names.get(i)));
|
||||||
sprite.setX(x.get(i));
|
sprite.setX(x.get(i));
|
||||||
@@ -393,7 +393,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
|||||||
List<String> names = new ArrayList<>();
|
List<String> names = new ArrayList<>();
|
||||||
List<Float> x = new ArrayList<>();
|
List<Float> x = new ArrayList<>();
|
||||||
List<Float> y = new ArrayList<>();
|
List<Float> y = new ArrayList<>();
|
||||||
List<UUID> questStageIDs = new ArrayList<>();
|
List<String> questStageIDs = new ArrayList<>();
|
||||||
for (Pair<Float, EnemySprite> enemy : enemies) {
|
for (Pair<Float, EnemySprite> enemy : enemies) {
|
||||||
timeouts.add(enemy.getKey());
|
timeouts.add(enemy.getKey());
|
||||||
names.add(enemy.getValue().getData().name);
|
names.add(enemy.getValue().getData().name);
|
||||||
|
|||||||
@@ -84,9 +84,9 @@ public class AdventureQuestController implements Serializable {
|
|||||||
questStage.epilogueDisplayed = true;
|
questStage.epilogueDisplayed = true;
|
||||||
dialogQueue.add(questStage.epilogue);
|
dialogQueue.add(questStage.epilogue);
|
||||||
}
|
}
|
||||||
// if (questStage.getStatus() != QuestStatus.Complete){
|
if (questStage.getStatus() != QuestStatus.Complete){
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quest.failed){
|
if (quest.failed){
|
||||||
@@ -263,6 +263,12 @@ public class AdventureQuestController implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateArenaComplete(boolean winner){
|
||||||
|
for(AdventureQuestData currentQuest: Current.player().getQuests()) {
|
||||||
|
currentQuest.updateArenaComplete(winner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public AdventureQuestData generateQuest(int id){
|
public AdventureQuestData generateQuest(int id){
|
||||||
AdventureQuestData generated = null;
|
AdventureQuestData generated = null;
|
||||||
for (AdventureQuestData template: allQuests) {
|
for (AdventureQuestData template: allQuests) {
|
||||||
@@ -287,7 +293,7 @@ public class AdventureQuestController implements Serializable {
|
|||||||
public void rematchQuestSprite(EnemySprite sprite){
|
public void rematchQuestSprite(EnemySprite sprite){
|
||||||
for (AdventureQuestData q : Current.player().getQuests()){
|
for (AdventureQuestData q : Current.player().getQuests()){
|
||||||
for (AdventureQuestStage s : q.stages){
|
for (AdventureQuestStage s : q.stages){
|
||||||
if (sprite.questStageID != null && sprite.questStageID.equals(s.questStageID)){
|
if (sprite.questStageID != null && sprite.questStageID.equals(s.stageID)){
|
||||||
s.setTargetSprite(sprite);
|
s.setTargetSprite(sprite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,16 +178,6 @@
|
|||||||
"rounds":3,
|
"rounds":3,
|
||||||
"entryFee":100,
|
"entryFee":100,
|
||||||
"rewards": [[
|
"rewards": [[
|
||||||
{
|
|
||||||
"type": "card",
|
|
||||||
"probability": 1,
|
|
||||||
"count":2,
|
|
||||||
"rarity": [
|
|
||||||
"Mythic Rare"
|
|
||||||
],
|
|
||||||
"colors": ["green"]
|
|
||||||
}
|
|
||||||
],[
|
|
||||||
{
|
{
|
||||||
"type": "gold",
|
"type": "gold",
|
||||||
"probability": 1,
|
"probability": 1,
|
||||||
@@ -199,6 +189,16 @@
|
|||||||
"count": 1,
|
"count": 1,
|
||||||
"itemNames": ["Dungeon Map","Mad Staff","Gold Boots","Disrupting Scepter"]
|
"itemNames": ["Dungeon Map","Mad Staff","Gold Boots","Disrupting Scepter"]
|
||||||
}
|
}
|
||||||
|
],[
|
||||||
|
{
|
||||||
|
"type": "card",
|
||||||
|
"probability": 1,
|
||||||
|
"count":2,
|
||||||
|
"rarity": [
|
||||||
|
"Rare","Mythic Rare"
|
||||||
|
],
|
||||||
|
"colors": ["green"]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}</property>
|
}</property>
|
||||||
|
|||||||
@@ -154,16 +154,6 @@
|
|||||||
"rounds":3,
|
"rounds":3,
|
||||||
"entryFee":100,
|
"entryFee":100,
|
||||||
"rewards": [[
|
"rewards": [[
|
||||||
{
|
|
||||||
"type": "card",
|
|
||||||
"probability": 1,
|
|
||||||
"count":2,
|
|
||||||
"rarity": [
|
|
||||||
"Mythic Rare"
|
|
||||||
],
|
|
||||||
"colors": ["blue"]
|
|
||||||
}
|
|
||||||
],[
|
|
||||||
{
|
{
|
||||||
"type": "gold",
|
"type": "gold",
|
||||||
"probability": 1,
|
"probability": 1,
|
||||||
@@ -175,6 +165,16 @@
|
|||||||
"count": 1,
|
"count": 1,
|
||||||
"itemNames": ["Mithril Armor","Mithril Shield","Mithril Boots","Dagger"]
|
"itemNames": ["Mithril Armor","Mithril Shield","Mithril Boots","Dagger"]
|
||||||
}
|
}
|
||||||
|
],[
|
||||||
|
{
|
||||||
|
"type": "card",
|
||||||
|
"probability": 1,
|
||||||
|
"count":2,
|
||||||
|
"rarity": [
|
||||||
|
"Rare","Mythic Rare"
|
||||||
|
],
|
||||||
|
"colors": ["blue"]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}</property>
|
}</property>
|
||||||
|
|||||||
@@ -160,16 +160,6 @@
|
|||||||
"rounds":3,
|
"rounds":3,
|
||||||
"entryFee":100,
|
"entryFee":100,
|
||||||
"rewards": [[
|
"rewards": [[
|
||||||
{
|
|
||||||
"type": "card",
|
|
||||||
"probability": 1,
|
|
||||||
"count":2,
|
|
||||||
"rarity": [
|
|
||||||
"Mythic Rare"
|
|
||||||
],
|
|
||||||
"colors": ["red"]
|
|
||||||
}
|
|
||||||
],[
|
|
||||||
{
|
{
|
||||||
"type": "gold",
|
"type": "gold",
|
||||||
"probability": 1,
|
"probability": 1,
|
||||||
@@ -181,6 +171,16 @@
|
|||||||
"count": 1,
|
"count": 1,
|
||||||
"itemNames": ["Aladdin's Ring","Axt","Ring of Immortals","Jandor's Ring"]
|
"itemNames": ["Aladdin's Ring","Axt","Ring of Immortals","Jandor's Ring"]
|
||||||
}
|
}
|
||||||
|
],[
|
||||||
|
{
|
||||||
|
"type": "card",
|
||||||
|
"probability": 1,
|
||||||
|
"count":2,
|
||||||
|
"rarity": [
|
||||||
|
"Rare","Mythic Rare"
|
||||||
|
],
|
||||||
|
"colors": ["red"]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}</property>
|
}</property>
|
||||||
|
|||||||
@@ -153,16 +153,6 @@
|
|||||||
"rounds":3,
|
"rounds":3,
|
||||||
"entryFee":100,
|
"entryFee":100,
|
||||||
"rewards": [[
|
"rewards": [[
|
||||||
{
|
|
||||||
"type": "card",
|
|
||||||
"probability": 1,
|
|
||||||
"count":2,
|
|
||||||
"rarity": [
|
|
||||||
"Mythic Rare"
|
|
||||||
],
|
|
||||||
"colors": ["white"]
|
|
||||||
}
|
|
||||||
],[
|
|
||||||
{
|
{
|
||||||
"type": "gold",
|
"type": "gold",
|
||||||
"probability": 1,
|
"probability": 1,
|
||||||
@@ -175,6 +165,17 @@
|
|||||||
"count": 1,
|
"count": 1,
|
||||||
"itemNames": ["Gold Armor","Gold Shield","Gold Boots","Bronze Sword"]
|
"itemNames": ["Gold Armor","Gold Shield","Gold Boots","Bronze Sword"]
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "card",
|
||||||
|
"probability": 1,
|
||||||
|
"count":2,
|
||||||
|
"rarity": [
|
||||||
|
"Rare","Mythic Rare"
|
||||||
|
],
|
||||||
|
"colors": ["white"]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}</property>
|
}</property>
|
||||||
|
|||||||
@@ -82,16 +82,6 @@
|
|||||||
"rounds":3,
|
"rounds":3,
|
||||||
"entryFee":100,
|
"entryFee":100,
|
||||||
"rewards": [[
|
"rewards": [[
|
||||||
{
|
|
||||||
"type": "card",
|
|
||||||
"probability": 1,
|
|
||||||
"count":2,
|
|
||||||
"rarity": [
|
|
||||||
"Mythic Rare"
|
|
||||||
],
|
|
||||||
"colors": ["black"]
|
|
||||||
}
|
|
||||||
],[
|
|
||||||
{
|
{
|
||||||
"type": "gold",
|
"type": "gold",
|
||||||
"probability": 1,
|
"probability": 1,
|
||||||
@@ -103,6 +93,17 @@
|
|||||||
"count": 1,
|
"count": 1,
|
||||||
"itemNames": ["Death Ring","Dark Armor","Dark Shield","Dark Boots"]
|
"itemNames": ["Death Ring","Dark Armor","Dark Shield","Dark Boots"]
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "card",
|
||||||
|
"probability": 1,
|
||||||
|
"count":2,
|
||||||
|
"rarity": [
|
||||||
|
"Rare","Mythic Rare"
|
||||||
|
],
|
||||||
|
"colors": ["black"]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}</property>
|
}</property>
|
||||||
|
|||||||
@@ -261,9 +261,7 @@
|
|||||||
"radiusFactor": 0.8,
|
"radiusFactor": 0.8,
|
||||||
"questTags": [
|
"questTags": [
|
||||||
"Cave",
|
"Cave",
|
||||||
"Hostile",
|
"BiomeBlack"
|
||||||
"BiomeBlack",
|
|
||||||
"Sidequest"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -395,10 +393,8 @@
|
|||||||
"map": "maps/map/cave_2.tmx",
|
"map": "maps/map/cave_2.tmx",
|
||||||
"radiusFactor": 0.8,
|
"radiusFactor": 0.8,
|
||||||
"questTags": [
|
"questTags": [
|
||||||
"Hostile",
|
|
||||||
"Cave",
|
"Cave",
|
||||||
"BiomeColorless",
|
"BiomeColorless"
|
||||||
"Sidequest"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -591,9 +587,7 @@
|
|||||||
"radiusFactor": 0.8,
|
"radiusFactor": 0.8,
|
||||||
"questTags": [
|
"questTags": [
|
||||||
"Cave",
|
"Cave",
|
||||||
"Hostile",
|
"BiomeGreen"
|
||||||
"BiomeGreen",
|
|
||||||
"Sidequest"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -710,10 +704,8 @@
|
|||||||
"map": "maps/map/cave_2.tmx",
|
"map": "maps/map/cave_2.tmx",
|
||||||
"radiusFactor": 0.8,
|
"radiusFactor": 0.8,
|
||||||
"questTags": [
|
"questTags": [
|
||||||
"Hostile",
|
|
||||||
"Cave",
|
"Cave",
|
||||||
"BiomeBlue",
|
"BiomeBlue"
|
||||||
"Sidequest"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -800,10 +792,8 @@
|
|||||||
"map": "maps/map/cave_2.tmx",
|
"map": "maps/map/cave_2.tmx",
|
||||||
"radiusFactor": 0.8,
|
"radiusFactor": 0.8,
|
||||||
"questTags": [
|
"questTags": [
|
||||||
"Hostile",
|
|
||||||
"Cave",
|
"Cave",
|
||||||
"BiomeRed",
|
"BiomeRed"
|
||||||
"Sidequest"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1040,10 +1030,8 @@
|
|||||||
"map": "maps/map/cave_2.tmx",
|
"map": "maps/map/cave_2.tmx",
|
||||||
"radiusFactor": 0.8,
|
"radiusFactor": 0.8,
|
||||||
"questTags": [
|
"questTags": [
|
||||||
"Hostile",
|
|
||||||
"Cave",
|
"Cave",
|
||||||
"BiomeWhite",
|
"BiomeWhite"
|
||||||
"Sidequest"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2167,9 +2167,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "You decide that the invasive thoughts, if you can call them that, are unwelcomed, and you take a step back.",
|
"name": "You decide that the invasive thoughts, if you can call them that, are unwelcomed, and you take a step back.",
|
||||||
"text": "The thoughts urgently follow you for a moment. '{COLOR=red}KKKKiiiiill...{ENDCOLOR}' But as you take another step back, the words vanish from your mind."
|
"text": "The thoughts urgently follow you for a moment. '{COLOR=red}KKKKiiiiill...{ENDCOLOR}' But as you take another step back, the words vanish from your mind.",
|
||||||
"options": [
|
"options": [
|
||||||
{"name": "With no delay at all, you walk away. Far away. (Decline Quest)"}
|
{
|
||||||
|
"name": "With no delay at all, you walk away. Far away. (Decline Quest)"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -3690,7 +3692,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "\"A fight with a dragon? No thanks. I'll be leaving now.\" (Decline Quest)",
|
"name": "\"A fight with a dragon? No thanks. I'll be leaving now.\" (Decline Quest)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -4470,9 +4472,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "A short note is written in red ink.",
|
"name": "A short note is written in red ink.",
|
||||||
"text": "\"{COLOR=red}Have fangs, will travel{ENDCOLOR}\"."
|
"text": "\"{COLOR=red}Have fangs, will travel{ENDCOLOR}\".",
|
||||||
"options": [
|
"options": [
|
||||||
{"name": "You suddenly realize that isn't ink, and step away. (Decline Quest)"}
|
{
|
||||||
|
"name": "You suddenly realize that isn't ink, and step away. (Decline Quest)"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -4741,7 +4745,6 @@
|
|||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"action": [
|
"action": [
|
||||||
|
|
||||||
{
|
{
|
||||||
"grantRewards": [
|
"grantRewards": [
|
||||||
{
|
{
|
||||||
@@ -4855,7 +4858,6 @@
|
|||||||
"failureDialog": {},
|
"failureDialog": {},
|
||||||
"POIToken": ""
|
"POIToken": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4969,7 +4971,6 @@
|
|||||||
{
|
{
|
||||||
"name": "You don't especially feel like volunteering to take on a $(enemy_1) today. (Decline Quest)"
|
"name": "You don't especially feel like volunteering to take on a $(enemy_1) today. (Decline Quest)"
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user