Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wargroove: Implement New Game #1401

Merged
merged 65 commits into from
Feb 24, 2023
Merged

Wargroove: Implement New Game #1401

merged 65 commits into from
Feb 24, 2023

Conversation

FlySniper
Copy link
Collaborator

@FlySniper FlySniper commented Jan 22, 2023

What is this fixing or adding?

This adds Wargroove to the list of supported games. Wargroove uses a custom non-linear campaign over the vanilla and double trouble campaigns. A Wargroove client has been added which does a lot of heavy lifting for the Wargroove implementation and must be always on during gameplay. The mod source files can be found here: https://github.com/FlySniper/WargrooveArchipelagoMod

How was this tested?

Across 3 beta tests:
Results from beta 1:

  • Installing the Wargroove mod and campaign is difficult, so the Wargroove client was adapted to install them automatically for the user.
  • Ingame difficulty settings are documented in the troubleshooting section.
  • Better progression balancing for Final Bridges, Final Walls, and the Final Sickle.

Results from beta 2:

  • There's a bug where enemy commanders aren't randomized. This was most likely present in beta 1. It has been fixed for beta 3.

Results from beta 3:

  • There were some grammatical errors in the descriptions for Frigid Archery and A Ballista's Revenge. These have been corrected, plus a mountain tile was added to Corrupted Inlet to prevent merfolk from spawning in the lake. The lake also has two extra tiles of deep ocean to make traversal faster.

If this makes graphical changes, please attach screenshots.

Sample custom campaign layout:
image

FlySniper and others added 30 commits November 4, 2022 19:41
… the wrong variables. Added more comments in Regions.py
…nstead of numbers. WargrooveClient now sends seeds for each individual level
WG: Commander Choice options
Copy link
Contributor

@SoldierofOrder SoldierofOrder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only examined the two user-facing docs files (setup guide and info page). I think this setup guide needs a lot of work; specifically, there's a lot of redundancy, and the bugfix instructions don't satisfy me. Apart from my punctuation and grammar suggestions, I recommend trying to make the guide "flow" better for users; in particular, the guidance for what to do when Wargroove crashes is both confusing and is directly referenced by several seemingly-unrelated instructions.

worlds/wargroove/docs/en_Wargroove.md Outdated Show resolved Hide resolved
worlds/wargroove/docs/en_Wargroove.md Outdated Show resolved Hide resolved
worlds/wargroove/docs/wargroove_en.md Outdated Show resolved Hide resolved
worlds/wargroove/docs/wargroove_en.md Outdated Show resolved Hide resolved
`Steam->Right Click Wargroove->Properties->Local Files->Browse Local Files` and copying the path in the address bar.
- Paste the path in between the quotes next to `root_directory:` in the `host.yaml`
- You may have to replace all single \\ with \\\\
4. Start the Wargroove client. It should start with no errors, if it does go back to step 1.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you saying here that "if the client starts with no errors, go back to step 1"?

If you mean to say "if the client shows an error, go back to step 1", then I think you should think about ways these instructions could go wrong. After all, if there are errors, then clearly the instructions (as written) didn't work for the user the first time, and I see no reason why they'd work the second time. What are the points of failure for this installation process? Maybe pasting a badly-formatted root directory? Instead of saying "go back and do it again", maybe include sub-bullets here that instruct the user on what they should check out. Help them troubleshoot.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the statement It should start with no errors, if it does go back to step 1. can be removed here. There shouldn't be any surprises that the above steps cannot solve

worlds/wargroove/docs/wargroove_en.md Outdated Show resolved Hide resolved
Comment on lines +69 to +78
### Wargroove crashes when trying to run the Archipelago campaign
This is caused by not deleting campaign progress before updating the mod and campaign files.
1. Go to `Custom Content->Create->Campaign->Archipelago->Edit` and attempt to update the mod.
2. Wargroove will give an error message.
3. Go back to `Custom Content->Create->Campaign->Archipelago->Edit` and attempt to update the mod again.
4. Wargroove crashes.
5. Go back to `Custom Content->Create->Campaign->Archipelago->Edit` and attempt to update the mod again.
6. In the edit menu, hit `ESC` and click `Delete Progress`.
7. If the above steps do not allow you to start the campaign from `Story->Campaign->Custom->Archipelago` replace
`playerProgress` and `playerProgress.bak` with your previously backed up files.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is going on here? This whole thing seems like something that ought to be fixed. Why is the user instructed to crash their game by trying to do the same thing three times in a row? Why does attempting to update the mod not 1) instruct the user to delete their campaign, or 2) delete the campaign as part of the update? I understand if there are technical limitations, but this definitely needs to be smoothed out for the user experience.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, these "backed up files" aren't referenced anywhere else, as far as I can see.

