Skip to content

Commit

Permalink
Merge branch 'main' into mlss
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesbrq authored Mar 26, 2024
2 parents 16b407b + f7b415d commit 4d6dbbf
Show file tree
Hide file tree
Showing 16 changed files with 166 additions and 163 deletions.
11 changes: 6 additions & 5 deletions WebHostLib/templates/tracker__Starcraft2.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ <h3>{{ player_name }}&apos;s Starcraft 2 Tracker</h3>
<td>{{ sc2_icon('Neosteel Bunker (Bunker)') }}</td>
<td>{{ sc2_icon('Shrike Turret (Bunker)') }}</td>
<td>{{ sc2_icon('Fortified Bunker (Bunker)') }}</td>
<td colspan="3"></td>
<td></td>
<td>{{ sc2_icon('Missile Turret') }}</td>
<td>{{ sc2_icon('Titanium Housing (Missile Turret)') }}</td>
<td>{{ sc2_icon('Hellstorm Batteries (Missile Turret)') }}</td>
Expand All @@ -121,12 +121,13 @@ <h3>{{ player_name }}&apos;s Starcraft 2 Tracker</h3>
<td>{{ sc2_icon('Planetary Fortress') }}</td>
<td {% if augmented_thrusters_planetary_fortress_level == 1 %}class="tint-terran"{% endif %}>{{ sc2_progressive_icon_with_custom_name('Progressive Augmented Thrusters (Planetary Fortress)', augmented_thrusters_planetary_fortress_url, augmented_thrusters_planetary_fortress_name) }}</td>
<td>{{ sc2_icon('Advanced Targeting (Planetary Fortress)') }}</td>
<td colspan="2"></td>
<td>{{ sc2_icon('Micro-Filtering') }}</td>
<td>{{ sc2_icon('Automated Refinery') }}</td>
<td></td>
<td>{{ sc2_icon('Advanced Construction (SCV)') }}</td>
<td>{{ sc2_icon('Dual-Fusion Welders (SCV)') }}</td>
<td></td>
<td>{{ sc2_icon('Micro-Filtering') }}</td>
<td>{{ sc2_icon('Automated Refinery') }}</td>
<td>{{ sc2_icon('Hostile Environment Adaptation (SCV)') }}</td>
</tr>
<tr>
<td>{{ sc2_icon('Sensor Tower') }}</td>
Expand Down Expand Up @@ -180,7 +181,7 @@ <h3>{{ player_name }}&apos;s Starcraft 2 Tracker</h3>
<td>{{ sc2_icon('Nano Projector (Medic)') }}</td>
<td colspan="6"></td>
<td>{{ sc2_icon('Vulture') }}</td>
<td>{{ sc2_progressive_icon_with_custom_name('Progressive Replenishable Magazine (Vulture)', replenishable_magazine_vulture_url, replenishable_magazine_vulture_name) }}</td>
<td class="{{ sc2_tint_level(replenishable_magazine_vulture_level) }}">{{ sc2_progressive_icon_with_custom_name('Progressive Replenishable Magazine (Vulture)', replenishable_magazine_vulture_url, replenishable_magazine_vulture_name) }}</td>
<td>{{ sc2_icon('Ion Thrusters (Vulture)') }}</td>
<td>{{ sc2_icon('Auto Launchers (Vulture)') }}</td>
<td>{{ sc2_icon('Auto-Repair (Vulture)') }}</td>
Expand Down
13 changes: 7 additions & 6 deletions WebHostLib/tracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -1606,6 +1606,7 @@ def render_Starcraft2_tracker(tracker_data: TrackerData, team: int, player: int)
"Hellstorm Batteries (Missile Turret)": github_icon_base_url + "blizzard/btn-ability-stetmann-corruptormissilebarrage.png",
"Advanced Construction (SCV)": github_icon_base_url + "blizzard/btn-ability-mengsk-trooper-advancedconstruction.png",
"Dual-Fusion Welders (SCV)": github_icon_base_url + "blizzard/btn-upgrade-swann-scvdoublerepair.png",
"Hostile Environment Adaptation (SCV)": github_icon_base_url + "blizzard/btn-upgrade-swann-hellarmor.png",
"Fire-Suppression System Level 1": organics_icon_base_url + "Fire-SuppressionSystem.png",
"Fire-Suppression System Level 2": github_icon_base_url + "blizzard/btn-upgrade-swann-firesuppressionsystem.png",

