- Secret areas in Planar Conquest are now locked once the player moves out of the event location.

This commit is contained in:
Agetian
2018-12-02 16:18:48 +03:00
parent 72cbeef71c
commit 1698ea5bf1
3 changed files with 11 additions and 15 deletions

View File

@@ -2,6 +2,7 @@ package forge.screens.planarconquest;
import java.util.List; import java.util.List;
import forge.planarconquest.*;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
@@ -28,19 +29,9 @@ import forge.card.ColorSet;
import forge.card.CardDetailUtil.DetailColors; import forge.card.CardDetailUtil.DetailColors;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.model.FModel; import forge.model.FModel;
import forge.planarconquest.ConquestAwardPool;
import forge.planarconquest.ConquestData;
import forge.planarconquest.ConquestBattle;
import forge.planarconquest.ConquestChaosBattle;
import forge.planarconquest.ConquestEvent;
import forge.planarconquest.ConquestEvent.ChaosWheelOutcome; import forge.planarconquest.ConquestEvent.ChaosWheelOutcome;
import forge.planarconquest.ConquestEvent.ConquestEventRecord; import forge.planarconquest.ConquestEvent.ConquestEventRecord;
import forge.planarconquest.ConquestLocation;
import forge.planarconquest.ConquestPlane;
import forge.planarconquest.ConquestPreferences.CQPref; import forge.planarconquest.ConquestPreferences.CQPref;
import forge.planarconquest.ConquestPlaneData;
import forge.planarconquest.ConquestReward;
import forge.planarconquest.ConquestRegion;
import forge.screens.FScreen; import forge.screens.FScreen;
import forge.screens.LoadingOverlay; import forge.screens.LoadingOverlay;
import forge.toolbox.FButton; import forge.toolbox.FButton;
@@ -547,6 +538,10 @@ public class ConquestMultiverseScreen extends FScreen {
@Override @Override
protected void onEnd(boolean endingAll) { protected void onEnd(boolean endingAll) {
String secretArea = model.getCurrentLocation().getEvent().getTemporaryUnlock();
if (secretArea != null) {
ConquestUtil.setPlaneTemporarilyAccessible(secretArea, false);
}
model.setCurrentLocation(path.get(path.size() - 1)); model.setCurrentLocation(path.get(path.size() - 1));
model.saveData(); //save new location model.saveData(); //save new location
activeMoveAnimation = null; activeMoveAnimation = null;

View File

@@ -51,7 +51,8 @@ public abstract class ConquestBattle {
view.getBtnQuit().setText("Great!"); view.getBtnQuit().setText("Great!");
model.addWin(this); model.addWin(this);
if (location.getEvent().getTemporaryUnlock() != null) { if (location.getEvent().getTemporaryUnlock() != null) {
ConquestUtil.makePlaneTemporarilyAccessible(location.getEvent().getTemporaryUnlock()); // secret area for this event, unlock it until the player moves
ConquestUtil.setPlaneTemporarilyAccessible(location.getEvent().getTemporaryUnlock(), true);
} }
} }
else { else {

View File

@@ -163,12 +163,12 @@ public class ConquestUtil {
return null; return null;
} }
public static void makePlaneTemporarilyAccessible(String planeName) { public static void setPlaneTemporarilyAccessible(String planeName, boolean accessible) {
ConquestPlane plane = getPlaneByName(planeName); ConquestPlane plane = getPlaneByName(planeName);
if (plane != null && plane.isUnreachable()) { if (plane != null && accessible != !plane.isUnreachable()) {
plane.setTemporarilyReachable(true); plane.setTemporarilyReachable(accessible);
} else { } else {
System.err.println("Could not find plane to mark as temporarily accessible: " + planeName); System.err.println("Could not find plane to set the accessibility flag: " + planeName);
} }
} }