mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge pull request #8145 from kevlahnota/newMaster
fix Rewarded Deck dialogs
This commit is contained in:
@@ -1160,20 +1160,20 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
|
|||||||
questFlags.clear();
|
questFlags.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addQuest(String questID) {
|
public void addQuest(String questID, boolean isNewGame) {
|
||||||
int id = Integer.parseInt(questID);
|
int id = Integer.parseInt(questID);
|
||||||
addQuest(id);
|
addQuest(id, isNewGame);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addQuest(int questID) {
|
public void addQuest(int questID, boolean isNewGame) {
|
||||||
AdventureQuestData toAdd = AdventureQuestController.instance().generateQuest(questID);
|
AdventureQuestData toAdd = AdventureQuestController.instance().generateQuest(questID);
|
||||||
|
|
||||||
if (toAdd != null) {
|
if (toAdd != null) {
|
||||||
addQuest(toAdd);
|
addQuest(toAdd, isNewGame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addQuest(AdventureQuestData q) {
|
public void addQuest(AdventureQuestData q, boolean isNewGame) {
|
||||||
//TODO: add a config flag for this
|
//TODO: add a config flag for this
|
||||||
boolean noTrackedQuests = true;
|
boolean noTrackedQuests = true;
|
||||||
for (AdventureQuestData existing : quests) {
|
for (AdventureQuestData existing : quests) {
|
||||||
@@ -1186,6 +1186,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
|
|||||||
if (noTrackedQuests || q.autoTrack)
|
if (noTrackedQuests || q.autoTrack)
|
||||||
AdventureQuestController.trackQuest(q);
|
AdventureQuestController.trackQuest(q);
|
||||||
q.activateNextStages();
|
q.activateNextStages();
|
||||||
|
if (!isNewGame)
|
||||||
AdventureQuestController.instance().showQuestDialogs(MapStage.getInstance());
|
AdventureQuestController.instance().showQuestDialogs(MapStage.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ public class NewGameScene extends MenuScene {
|
|||||||
SoundSystem.instance.changeBackgroundTrack();
|
SoundSystem.instance.changeBackgroundTrack();
|
||||||
WorldStage.getInstance().enterSpawnPOI();
|
WorldStage.getInstance().enterSpawnPOI();
|
||||||
if (AdventurePlayer.current().getQuests().stream().noneMatch(q -> q.getID() == 28)) {
|
if (AdventurePlayer.current().getQuests().stream().noneMatch(q -> q.getID() == 28)) {
|
||||||
AdventurePlayer.current().addQuest("28"); //Temporary link to Shandalar main questline
|
AdventurePlayer.current().addQuest("28", true); //Temporary link to Shandalar main questline
|
||||||
}
|
}
|
||||||
Forge.switchScene(GameScene.instance());
|
Forge.switchScene(GameScene.instance());
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ public class SaveLoadScene extends UIScene {
|
|||||||
Current.player().resetQuestFlags();
|
Current.player().resetQuestFlags();
|
||||||
Current.player().setCharacterFlag("newGamePlus", 1);
|
Current.player().setCharacterFlag("newGamePlus", 1);
|
||||||
Current.player().removeAllQuestItems();
|
Current.player().removeAllQuestItems();
|
||||||
AdventurePlayer.current().addQuest("28");
|
AdventurePlayer.current().addQuest("28", true);
|
||||||
WorldSave.getCurrentSave().clearBookmarks();
|
WorldSave.getCurrentSave().clearBookmarks();
|
||||||
WorldStage.getInstance().enterSpawnPOI();
|
WorldStage.getInstance().enterSpawnPOI();
|
||||||
SoundSystem.instance.changeBackgroundTrack();
|
SoundSystem.instance.changeBackgroundTrack();
|
||||||
|
|||||||
@@ -98,10 +98,24 @@ public class TileMapScene extends HudScene {
|
|||||||
if (Current.player().fullHeal())
|
if (Current.player().fullHeal())
|
||||||
autoheal = true; // to play sound/effect on act
|
autoheal = true; // to play sound/effect on act
|
||||||
}
|
}
|
||||||
|
if (WorldSave.getCurrentSave().getPlayer().hasAnnounceFantasy()) {
|
||||||
|
WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy();
|
||||||
|
MapStage.getInstance().showDeckAwardDialog("{BLINK=WHITE;RED}Chaos Mode!{ENDBLINK}\n" +
|
||||||
|
"Enemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.",
|
||||||
|
WorldSave.getCurrentSave().getPlayer().getSelectedDeck(), this::initializeDialogs);
|
||||||
|
} else if (WorldSave.getCurrentSave().getPlayer().hasAnnounceCustom()) {
|
||||||
|
WorldSave.getCurrentSave().getPlayer().clearAnnounceCustom();
|
||||||
|
MapStage.getInstance().showDeckAwardDialog("{GRADIENT}Custom Deck Mode!{ENDGRADIENT}\n" +
|
||||||
|
"Some enemies will use Genetic AI Decks randomly.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck(), this::initializeDialogs);
|
||||||
|
} else {
|
||||||
|
initializeDialogs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initializeDialogs() {
|
||||||
AdventureQuestController.instance().updateEnteredPOI(rootPoint);
|
AdventureQuestController.instance().updateEnteredPOI(rootPoint);
|
||||||
AdventureQuestController.instance().showQuestDialogs(stage);
|
AdventureQuestController.instance().showQuestDialogs(stage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean leave() {
|
public boolean leave() {
|
||||||
// clear player collision on WorldStage and the GameHUD will restore it after the flicker animation.
|
// clear player collision on WorldStage and the GameHUD will restore it after the flicker animation.
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ public class ConsoleCommandInterpreter {
|
|||||||
catch (Exception e){
|
catch (Exception e){
|
||||||
return "Can not convert " +s[0]+" to number";
|
return "Can not convert " +s[0]+" to number";
|
||||||
}
|
}
|
||||||
Current.player().addQuest(ID);
|
Current.player().addQuest(ID, false);
|
||||||
return "Quest generated";
|
return "Quest generated";
|
||||||
});
|
});
|
||||||
registerCommand(new String[]{"give", "shards"}, s -> {
|
registerCommand(new String[]{"give", "shards"}, s -> {
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ public abstract class GameStage extends Stage {
|
|||||||
showDialog();
|
showDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDeckAwardDialog(String message, Deck deck) {
|
public void showDeckAwardDialog(String message, Deck deck, Runnable runnable) {
|
||||||
dialog.getContentTable().clear();
|
dialog.getContentTable().clear();
|
||||||
dialog.getButtonTable().clear();
|
dialog.getButtonTable().clear();
|
||||||
dialog.clearListeners();
|
dialog.clearListeners();
|
||||||
@@ -236,7 +236,11 @@ public abstract class GameStage extends Stage {
|
|||||||
L.skipToTheEnd();
|
L.skipToTheEnd();
|
||||||
|
|
||||||
dialog.getContentTable().add(L).width(250);
|
dialog.getContentTable().add(L).width(250);
|
||||||
dialog.getButtonTable().add(Controls.newTextButton("OK", this::hideDialog)).width(240);
|
dialog.getButtonTable().add(Controls.newTextButton("OK", () -> {
|
||||||
|
hideDialog();
|
||||||
|
if (runnable != null)
|
||||||
|
runnable.run();
|
||||||
|
})).width(240);
|
||||||
dialog.setKeepWithinStage(true);
|
dialog.setKeepWithinStage(true);
|
||||||
setDialogStage(GameHUD.getInstance());
|
setDialogStage(GameHUD.getInstance());
|
||||||
showDialog();
|
showDialog();
|
||||||
|
|||||||
@@ -364,16 +364,6 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
|||||||
background.setPlayerPos(player.getX(), player.getY());
|
background.setPlayerPos(player.getX(), player.getY());
|
||||||
//spriteGroup.setCullingArea(new Rectangle(player.getX()-getViewport().getWorldHeight()/2,player.getY()-getViewport().getWorldHeight()/2,getViewport().getWorldHeight(),getViewport().getWorldHeight()));
|
//spriteGroup.setCullingArea(new Rectangle(player.getX()-getViewport().getWorldHeight()/2,player.getY()-getViewport().getWorldHeight()/2,getViewport().getWorldHeight(),getViewport().getWorldHeight()));
|
||||||
super.draw();
|
super.draw();
|
||||||
if (WorldSave.getCurrentSave().getPlayer().hasAnnounceFantasy()) {
|
|
||||||
MapStage.getInstance().showDeckAwardDialog("{BLINK=WHITE;RED}Chaos Mode!{ENDBLINK}\n" +
|
|
||||||
"Enemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.",
|
|
||||||
WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
|
|
||||||
WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy();
|
|
||||||
} else if (WorldSave.getCurrentSave().getPlayer().hasAnnounceCustom()) {
|
|
||||||
MapStage.getInstance().showDeckAwardDialog("{GRADIENT}Custom Deck Mode!{ENDGRADIENT}\n" +
|
|
||||||
"Some enemies will use Genetic AI Decks randomly.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
|
|
||||||
WorldSave.getCurrentSave().getPlayer().clearAnnounceCustom();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enterSpawnPOI(){
|
public void enterSpawnPOI(){
|
||||||
|
|||||||
@@ -92,10 +92,10 @@ public class MapDialog {
|
|||||||
@Override
|
@Override
|
||||||
public void changed(ChangeEvent changeEvent, Actor actor) {
|
public void changed(ChangeEvent changeEvent, Actor actor) {
|
||||||
if (prebuiltQuestData != null && Integer.parseInt(questAccepted) == prebuiltQuestData.getID()) {
|
if (prebuiltQuestData != null && Integer.parseInt(questAccepted) == prebuiltQuestData.getID()) {
|
||||||
Current.player().addQuest(prebuiltQuestData);
|
Current.player().addQuest(prebuiltQuestData, false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Current.player().addQuest(questAccepted);
|
Current.player().addQuest(questAccepted, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user