Expand Down Expand Up @@ -2333,12 +2334,12 @@ def render_Starcraft2_tracker(tracker_data: TrackerData, team: int, player: int)
"Progressive Zerg Armor Upgrade": 106 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Zerg Ground Upgrade": 107 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Zerg Flyer Upgrade": 108 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Zerg Weapon/Armor Upgrade": 109 + SC2WOL_ITEM_ID_OFFSET,
"Progressive Protoss Weapon Upgrade": 105 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Protoss Armor Upgrade": 106 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Protoss Ground Upgrade": 107 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Protoss Air Upgrade": 108 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Protoss Weapon/Armor Upgrade": 109 + SC2WOL_ITEM_ID_OFFSET,
"Progressive Zerg Weapon/Armor Upgrade": 109 + SC2HOTS_ITEM_ID_OFFSET,
"Progressive Protoss Weapon Upgrade": 105 + SC2LOTV_ITEM_ID_OFFSET,
"Progressive Protoss Armor Upgrade": 106 + SC2LOTV_ITEM_ID_OFFSET,
"Progressive Protoss Ground Upgrade": 107 + SC2LOTV_ITEM_ID_OFFSET,
"Progressive Protoss Air Upgrade": 108 + SC2LOTV_ITEM_ID_OFFSET,
"Progressive Protoss Weapon/Armor Upgrade": 109 + SC2LOTV_ITEM_ID_OFFSET,
}
grouped_item_replacements = {
"Progressive Terran Weapon Upgrade": ["Progressive Terran Infantry Weapon",
Expand Down
6 changes: 3 additions & 3 deletions worlds/cv64/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ class CV64Web(WebWorld):

class CV64World(World):
"""
Castlevania for the Nintendo 64 is the first 3D game in the franchise. As either whip-wielding Belmont descendant
Reinhardt Schneider or powerful sorceress Carrie Fernandez, brave many terrifying traps and foes as you make your
way to Dracula's chamber and stop his rule of terror!
Castlevania for the Nintendo 64 is the first 3D game in the Castlevania franchise. As either whip-wielding Belmont
descendant Reinhardt Schneider or powerful sorceress Carrie Fernandez, brave many terrifying traps and foes as you
make your way to Dracula's chamber and stop his rule of terror!
"""
game = "Castlevania 64"
item_name_groups = {
Expand Down
6 changes: 3 additions & 3 deletions worlds/cv64/docs/en_Castlevania 64.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Castlevania 64

## Where is the settings page?
## Where is the options page?

The [player settings page for this game](../player-settings) contains all the options you need to configure and export a
The [player options page for this game](../player-options) contains all the options you need to configure and export a
config file.

## What does randomization do to this game?
Expand Down Expand Up @@ -116,7 +116,7 @@ Enabling Carrie Logic will also expect the following:

- Orb-sniping dogs through the front gates in Villa

Library Skip is **NOT** logically expected on any setting. The basement hallway crack will always logically expect two Nitros
Library Skip is **NOT** logically expected by any options. The basement arena crack will always logically expect two Nitros
and two Mandragoras even with Hard Logic on due to the possibility of wasting a pair on the upper wall, after managing
to skip past it. And plus, the RNG manip may not even be possible after picking up all the items in the Nitro room.

Expand Down
4 changes: 2 additions & 2 deletions worlds/cv64/docs/setup_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ the White Jewels.

## Generating and Patching a Game

1. Create your settings file (YAML). You can make one on the
[Castlevania 64 settings page](../../../games/Castlevania 64/player-settings).
1. Create your options file (YAML). You can make one on the
[Castlevania 64 options page](../../../games/Castlevania%2064/player-options).
2. Follow the general Archipelago instructions for [generating a game](../../Archipelago/setup/en#generating-a-game).
This will generate an output file for you. Your patch file will have the `.apcv64` file extension.
3. Open `ArchipelagoLauncher.exe`
Expand Down
4 changes: 2 additions & 2 deletions worlds/cv64/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -337,13 +337,13 @@ class BigToss(Toggle):
"""Makes every non-immobilizing damage source launch you as if you got hit by Behemoth's charge.
Press A while tossed to cancel the launch momentum and avoid being thrown off ledges.
Hold Z to have all incoming damage be treated as it normally would.
Any tricks that might be possible with it are NOT considered in logic on any setting."""
Any tricks that might be possible with it are NOT considered in logic by any options."""
display_name = "Big Toss"


class PantherDash(Choice):
"""Hold C-right at any time to sprint way faster. Any tricks that might be
possible with it are NOT considered in logic on any setting and any boss
possible with it are NOT considered in logic by any options and any boss
fights with boss health meters, if started, are expected to be finished
before leaving their arenas if Dracula's Condition is bosses. Jumpless will
prevent jumping while moving at the increased speed to ensure logic cannot be broken with it."""
Expand Down
4 changes: 2 additions & 2 deletions worlds/sc2/PoolFilter.py
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ def filter_items(world: World, mission_req_table: Dict[SC2Campaign, Dict[str, Mi
def get_used_races(mission_req_table: Dict[SC2Campaign, Dict[str, MissionInfo]], world: World) -> Set[SC2Race]:
grant_story_tech = get_option_value(world, "grant_story_tech")
take_over_ai_allies = get_option_value(world, "take_over_ai_allies")
kerrigan_presence = get_option_value(world, "kerrigan_presence") \
kerrigan_presence = get_option_value(world, "kerrigan_presence") in kerrigan_unit_available \
and SC2Campaign.HOTS in get_enabled_campaigns(world)
missions = missions_in_mission_table(mission_req_table)

Expand All @@ -572,7 +572,7 @@ def get_used_races(mission_req_table: Dict[SC2Campaign, Dict[str, MissionInfo]],
if SC2Mission.ENEMY_WITHIN in missions:
# Zerg units need to be unlocked
races.add(SC2Race.ZERG)
if kerrigan_presence in kerrigan_unit_available \
if kerrigan_presence \
and not missions.isdisjoint({SC2Mission.BACK_IN_THE_SADDLE, SC2Mission.SUPREME, SC2Mission.CONVICTION, SC2Mission.THE_INFINITE_CYCLE}):
# You need some Kerrigan abilities (they're granted if Kerriganless or story tech granted)
races.add(SC2Race.ZERG)
Expand Down
69 changes: 36 additions & 33 deletions worlds/sm64ex/Options.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import typing
from Options import Option, DefaultOnToggle, Range, Toggle, DeathLink, Choice
from dataclasses import dataclass
from Options import DefaultOnToggle, Range, Toggle, DeathLink, Choice, PerGameCommonOptions, OptionSet
from .Items import action_item_table

class EnableCoinStars(DefaultOnToggle):
Expand Down Expand Up @@ -114,35 +115,37 @@ class StrictMoveRequirements(DefaultOnToggle):
if Move Randomization is enabled"""
display_name = "Strict Move Requirements"

def getMoveRandomizerOption(action: str):
class MoveRandomizerOption(Toggle):
"""Mario is unable to perform this action until a corresponding item is picked up.
This option is incompatible with builds using a 'nomoverando' branch."""
display_name = f"Randomize {action}"
return MoveRandomizerOption


sm64_options: typing.Dict[str, type(Option)] = {
"AreaRandomizer": AreaRandomizer,
"BuddyChecks": BuddyChecks,
"ExclamationBoxes": ExclamationBoxes,
"ProgressiveKeys": ProgressiveKeys,
"EnableCoinStars": EnableCoinStars,
"StrictCapRequirements": StrictCapRequirements,
"StrictCannonRequirements": StrictCannonRequirements,
"StrictMoveRequirements": StrictMoveRequirements,
"AmountOfStars": AmountOfStars,
"FirstBowserStarDoorCost": FirstBowserStarDoorCost,
"BasementStarDoorCost": BasementStarDoorCost,
"SecondFloorStarDoorCost": SecondFloorStarDoorCost,
"MIPS1Cost": MIPS1Cost,
"MIPS2Cost": MIPS2Cost,
"StarsToFinish": StarsToFinish,
"death_link": DeathLink,
"CompletionType": CompletionType,
}

for action in action_item_table:
# HACK: Disable randomization of double jump
if action == 'Double Jump': continue
sm64_options[f"MoveRandomizer{action.replace(' ','')}"] = getMoveRandomizerOption(action)
class EnableMoveRandomizer(Toggle):
"""Mario is unable to perform some actions until a corresponding item is picked up.
This option is incompatible with builds using a 'nomoverando' branch.
Specific actions to randomize can be specified in the YAML."""
display_name = "Enable Move Randomizer"

class MoveRandomizerActions(OptionSet):
"""Which actions to randomize when Move Randomizer is enabled"""
display_name = "Randomized Moves"
# HACK: Disable randomization for double jump
valid_keys = [action for action in action_item_table if action != 'Double Jump']
default = valid_keys

@dataclass
class SM64Options(PerGameCommonOptions):
area_rando: AreaRandomizer
buddy_checks: BuddyChecks
exclamation_boxes: ExclamationBoxes
progressive_keys: ProgressiveKeys
enable_coin_stars: EnableCoinStars
enable_move_rando: EnableMoveRandomizer
move_rando_actions: MoveRandomizerActions
strict_cap_requirements: StrictCapRequirements
strict_cannon_requirements: StrictCannonRequirements
strict_move_requirements: StrictMoveRequirements
amount_of_stars: AmountOfStars
first_bowser_star_door_cost: FirstBowserStarDoorCost
basement_star_door_cost: BasementStarDoorCost
second_floor_star_door_cost: SecondFloorStarDoorCost
mips1_cost: MIPS1Cost
mips2_cost: MIPS2Cost
stars_to_finish: StarsToFinish
death_link: DeathLink
completion_type: CompletionType
Loading

0 comments on commit 4d6dbbf

Please sign in to comment.