mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
Adventure quest fixes
This commit is contained in:
@@ -2,6 +2,8 @@ package forge.adventure.character;
|
|||||||
|
|
||||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||||
import forge.adventure.data.AdventureQuestData;
|
import forge.adventure.data.AdventureQuestData;
|
||||||
import forge.adventure.stage.MapStage;
|
import forge.adventure.stage.MapStage;
|
||||||
import forge.adventure.util.Current;
|
import forge.adventure.util.Current;
|
||||||
@@ -35,7 +37,13 @@ public class DialogActor extends CharacterSprite {
|
|||||||
dialog = new MapDialog(data.offerDialog, stage, id);
|
dialog = new MapDialog(data.offerDialog, stage, id);
|
||||||
this.textureRegion = null;
|
this.textureRegion = null;
|
||||||
this.questData = data;
|
this.questData = data;
|
||||||
dialog.addQuestAcceptedListener(e -> acceptQuest());
|
ChangeListener listen = new ChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void changed(ChangeEvent changeEvent, Actor actor) {
|
||||||
|
acceptQuest();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
dialog.addQuestAcceptedListener(listen);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void acceptQuest(){
|
public void acceptQuest(){
|
||||||
|
|||||||
@@ -14,11 +14,9 @@ import forge.adventure.data.EffectData;
|
|||||||
import forge.adventure.data.EnemyData;
|
import forge.adventure.data.EnemyData;
|
||||||
import forge.adventure.data.RewardData;
|
import forge.adventure.data.RewardData;
|
||||||
import forge.adventure.player.AdventurePlayer;
|
import forge.adventure.player.AdventurePlayer;
|
||||||
import forge.adventure.pointofintrest.PointOfInterestChanges;
|
|
||||||
import forge.adventure.util.Current;
|
import forge.adventure.util.Current;
|
||||||
import forge.adventure.util.MapDialog;
|
import forge.adventure.util.MapDialog;
|
||||||
import forge.adventure.util.Reward;
|
import forge.adventure.util.Reward;
|
||||||
import forge.adventure.world.WorldSave;
|
|
||||||
import forge.card.CardRarity;
|
import forge.card.CardRarity;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.item.PaperCard;
|
import forge.item.PaperCard;
|
||||||
@@ -27,6 +25,7 @@ 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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,8 +55,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;
|
||||||
private PointOfInterestChanges changes;
|
public UUID questStageID;
|
||||||
public float spawnDelay;
|
|
||||||
|
|
||||||
public EnemySprite(EnemyData enemyData) {
|
public EnemySprite(EnemyData enemyData) {
|
||||||
this(0,enemyData);
|
this(0,enemyData);
|
||||||
@@ -68,12 +66,6 @@ public class EnemySprite extends CharacterSprite {
|
|||||||
data = enemyData;
|
data = enemyData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnemySprite(int id, EnemyData enemyData, PointOfInterestChanges changes) {
|
|
||||||
super(id,enemyData.sprite);
|
|
||||||
data = enemyData;
|
|
||||||
this.changes = changes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void parseWaypoints(String waypoints){
|
public void parseWaypoints(String waypoints){
|
||||||
String[] wp = waypoints.replaceAll("\\s", "").split(",");
|
String[] wp = waypoints.replaceAll("\\s", "").split(",");
|
||||||
for (String s : wp) {
|
for (String s : wp) {
|
||||||
@@ -238,10 +230,6 @@ public class EnemySprite extends CharacterSprite {
|
|||||||
Deck enemyDeck = Current.latestDeck();
|
Deck enemyDeck = Current.latestDeck();
|
||||||
/*// By popular demand, remove basic lands from the reward pool.
|
/*// By popular demand, remove basic lands from the reward pool.
|
||||||
CardPool deckNoBasicLands = enemyDeck.getMain().getFilteredPool(Predicates.compose(Predicates.not(CardRulesPredicates.Presets.IS_BASIC_LAND), PaperCard.FN_GET_RULES));*/
|
CardPool deckNoBasicLands = enemyDeck.getMain().getFilteredPool(Predicates.compose(Predicates.not(CardRulesPredicates.Presets.IS_BASIC_LAND), PaperCard.FN_GET_RULES));*/
|
||||||
if (changes!=null){
|
|
||||||
long shopSeed = changes.getShopSeed(objectId);
|
|
||||||
WorldSave.getCurrentSave().getWorld().getRandom().setSeed(shopSeed);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (RewardData rdata : data.rewards) {
|
for (RewardData rdata : data.rewards) {
|
||||||
ret.addAll(rdata.generate(false, enemyDeck == null ? null : enemyDeck.getMain().toFlatList(),true ));
|
ret.addAll(rdata.generate(false, enemyDeck == null ? null : enemyDeck.getMain().toFlatList(),true ));
|
||||||
@@ -250,11 +238,6 @@ public class EnemySprite extends CharacterSprite {
|
|||||||
if(rewards != null) { //Collect additional rewards.
|
if(rewards != null) { //Collect additional rewards.
|
||||||
for(RewardData rdata:rewards) {
|
for(RewardData rdata:rewards) {
|
||||||
//Do not filter in case we want to FORCE basic lands. If it ever becomes a problem just repeat the same as above.
|
//Do not filter in case we want to FORCE basic lands. If it ever becomes a problem just repeat the same as above.
|
||||||
if (changes != null)
|
|
||||||
{
|
|
||||||
long shopSeed = changes.getShopSeed(objectId);
|
|
||||||
WorldSave.getCurrentSave().getWorld().getRandom().setSeed(shopSeed);
|
|
||||||
}
|
|
||||||
|
|
||||||
ret.addAll(rdata.generate(false,(Current.latestDeck() != null ? Current.latestDeck().getMain().toFlatList() : null), true));
|
ret.addAll(rdata.generate(false,(Current.latestDeck() != null ? Current.latestDeck().getMain().toFlatList() : null), true));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -309,7 +309,9 @@ public class AdventureQuestData implements Serializable {
|
|||||||
if (stage.objective == AdventureQuestController.ObjectiveTypes.Hunt){
|
if (stage.objective == AdventureQuestController.ObjectiveTypes.Hunt){
|
||||||
EnemyData toUse = generateTargetEnemyData(stage);
|
EnemyData toUse = generateTargetEnemyData(stage);
|
||||||
toUse.lifetime = stage.count1;
|
toUse.lifetime = stage.count1;
|
||||||
return new EnemySprite(toUse);
|
EnemySprite toReturn = new EnemySprite(toUse);
|
||||||
|
toReturn.questStageID = stage.questStageID;
|
||||||
|
return toReturn;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ 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 void checkPrerequisites() {
|
public void checkPrerequisites() {
|
||||||
//Todo - implement
|
//Todo - implement
|
||||||
}
|
}
|
||||||
@@ -226,7 +228,7 @@ public class AdventureQuestStage implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!targetPOI.equals(entered)){
|
else if (!targetPOI.getPosition().equals(entered.getPosition())){
|
||||||
inTargetLocation = false;
|
inTargetLocation = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -303,5 +305,6 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -291,9 +291,11 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
|
|||||||
if(data.containsKey("quests")){
|
if(data.containsKey("quests")){
|
||||||
quests.clear();
|
quests.clear();
|
||||||
Object[] q = (Object[]) data.readObject("quests");
|
Object[] q = (Object[]) data.readObject("quests");
|
||||||
for (Object itsReallyAQuest: q)
|
if (q != null) {
|
||||||
|
for (Object itsReallyAQuest : q)
|
||||||
quests.add((AdventureQuestData) itsReallyAQuest);
|
quests.add((AdventureQuestData) itsReallyAQuest);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(int i=0;i<NUMBER_OF_DECKS;i++) {
|
for(int i=0;i<NUMBER_OF_DECKS;i++) {
|
||||||
if(!data.containsKey("deck_name_" + i)) {
|
if(!data.containsKey("deck_name_" + i)) {
|
||||||
|
|||||||
@@ -551,7 +551,7 @@ public class MapStage extends GameStage {
|
|||||||
System.err.printf("Enemy \"%s\" not found.", enemy);
|
System.err.printf("Enemy \"%s\" not found.", enemy);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
EnemySprite mob = new EnemySprite(id, EN, changes);
|
EnemySprite mob = new EnemySprite(id, EN);
|
||||||
Object dialogObject = prop.get("dialog"); //Check if the enemy has a dialogue attached to it.
|
Object dialogObject = prop.get("dialog"); //Check if the enemy has a dialogue attached to it.
|
||||||
if (dialogObject != null && !dialogObject.toString().isEmpty()) {
|
if (dialogObject != null && !dialogObject.toString().isEmpty()) {
|
||||||
mob.dialog = new MapDialog(dialogObject.toString(), this, mob.getId());
|
mob.dialog = new MapDialog(dialogObject.toString(), this, mob.getId());
|
||||||
|
|||||||
@@ -11,10 +11,7 @@ import com.badlogic.gdx.utils.viewport.Viewport;
|
|||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.adventure.character.CharacterSprite;
|
import forge.adventure.character.CharacterSprite;
|
||||||
import forge.adventure.character.EnemySprite;
|
import forge.adventure.character.EnemySprite;
|
||||||
import forge.adventure.data.AdventureQuestData;
|
import forge.adventure.data.*;
|
||||||
import forge.adventure.data.BiomeData;
|
|
||||||
import forge.adventure.data.EnemyData;
|
|
||||||
import forge.adventure.data.WorldData;
|
|
||||||
import forge.adventure.scene.DuelScene;
|
import forge.adventure.scene.DuelScene;
|
||||||
import forge.adventure.scene.RewardScene;
|
import forge.adventure.scene.RewardScene;
|
||||||
import forge.adventure.scene.Scene;
|
import forge.adventure.scene.Scene;
|
||||||
@@ -29,10 +26,7 @@ import forge.sound.SoundSystem;
|
|||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -236,10 +230,6 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleMonsterSpawn(float delta) {
|
private void handleMonsterSpawn(float delta) {
|
||||||
for (Actor sprite : foregroundSprites.getChildren()) {
|
|
||||||
if (AdventureQuestController.instance().getQuestSprites().remove(sprite)) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (EnemySprite questSprite : AdventureQuestController.instance().getQuestSprites()) {
|
for (EnemySprite questSprite : AdventureQuestController.instance().getQuestSprites()) {
|
||||||
if (!foregroundSprites.getChildren().contains(questSprite, true)) {
|
if (!foregroundSprites.getChildren().contains(questSprite, true)) {
|
||||||
spawnQuestSprite(questSprite,2.5f);
|
spawnQuestSprite(questSprite,2.5f);
|
||||||
@@ -371,10 +361,14 @@ 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");
|
||||||
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));
|
||||||
sprite.setY(y.get(i));
|
sprite.setY(y.get(i));
|
||||||
|
sprite.questStageID = questStageIDs.get(i);
|
||||||
|
if (sprite.questStageID != null)
|
||||||
|
AdventureQuestController.instance().rematchQuestSprite(sprite);
|
||||||
enemies.add(Pair.of(timeouts.get(i), sprite));
|
enemies.add(Pair.of(timeouts.get(i), sprite));
|
||||||
foregroundSprites.addActor(sprite);
|
foregroundSprites.addActor(sprite);
|
||||||
}
|
}
|
||||||
@@ -399,16 +393,19 @@ 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<>();
|
||||||
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);
|
||||||
x.add(enemy.getValue().getX());
|
x.add(enemy.getValue().getX());
|
||||||
y.add(enemy.getValue().getY());
|
y.add(enemy.getValue().getY());
|
||||||
|
questStageIDs.add(enemy.getValue().questStageID);
|
||||||
}
|
}
|
||||||
data.storeObject("timeouts", timeouts);
|
data.storeObject("timeouts", timeouts);
|
||||||
data.storeObject("names", names);
|
data.storeObject("names", names);
|
||||||
data.storeObject("x", x);
|
data.storeObject("x", x);
|
||||||
data.storeObject("y", y);
|
data.storeObject("y", y);
|
||||||
|
data.storeObject("questStageIDs", questStageIDs);
|
||||||
data.store("globalTimer", globalTimer);
|
data.store("globalTimer", globalTimer);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package forge.adventure.util;
|
|||||||
|
|
||||||
import com.badlogic.gdx.files.FileHandle;
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||||
import com.badlogic.gdx.utils.Array;
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.badlogic.gdx.utils.Json;
|
import com.badlogic.gdx.utils.Json;
|
||||||
import forge.adventure.character.EnemySprite;
|
import forge.adventure.character.EnemySprite;
|
||||||
@@ -134,7 +136,13 @@ public class AdventureQuestController implements Serializable {
|
|||||||
MapDialog dialog = new MapDialog(dialogQueue.remove(), stage, -1);
|
MapDialog dialog = new MapDialog(dialogQueue.remove(), stage, -1);
|
||||||
stage.showDialog();
|
stage.showDialog();
|
||||||
dialog.activate();
|
dialog.activate();
|
||||||
dialog.addDialogCompleteListener(e -> displayNextDialog(stage));
|
ChangeListener listen = new ChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void changed(ChangeEvent changeEvent, Actor actor) {
|
||||||
|
displayNextDialog(stage);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
dialog.addDialogCompleteListener(listen);
|
||||||
|
|
||||||
}
|
}
|
||||||
public static class DistanceSort implements Comparator<PointOfInterest>
|
public static class DistanceSort implements Comparator<PointOfInterest>
|
||||||
@@ -217,6 +225,7 @@ public class AdventureQuestController implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateQuestsWin(EnemySprite defeated, ArrayList<EnemySprite> enemies){
|
public void updateQuestsWin(EnemySprite defeated, ArrayList<EnemySprite> enemies){
|
||||||
|
enemySpriteList.remove(defeated);
|
||||||
boolean allEnemiesCleared = true;
|
boolean allEnemiesCleared = true;
|
||||||
if (enemies != null) {
|
if (enemies != null) {
|
||||||
//battle was won in a dungeon, check for "clear" objectives
|
//battle was won in a dungeon, check for "clear" objectives
|
||||||
@@ -241,12 +250,14 @@ public class AdventureQuestController implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateQuestsLose(EnemySprite defeatedBy){
|
public void updateQuestsLose(EnemySprite defeatedBy){
|
||||||
|
enemySpriteList.remove(defeatedBy);
|
||||||
for(AdventureQuestData currentQuest : Current.player().getQuests()) {
|
for(AdventureQuestData currentQuest : Current.player().getQuests()) {
|
||||||
currentQuest.updateLose(defeatedBy);
|
currentQuest.updateLose(defeatedBy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateDespawn(EnemySprite despawned){
|
public void updateDespawn(EnemySprite despawned){
|
||||||
|
enemySpriteList.remove(despawned);
|
||||||
for(AdventureQuestData currentQuest: Current.player().getQuests()) {
|
for(AdventureQuestData currentQuest: Current.player().getQuests()) {
|
||||||
currentQuest.updateDespawn(despawned);
|
currentQuest.updateDespawn(despawned);
|
||||||
}
|
}
|
||||||
@@ -273,6 +284,15 @@ public class AdventureQuestController implements Serializable {
|
|||||||
return enemySpriteList;
|
return enemySpriteList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void rematchQuestSprite(EnemySprite sprite){
|
||||||
|
for (AdventureQuestData q : Current.player().getQuests()){
|
||||||
|
for (AdventureQuestStage s : q.stages){
|
||||||
|
if (sprite.questStageID != null && sprite.questStageID.equals(s.questStageID)){
|
||||||
|
s.setTargetSprite(sprite);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String randomItemName()
|
String randomItemName()
|
||||||
{ //todo: expand and include in fetch/delivery quests
|
{ //todo: expand and include in fetch/delivery quests
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.badlogic.gdx.audio.Music;
|
|||||||
import com.badlogic.gdx.files.FileHandle;
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||||
import com.badlogic.gdx.utils.Array;
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.badlogic.gdx.utils.Timer;
|
import com.badlogic.gdx.utils.Timer;
|
||||||
@@ -27,9 +28,8 @@ import forge.model.FModel;
|
|||||||
import forge.util.Localizer;
|
import forge.util.Localizer;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import javax.swing.event.ChangeEvent;
|
import java.util.ArrayList;
|
||||||
import javax.swing.event.ChangeListener;
|
import java.util.List;
|
||||||
import javax.swing.event.EventListenerList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MapDialog
|
* MapDialog
|
||||||
@@ -211,31 +211,29 @@ public class MapDialog {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected EventListenerList dialogCompleteList = new EventListenerList();
|
protected List<ChangeListener> dialogCompleteList = new ArrayList<>();
|
||||||
protected EventListenerList questAcceptedList = new EventListenerList();
|
protected List<ChangeListener> questAcceptedList = new ArrayList<>();
|
||||||
public void addDialogCompleteListener(ChangeListener listener) {
|
public void addDialogCompleteListener(ChangeListener listener) {
|
||||||
dialogCompleteList.add(ChangeListener.class, listener);
|
dialogCompleteList.add(listener);
|
||||||
}
|
}
|
||||||
public void addQuestAcceptedListener(ChangeListener listener){
|
public void addQuestAcceptedListener(ChangeListener listener){
|
||||||
questAcceptedList.add(ChangeListener.class, listener);
|
questAcceptedList.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void emitDialogFinished(){
|
private void emitDialogFinished(){
|
||||||
ChangeListener[] listeners = dialogCompleteList.getListeners(ChangeListener.class);
|
if (dialogCompleteList != null && dialogCompleteList.size() > 0) {
|
||||||
if (listeners != null && listeners.length > 0) {
|
ChangeListener.ChangeEvent evt = new ChangeListener.ChangeEvent();
|
||||||
ChangeEvent evt = new ChangeEvent(this);
|
for (ChangeListener listener : dialogCompleteList) {
|
||||||
for (ChangeListener listener : listeners) {
|
listener.changed(evt, null);
|
||||||
listener.stateChanged(evt);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void emitQuestAccepted(){
|
private void emitQuestAccepted(){
|
||||||
ChangeListener[] listeners = questAcceptedList.getListeners(ChangeListener.class);
|
if (questAcceptedList != null && questAcceptedList.size() > 0) {
|
||||||
if (listeners != null && listeners.length > 0) {
|
ChangeListener.ChangeEvent evt = new ChangeListener.ChangeEvent();
|
||||||
ChangeEvent evt = new ChangeEvent(this);
|
for (ChangeListener listener : questAcceptedList) {
|
||||||
for (ChangeListener listener : listeners) {
|
listener.changed(evt, null);
|
||||||
listener.stateChanged(evt);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user