Merge remote-tracking branch 'upstream/main' into instruction_patch_kdl3

This commit is contained in:
Silvris
2024-05-17 23:18:24 -05:00
10 changed files with 41 additions and 15 deletions

View File

@@ -67,6 +67,7 @@ Currently, the following games are supported:
* Yoshi's Island
* Mario & Luigi: Superstar Saga
* Bomb Rush Cyberfunk
* Yu-Gi-Oh! Ultimate Masters: World Championship Tournament 2006
For setup and instructions check out our [tutorials page](https://archipelago.gg/tutorial/).
Downloads can be found at [Releases](https://github.com/ArchipelagoMW/Archipelago/releases), including compiled

View File

@@ -203,6 +203,9 @@
# Yoshi's Island
/worlds/yoshisisland/ @PinkSwitch
#Yu-Gi-Oh! Ultimate Masters: World Championship Tournament 2006
/worlds/yugioh06/ @rensen
# Zillion
/worlds/zillion/ @beauxq

View File

@@ -194,6 +194,11 @@ Root: HKCR; Subkey: "{#MyAppName}yipatch"; ValueData: "Archi
Root: HKCR; Subkey: "{#MyAppName}yipatch\DefaultIcon"; ValueData: "{app}\ArchipelagoSNIClient.exe,0"; ValueType: string; ValueName: "";
Root: HKCR; Subkey: "{#MyAppName}yipatch\shell\open\command"; ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1"""; ValueType: string; ValueName: "";
Root: HKCR; Subkey: ".apygo06"; ValueData: "{#MyAppName}ygo06patch"; Flags: uninsdeletevalue; ValueType: string; ValueName: "";
Root: HKCR; Subkey: "{#MyAppName}ygo06patch"; ValueData: "Archipelago Yu-Gi-Oh 2006 Patch"; Flags: uninsdeletekey; ValueType: string; ValueName: "";
Root: HKCR; Subkey: "{#MyAppName}ygo06patch\DefaultIcon"; ValueData: "{app}\ArchipelagoBizHawkClient.exe,0"; ValueType: string; ValueName: "";
Root: HKCR; Subkey: "{#MyAppName}ygo06patch\shell\open\command"; ValueData: """{app}\ArchipelagoBizHawkClient.exe"" ""%1"""; ValueType: string; ValueName: "";
Root: HKCR; Subkey: ".archipelago"; ValueData: "{#MyAppName}multidata"; Flags: uninsdeletevalue; ValueType: string; ValueName: "";
Root: HKCR; Subkey: "{#MyAppName}multidata"; ValueData: "Archipelago Server Data"; Flags: uninsdeletekey; ValueType: string; ValueName: "";
Root: HKCR; Subkey: "{#MyAppName}multidata\DefaultIcon"; ValueData: "{app}\ArchipelagoServer.exe,0"; ValueType: string; ValueName: "";

View File

@@ -504,6 +504,10 @@ class World(metaclass=AutoWorldRegister):
def get_region(self, region_name: str) -> "Region":
return self.multiworld.get_region(region_name, self.player)
@property
def player_name(self) -> str:
return self.multiworld.get_player_name(self.player)
@classmethod
def get_data_package_data(cls) -> "GamesPackage":
sorted_item_name_groups = {

View File

@@ -18,7 +18,7 @@ import subprocess
import threading
import concurrent.futures
import bsdiff4
from typing import Optional, List
from typing import Collection, Optional, List, SupportsIndex
from BaseClasses import CollectionState, Region, Location, MultiWorld
from Utils import local_path, user_path, int16_as_bytes, int32_as_bytes, snes_to_pc, is_frozen, parse_yaml, read_snes_rom
@@ -52,7 +52,7 @@ except:
enemizer_logger = logging.getLogger("Enemizer")
class LocalRom(object):
class LocalRom:
def __init__(self, file, patch=True, vanillaRom=None, name=None, hash=None):
self.name = name
@@ -71,13 +71,13 @@ class LocalRom(object):
def read_byte(self, address: int) -> int:
return self.buffer[address]
def read_bytes(self, startaddress: int, length: int) -> bytes:
def read_bytes(self, startaddress: int, length: int) -> bytearray:
return self.buffer[startaddress:startaddress + length]
def write_byte(self, address: int, value: int):
self.buffer[address] = value
def write_bytes(self, startaddress: int, values):
def write_bytes(self, startaddress: int, values: Collection[SupportsIndex]) -> None:
self.buffer[startaddress:startaddress + len(values)] = values
def encrypt_range(self, startaddress: int, length: int, key: bytes):

View File

@@ -434,7 +434,7 @@ level_music_ids = [
0x21,
]
class LocalRom(object):
class LocalRom:
def __init__(self, file, patch=True, vanillaRom=None, name=None, hash=None):
self.name = name
@@ -457,7 +457,7 @@ class LocalRom(object):
def read_byte(self, address: int) -> int:
return self.buffer[address]
def read_bytes(self, startaddress: int, length: int) -> bytes:
def read_bytes(self, startaddress: int, length: int) -> bytearray:
return self.buffer[startaddress:startaddress + length]
def write_byte(self, address: int, value: int):

View File

@@ -217,8 +217,6 @@ class Overcooked2World(World):
# Autoworld Hooks
def generate_early(self):
self.player_name = self.multiworld.player_name[self.player]
# 0.0 to 1.0 where 1.0 is World Record
self.star_threshold_scale = self.options.star_threshold_scale / 100.0

View File

@@ -1,3 +1,17 @@
# 2.2.0
### Features
- When you blacklist species from wild encounters and turn on dexsanity, blacklisted species are not added as locations
and won't show up in the wild. Previously they would be forced to show up exactly once.
- Added support for some new autotracking events.
### Fixes
- The Lilycove Wailmer now logically block you from the east. Actual game behavior is still unchanged for now.
- Water encounters in Slateport now correctly require Surf.
- Updated the tracker link in the setup guide.
# 2.1.1
### Features
@@ -12,10 +26,11 @@ _Separately released, branching from 2.0.0. Included procedure patch migration,
### Fixes
- Changed "Ho-oh" to "Ho-Oh" in options
- Changed "Ho-oh" to "Ho-Oh" in options.
- Temporary fix to alleviate problems with sometimes not receiving certain items just after connecting if `remote_items`
is `true`.
- Temporarily disable a possible location for Marine Cave to spawn, as its causes an overflow
- Temporarily disable a possible location for Marine Cave to spawn, as it causes an overflow.
- Water encounters in Dewford now correctly require Surf.
# 2.0.0

View File

@@ -83,7 +83,7 @@ class LocalRom:
def read_byte(self, address: int) -> int:
return self.buffer[address]
def read_bytes(self, startaddress: int, length: int) -> bytes:
def read_bytes(self, startaddress: int, length: int) -> bytearray:
return self.buffer[startaddress:startaddress + length]
def write_byte(self, address: int, value: int):

View File

@@ -3,7 +3,7 @@ import os
import Utils
from worlds.Files import APDeltaPatch
from settings import get_settings
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Collection, SupportsIndex
from .Options import YoshiColors, BowserDoor, PlayerGoal, MinigameChecks
@@ -396,7 +396,7 @@ location_table = {
0x30510B: [0x14B2, 4]
}
class LocalRom(object):
class LocalRom:
def __init__(self, file: str) -> None:
self.name = None
@@ -413,13 +413,13 @@ class LocalRom(object):
def read_byte(self, address: int) -> int:
return self.buffer[address]
def read_bytes(self, startaddress: int, length: int) -> bytes:
def read_bytes(self, startaddress: int, length: int) -> bytearray:
return self.buffer[startaddress:startaddress + length]
def write_byte(self, address: int, value: int) -> None:
self.buffer[address] = value
def write_bytes(self, startaddress: int, values: bytearray) -> None:
def write_bytes(self, startaddress: int, values: Collection[SupportsIndex]) -> None:
self.buffer[startaddress:startaddress + len(values)] = values
def write_to_file(self, file: str) -> None: