SC2: Content update (#5312)
Feature highlights: - Adds many content to the SC2 game - Allows custom mission order - Adds race-swapped missions for build missions (except Epilogue and NCO) - Allows War Council Nerfs (Protoss units can get pre - War Council State, alternative units get another custom nerf to match the power level of base units) - Revamps Predator's upgrade tree (never was considered strategically important) - Adds some units and upgrades - Locked and excluded items can specify quantity - Key mode (if opt-in, missions require keys to be unlocked on top of their regular regular requirements - Victory caches - Victory locations can grant multiple items to the multiworld instead of one - The generator is more resilient for generator failures as it validates logic for item excludes - Fixes the following issues: - https://github.com/ArchipelagoMW/Archipelago/issues/3531 - https://github.com/ArchipelagoMW/Archipelago/issues/3548
This commit is contained in:
@@ -62,69 +62,128 @@ If the Progression Balancing of one world is greater than that of others, items
|
||||
obtained early, and vice versa if its value is smaller.
|
||||
However, StarCraft 2 is more permissive regarding the items that can be used to progress, so this option has little
|
||||
influence on progression in a StarCraft 2 world.
|
||||
StarCraft 2.
|
||||
Since this option increases the time required to generate a MultiWorld, we recommend deactivating it (i.e., setting it
|
||||
to zero) for a StarCraft 2 world.
|
||||
|
||||
#### How do I specify items in a list, like in excluded items?
|
||||
#### What does Tactics Level do?
|
||||
|
||||
Tactics level allows controlling the difficulty through what items you're likely to get early.
|
||||
This is independent of game difficulty like causal, normal, hard, or brutal.
|
||||
|
||||
"Standard" and "Advanced" levels are guaranteed to be beatable with the items you are given.
|
||||
The logic is a little more restrictive than a player's creativity, so an advanced player is likely to have
|
||||
more items than they need in any situation. These levels are entirely safe to use in a multiworld.
|
||||
|
||||
The "Any Units" level only guarantees that a minimum number of faction-appropriate units or buildings are reachable
|
||||
early on, with minimal restrictions on what those units are.
|
||||
Generation will guarantee a number of faction-appropriate units are reachable before starting a mission,
|
||||
based on the depth of that mission. For example, if the third mission is a zerg mission, it is guaranteed that 2
|
||||
zerg units are somewhere in the preceding 2 missions. This logic level is not guaranteed to be beatable, and may
|
||||
require lowering the difficulty level (`/difficulty` in the client) if many no-build missions are excluded.
|
||||
|
||||
The "No Logic" level provides no logical safeguards for beatability. It is only safe to use in a multiworld if the player curates
|
||||
a start inventory or the organizer is okay with the possibility of the StarCraft 2 world being unbeatable.
|
||||
Safeguards exist so that other games' items placed in the StarCraft 2 world are reachable under "Advanced" logic rules.
|
||||
|
||||
#### How do I specify items in a list, like in enabled campaigns?
|
||||
|
||||
You can look up the syntax for yaml collections in the
|
||||
[YAML specification](https://yaml.org/spec/1.2.2/#21-collections).
|
||||
For lists, every item goes on its own line, started with a hyphen:
|
||||
For lists, every item goes on its own line, started with a hyphen.
|
||||
Putting each element on its own line makes it easy to toggle elements by commenting
|
||||
(ie adding a `#` character at the start of the line).
|
||||
|
||||
```yaml
|
||||
excluded_items:
|
||||
- Battlecruiser
|
||||
- Drop-Pods (Kerrigan Tier 7)
|
||||
enabled_campaigns:
|
||||
- Wings of Liberty
|
||||
# - Heart of the Swarm
|
||||
- Legacy of the Void
|
||||
- Nova Covert Ops
|
||||
- Prophecy
|
||||
- 'Whispers of Oblivion (Legacy of the Void: Prologue)'
|
||||
# - 'Into the Void (Legacy of the Void: Epilogue)'
|
||||
```
|
||||
|
||||
An inline syntax may also be used for short lists:
|
||||
|
||||
```yaml
|
||||
enabled_campaigns: ['Wings of Liberty', 'Nova Covert Ops']
|
||||
```
|
||||
|
||||
An empty list is just a matching pair of square brackets: `[]`.
|
||||
That's the default value in the template, which should let you know to use this syntax.
|
||||
That's often the default value in the template, which should let you know to use this syntax.
|
||||
|
||||
#### How do I specify items for the starting inventory?
|
||||
#### How do I specify items for key-value mappings, like starting inventory or filler item distribution?
|
||||
|
||||
The starting inventory is a YAML mapping rather than a list, which associates an item with the amount you start with.
|
||||
The syntax looks like the item name, followed by a colon, then a whitespace character, and then the value:
|
||||
Many options pertaining to the item pool are yaml mappings.
|
||||
These are several lines, where each line looks like a name, followed by a colon, then a space, then a value.
|
||||
|
||||
```yaml
|
||||
start_inventory:
|
||||
Micro-Filtering: 1
|
||||
Additional Starting Vespene: 5
|
||||
start_inventory:
|
||||
Micro-Filtering: 1
|
||||
Additional Starting Vespene: 5
|
||||
|
||||
locked_items:
|
||||
MULE (Command Center): 1
|
||||
```
|
||||
|
||||
For options like `start_inventory`, `locked_items`, `excluded_items`, and `unexcluded_items`, the value
|
||||
is a number specifying how many copies of an item to start with/exclude/lock.
|
||||
Note the name can also be an item group, and the value will then be added to the values for all the items
|
||||
within the group. A value of `0` will exclude all copies of an item, but will add +0 if the value
|
||||
is also specified by another name.
|
||||
|
||||
For options like `filler_items_distribution`, the value is a number specifying the relative weight of
|
||||
a filler item being that particular item.
|
||||
|
||||
For the `custom_mission_order` option, the value is a nested structure of other mapppings to specify the structure
|
||||
of the mission order. See the [Custom Mission Order documentation](/tutorial/Starcraft%202/custom_mission_orders_en)
|
||||
|
||||
An empty mapping is just a matching pair of curly braces: `{}`.
|
||||
That's the default value in the template, which should let you know to use this syntax.
|
||||
|
||||
#### How do I know the exact names of items and locations?
|
||||
|
||||
The [*datapackage*](/datapackage) page of the Archipelago website provides a complete list of the items and locations
|
||||
for each game that it currently supports, including StarCraft 2.
|
||||
|
||||
You can also look up a complete list of the item names in the
|
||||
You can look up a complete list of the item names in the
|
||||
[Icon Repository](https://matthewmarinets.github.io/ap_sc2_icons/) page.
|
||||
This page also contains supplementary information of each item.
|
||||
However, the items shown in that page might differ from those shown in the datapackage page of Archipelago since the
|
||||
former is generated, most of the time, from beta versions of StarCraft 2 Archipelago undergoing development.
|
||||
|
||||
As for the locations, you can see all the locations associated to a mission in your world by placing your cursor over
|
||||
the mission in the 'StarCraft 2 Launcher' tab in the client.
|
||||
Locations are of the format `<mission name>: <location name>`. Names are most easily looked up by hovering
|
||||
your mouse over a mission in the launcher tab of a client. Note this requires already generating a game connect to.
|
||||
|
||||
This information can also be found in the [*datapackage*](/datapackage) page of the Archipelago website.
|
||||
This page includes all data associated with all games.
|
||||
|
||||
## How do I join a MultiWorld game?
|
||||
|
||||
1. Run ArchipelagoStarcraft2Client.exe.
|
||||
- macOS users should instead follow the instructions found at ["Running in macOS"](#running-in-macos) for this step
|
||||
only.
|
||||
2. Type `/connect [server ip]`.
|
||||
2. In the Archipelago tab, type `/connect [server IP]`.
|
||||
- If you're running through the website, the server IP should be displayed near the top of the room page.
|
||||
- The server IP may also be typed into the top bar, and then clicking "Connect"
|
||||
3. Type your slot name from your YAML when prompted.
|
||||
4. If the server has a password, enter that when prompted.
|
||||
5. Once connected, switch to the 'StarCraft 2 Launcher' tab in the client. There, you can see all the missions in your
|
||||
world.
|
||||
Unreachable missions will have greyed-out text. Just click on an available mission to start it!
|
||||
world.
|
||||
|
||||
Unreachable missions will have greyed-out text. Completed missions (all locations collected) will have white text.
|
||||
Accessible but incomplete missions will have blue text. Goal missions will have a gold border.
|
||||
Mission buttons will have a color corresponding to the faction you play as in that mission.
|
||||
|
||||
Click on an available mission to start it.
|
||||
|
||||
## The game isn't launching when I try to start a mission.
|
||||
|
||||
First, check the log file for issues (stored at `[Archipelago Directory]/logs/SC2Client.txt`).
|
||||
Usually, this is caused by the mod files not being downloaded.
|
||||
Make sure you have run `/download_data` in the Archipelago tab before playing.
|
||||
You should only have to run `/download_data` again to pick up bugfixes and updates.
|
||||
|
||||
Make sure that you are running an up-to-date version of the client.
|
||||
Check the [Archipelago Releases Page](https://github.com/ArchipelagoMW/Archipelago/releases) to
|
||||
look up what the latest version is (RC releases are not necessary; that stands for "Release Candidate").
|
||||
|
||||
If these things are in order, check the log file for issues (stored at `[Archipelago Directory]/logs/Starcraft2Client.txt`).
|
||||
If you can't figure out the log file, visit our [Discord's](https://discord.com/invite/8Z65BR2) tech-support channel
|
||||
for help.
|
||||
Please include a specific description of what's going wrong and attach your log file to your message.
|
||||
@@ -150,16 +209,15 @@ Note: to launch the client, you will need to run the command `python3 Starcraft2
|
||||
|
||||
## Running in Linux
|
||||
|
||||
To run StarCraft 2 through Archipelago in Linux, you will need to install the game using Wine, then run the Linux build
|
||||
To run StarCraft 2 through Archipelago on Linux, you will need to install the game using Wine, then run the Linux build
|
||||
of the Archipelago client.
|
||||
|
||||
Make sure you have StarCraft 2 installed using Wine, and that you have followed the
|
||||
[installation procedures](#how-do-i-install-this-randomizer?) to add the Archipelago maps to the correct location.
|
||||
You will not need to copy the `.dll` files.
|
||||
If you're having trouble installing or running StarCraft 2 on Linux, it is recommend to use the Lutris installer.
|
||||
Make sure you have StarCraft 2 installed using Wine, and you know where Wine and Starcraft 2 are installed.
|
||||
If you're having trouble installing or running StarCraft 2 on Linux, it is recommended to use the Lutris installer.
|
||||
|
||||
Copy the following into a .sh file, replacing the values of **WINE** and **SC2PATH** variables with the relevant
|
||||
locations, as well as setting **PATH_TO_ARCHIPELAGO** to the directory containing the AppImage if it is not in the same
|
||||
Copy the following into a .sh file, preferably within your Archipelago directory,
|
||||
replacing the values of **WINE** and **SC2PATH** variables with the relevant locations,
|
||||
as well as setting **PATH_TO_ARCHIPELAGO** to the directory containing the AppImage if it is not in the same
|
||||
folder as the script.
|
||||
|
||||
```sh
|
||||
@@ -170,6 +228,13 @@ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
|
||||
# FIXME Replace with path to the version of Wine used to run SC2
|
||||
export WINE="/usr/bin/wine"
|
||||
|
||||
# FIXME If using nondefault wineprefix for SC2 install (usual for Lutris installs), uncomment the next line and change the path
|
||||
#export WINEPREFIX="/path/to/wineprefix"
|
||||
|
||||
# FIXME Uncomment the following lines if experiencing issues with DXVK (like DDRAW.ddl does not exist)
|
||||
#export WINEDLLOVERRIDES=d3d10core,d3d11,d3d12,d3d12core,d3d9,d3dcompiler_33,d3dcompiler_34,d3dcompiler_35,d3dcompiler_36,d3dcompiler_37,d3dcompiler_38,d3dcompiler_39,d3dcompiler_40,d3dcompiler_41,d3dcompiler_42,d3dcompiler_43,d3dcompiler_46,d3dcompiler_47,d3dx10,d3dx10_33,d3dx10_34,d3dx10_35,d3dx10_36,d3dx10_37,d3dx10_38,d3dx10_39,d3dx10_40,d3dx10_41,d3dx10_42,d3dx10_43,d3dx11_42,d3dx11_43,d3dx9_24,d3dx9_25,d3dx9_26,d3dx9_27,d3dx9_28,d3dx9_29,d3dx9_30,d3dx9_31,d3dx9_32,d3dx9_33,d3dx9_34,d3dx9_35,d3dx9_36,d3dx9_37,d3dx9_38,d3dx9_39,d3dx9_40,d3dx9_41,d3dx9_42,d3dx9_43,dxgi,nvapi,nvapi64
|
||||
#export DXVK_ENABLE_NVAPI=1
|
||||
|
||||
# FIXME Replace with path to StarCraft II install folder
|
||||
export SC2PATH="/home/user/Games/starcraft-ii/drive_c/Program Files (x86)/StarCraft II/"
|
||||
|
||||
@@ -193,3 +258,6 @@ below, replacing **${ID}** with the numerical ID.
|
||||
This will get all of the relevant environment variables Lutris sets to run StarCraft 2 in a script, including the path
|
||||
to the Wine binary that Lutris uses.
|
||||
You can then remove the line that runs the Battle.Net launcher and copy the code above into the existing script.
|
||||
|
||||
Finally, you can run the script to start your Archipelago client,
|
||||
and it should be able to launch Starcraft 2 when you start a mission.
|
||||
|
||||
Reference in New Issue
Block a user