Feature/11167: Randomizer mode for Adventure - #11525
Conversation
Todo: Test the game fully Todo: Fix the randomized shops to always have the same stock in the same order (make the stock stored as an ArrayList instead of a Set)
| return this.rules.getAllFaces().stream().map(this::getVariantForFace).collect(Collectors.toList()); | ||
| } | ||
|
|
||
| public boolean isLocked() { |
There was a problem hiding this comment.
game mode data can't pollute low-level engine objects
There was a problem hiding this comment.
I added a new class called AdventurePaperCard which extends PaperCard. Unfortunately, forge-gui cannot access classes inside forge-gui-mobile due to architectural choices so I had to add this class in forge-core such that both forge-gui and forge-gui-mobile can access and use it.
Anyway, I have done the minimal change required to change all relevant usages of PaperCard to instances of AdventurePaperCard in the Adventure mode. The class also later be extended with more Adventure mode specific features if need be. This also means all of the non-adventure modes never have anything to do with AdventurePaperCard and will function and behave identically to how they did before my changes.
…dventure mode in the AdventureDeckEditor, AdventurePlayer's starting deck and the RewardScene.
Split off from: Archipelago PR
Builds further on the groundwork laid in this PR
Randomizer Mode for Adventure
The randomizer mode changes up the gameplay loop of the base adventure mode by restricting the user more at the start of a playthrough and giving them randomized rewards as they play. They will need to be more creative in their usage of the cards and items they unlock as many of the established strategies will likely be unusable until much later in the playthrough.
This PR attempts the bridge the gap between the Archipelago PR, while this is still a fairly big diff, it was the cleanest split I could make whilst still being completely independent from the aforementioned PR. Some names might still reference "Archipelago", I decided not to change these as would have to rename them back again anyway once we start merging the Archipelago code.
An overview of features for this new randomizer mode:
NewGameScenethat lets the player enable the Randomizer mode.