forked from mirror/Archipelago
Some checks failed
Analyze modified files / flake8 (push) Failing after 2m28s
Build / build-win (push) Has been cancelled
Build / build-ubuntu2204 (push) Has been cancelled
ctest / Test C++ ubuntu-latest (push) Has been cancelled
ctest / Test C++ windows-latest (push) Has been cancelled
Analyze modified files / mypy (push) Has been cancelled
Build and Publish Docker Images / Push Docker image to Docker Hub (push) Successful in 5m4s
Native Code Static Analysis / scan-build (push) Failing after 5m2s
type check / pyright (push) Successful in 1m7s
unittests / Test Python 3.11.2 ubuntu-latest (push) Failing after 16m23s
unittests / Test Python 3.12 ubuntu-latest (push) Failing after 28m19s
unittests / Test Python 3.13 ubuntu-latest (push) Failing after 14m49s
unittests / Test hosting with 3.13 on ubuntu-latest (push) Successful in 5m0s
unittests / Test Python 3.13 macos-latest (push) Has been cancelled
unittests / Test Python 3.11 windows-latest (push) Has been cancelled
unittests / Test Python 3.13 windows-latest (push) Has been cancelled
46 lines
2.0 KiB
Python
46 lines
2.0 KiB
Python
import typing
|
|
|
|
class Mail:
|
|
id: int
|
|
name: str
|
|
mission_unlock_id: int # Value is -1 if it is a special case (not tied to mission ID)
|
|
|
|
def __init__(self, _id: int, name: str, unlock_id: int):
|
|
self.id = _id
|
|
self.name = name
|
|
self.mission_unlock_id = unlock_id
|
|
|
|
|
|
def __str__(self) -> str:
|
|
return (
|
|
f"{self.name} "
|
|
)
|
|
|
|
all_mail: typing.Tuple[Mail, ...] = (
|
|
Mail(0x0, "New Parts Added (1)", -1), # After doing 10 Missions
|
|
Mail(0x1, "New Parts Added (2)", -1), # After doing 20 Missions
|
|
Mail(0x2, "Human Plus", -1), # After doing 13 Missions
|
|
Mail(0x3, "To All New Ravens", 0x0), # Raven Test
|
|
Mail(0x4, "Reclaiming the Facility", 0x25), # Reclaim Oil Facility
|
|
Mail(0x5, "Struggle", 0x25), # Reclaim Oil Facility
|
|
Mail(0x6, "Terrorists in the Shadows", 0x1f), # Eliminate Squatters (2)
|
|
Mail(0x7, "Chrome and Murakumo", 0x1f), # Eliminate Squatters (2)
|
|
Mail(0x8, "Thanks", 0x2), # Remove Gun Emplacement
|
|
Mail(0x9, "Ranking Raven", 0x1c), # Attack Urban Center
|
|
Mail(0xa, "EERC", 0x3), # Rescue Survey Team
|
|
Mail(0xb, "Chemical-Dyne Co", 0x9), # Destroy Fuel Depot
|
|
Mail(0xc, "The Red AC", 0x8), # Guard Freight Train
|
|
Mail(0xd, "Factory Assault Report", 0x6), # Secret Factory Recon
|
|
Mail(0xe, "Factory Affair Report", 0x28), # Guard Factory Entrance
|
|
Mail(0xf, "Giant Organisms", 0x7), # Exterminate Organisms (1)
|
|
Mail(0x10, "Plus", 0x18), # Destroy Plus Escapee
|
|
Mail(0x11, "Relics of the Past", 0x26), # Recover Capsules
|
|
# Mail(0x12, "Above Ground", ???), # Unknown requirement? Seems to appear after Guard Airplane on Chrome route? Might be tied to path progression
|
|
Mail(0x13, "Struggle's Demise", 0x2c), # Kill "Struggle" Leader
|
|
Mail(0x14, "???", 0x12), # Remove Base Occupants
|
|
Mail(0x15, "Biological Weapons", 0x2a), # Release Organisms
|
|
Mail(0x16, "Imminent Storm's Demise", 0x2b) # Retake Air Cleaner
|
|
)
|
|
|
|
id_to_mail = {mail.id: mail for mail in all_mail}
|
|
name_to_mail = {mail.name: mail for mail in all_mail} |