Wargroove: apworld (#4764)
- Players and AI can sacrifice their own units and upload them to the multiworld. - Players and AI can summon random units from the multiworld. - Has 4 new separate options for how many sacrifices and summons either the player or the AI can make per level attempt. - New /sacrifice_summon command to toggle sacrifices and summons on/off. Useful if the AI makes a level impossible with their summons. - Linux Support. - Is an apworld now. --------- Co-authored-by: Raspberry Floof <raspberry@rosenthalcastle.org> Co-authored-by: KScl <ks@rosenthalcastle.org> Co-authored-by: Abigail Fox <Raspberryfloof@users.noreply.github.com> Co-authored-by: qwint <qwint.42@gmail.com> Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
This commit is contained in:
@@ -8,18 +8,42 @@ from .Locations import location_table
|
||||
from .Regions import create_regions
|
||||
from .Rules import set_rules
|
||||
from worlds.AutoWorld import World, WebWorld
|
||||
from .Options import WargrooveOptions
|
||||
from .Options import WargrooveOptions, wargroove_option_groups
|
||||
from worlds.LauncherComponents import Component, components, Type, launch as launch_component
|
||||
|
||||
|
||||
def launch_client(*args: str):
|
||||
from .Client import launch
|
||||
launch_component(launch, name="WargrooveClient", args=args)
|
||||
|
||||
|
||||
components.append(Component("Wargroove Client", game_name="Wargroove", func=launch_client, component_type=Type.CLIENT))
|
||||
|
||||
|
||||
class WargrooveSettings(settings.Group):
|
||||
class RootDirectory(settings.UserFolderPath):
|
||||
"""
|
||||
Locate the Wargroove root directory on your system.
|
||||
This is used by the Wargroove client, so it knows where to send communication files to
|
||||
Locates the Wargroove root directory on your system.
|
||||
This is used by the Wargroove client, so it knows where to send communication files to.
|
||||
"""
|
||||
description = "Wargroove root directory"
|
||||
|
||||
class SaveDirectory(settings.UserFolderPath):
|
||||
"""
|
||||
Locates the Wargroove save file directory on your system.
|
||||
This is used by the Wargroove client, so it knows where to send mod and save files to.
|
||||
"""
|
||||
description = "Wargroove save file/appdata directory"
|
||||
|
||||
def browse(self, **kwargs):
|
||||
from Utils import messagebox
|
||||
messagebox("AppData folder not found",
|
||||
"WargrooveClient couldn't detect a path to the AppData folder.\n"
|
||||
"Please select the folder containing the \"/Chucklefish/Wargroove/\" directories.")
|
||||
super().browse(**kwargs)
|
||||
|
||||
root_directory: RootDirectory = RootDirectory("C:/Program Files (x86)/Steam/steamapps/common/Wargroove")
|
||||
save_directory: SaveDirectory = SaveDirectory("%APPDATA%")
|
||||
|
||||
|
||||
class WargrooveWeb(WebWorld):
|
||||
@@ -32,6 +56,8 @@ class WargrooveWeb(WebWorld):
|
||||
["Fly Sniper"]
|
||||
)]
|
||||
|
||||
option_groups = wargroove_option_groups
|
||||
|
||||
|
||||
class WargrooveWorld(World):
|
||||
"""
|
||||
@@ -55,6 +81,11 @@ class WargrooveWorld(World):
|
||||
'commander_defense_boost': self.options.commander_defense_boost.value,
|
||||
'can_choose_commander': self.options.commander_choice.value != 0,
|
||||
'commander_choice': self.options.commander_choice.value,
|
||||
'player_sacrifice_limit': self.options.player_sacrifice_limit.value,
|
||||
'player_summon_limit': self.options.player_summon_limit.value,
|
||||
'ai_sacrifice_limit': self.options.ai_sacrifice_limit.value,
|
||||
'ai_summon_limit': self.options.ai_summon_limit.value,
|
||||
'death_link': self.options.death_link.value,
|
||||
'starting_groove_multiplier': 20 # Backwards compatibility in case this ever becomes an option
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user