Copy link
Collaborator Author

@FlySniper FlySniper Feb 10, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is because the campaign save data exists in a playerProgress file which contains the save data for all of the user's campaigns. This includes the vanilla and double trouble campaigns. The Archipelago campaign won't start if the mod has been updated and there is save data in the playerProgress file for the campaign. The steps above allow the user to utilize an updated campaign or mod without receiving an error when trying to start the campaign again. Unfortunately, I haven't found any other way to fix the error when updating the mod.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, fair. I suggest adding instructions earlier in the guide about backing up save files, since you seem to expect that the player has such backups.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I must've had those instructions in there earlier, but removed them at one point. I added a new section called Backup playerProgress files

Comment on lines 66 to 67
Wargroove is finicky, but there could be several causes for this. If it happens often or can be reproduced,
please submit a bug report.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the convention is to refer users to our Discord server for bug reports; I recommend adding a link to that here.

worlds/wargroove/docs/wargroove_en.md Outdated Show resolved Hide resolved
worlds/wargroove/docs/wargroove_en.md Outdated Show resolved Hide resolved
Copy link
Contributor

@SoldierofOrder SoldierofOrder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found a couple more things. Once these suggestions are addressed, I approve these docs. :)

worlds/wargroove/docs/wargroove_en.md Outdated Show resolved Hide resolved
worlds/wargroove/docs/en_Wargroove.md Outdated Show resolved Hide resolved
Comment on lines +69 to +78
### Wargroove crashes when trying to run the Archipelago campaign
This is caused by not deleting campaign progress before updating the mod and campaign files.
1. Go to `Custom Content->Create->Campaign->Archipelago->Edit` and attempt to update the mod.
2. Wargroove will give an error message.
3. Go back to `Custom Content->Create->Campaign->Archipelago->Edit` and attempt to update the mod again.
4. Wargroove crashes.
5. Go back to `Custom Content->Create->Campaign->Archipelago->Edit` and attempt to update the mod again.
6. In the edit menu, hit `ESC` and click `Delete Progress`.
7. If the above steps do not allow you to start the campaign from `Story->Campaign->Custom->Archipelago` replace
`playerProgress` and `playerProgress.bak` with your previously backed up files.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, fair. I suggest adding instructions earlier in the guide about backing up save files, since you seem to expect that the player has such backups.

Comment on lines 20 to 21
Utils.init_logging("WargrooveClient", exception_logger="Client")
Utils.init_logging("WG", exception_logger="Client")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only one of these two lines should be needed

item_name_to_id = {name: data.code for name, data in item_table.items()}
location_name_to_id = location_table

forced_auto_forfeit = True
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this no longer exists

…tement in the Wargroove client. Changed the logic of Endless Knight to include harpies or dragons as viable units for completing the map.
…tement in the Wargroove client. Changed the logic of Endless Knight to include harpies or dragons as viable units for
set_rule(world.get_location('Endless Knight: Victory', player),
lambda state: state._wargroove_has_item(player, 'Eastern Bridges') and (
state._wargroove_has_item(player, 'Spearman') or
state._wargroove_has_item(player, 'Harpy') or
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a logic change here based on feedback. Spearmen, harpies or dragons can beat this level so long as the player has the Eastern Bridges. Previously, it was just spearmen.

Copy link
Member

@Berserker66 Berserker66 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I apparently can't comment on binary files; so question here:
What are the files in /worlds/wargroove/data/save and are they needed?

@FlySniper
Copy link
Collaborator Author

These are the custom campaign files. They are automatically installed to the Wargroove appdata directory when the client is started along with the mod. This makes installation easier for the end user.

@Berserker66 Berserker66 merged commit 5966aa5 into ArchipelagoMW:main Feb 24, 2023
kindasneaki pushed a commit to kindasneaki/Archipelago that referenced this pull request Jun 28, 2023
This adds Wargroove to the list of supported games. Wargroove uses a custom non-linear campaign over the vanilla and double trouble campaigns. A Wargroove client has been added which does a lot of heavy lifting for the Wargroove implementation and must be always on during gameplay. The mod source files can be found here: https://github.com/FlySniper/WargrooveArchipelagoMod
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants