Skip to content

Commit

Permalink
RECOM update going into PR
Browse files Browse the repository at this point in the history
  • Loading branch information
gaithern committed Aug 19, 2024
1 parent 07405f1 commit cf5f053
Show file tree
Hide file tree
Showing 9 changed files with 1,063 additions and 553 deletions.
5 changes: 4 additions & 1 deletion worlds/khrecom/Client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import sys
import asyncio
import shutil
import logging

import ModuleUpdate
ModuleUpdate.update()
Expand All @@ -11,6 +12,8 @@

item_num = 1

logger = logging.getLogger("Client")

if __name__ == "__main__":
Utils.init_logging("KHRECOMClient", exception_logger="Client")

Expand Down Expand Up @@ -130,7 +133,7 @@ class KHRECOMManager(GameManager):


async def game_watcher(ctx: KHRECOMContext):
from worlds.khrecom.Locations import lookup_id_to_name
from .Locations import lookup_id_to_name
while not ctx.exit_event.is_set():
if ctx.syncing == True:
sync_msg = [{'cmd': 'Sync'}]
Expand Down
443 changes: 219 additions & 224 deletions worlds/khrecom/Items.py

Large diffs are not rendered by default.

170 changes: 85 additions & 85 deletions worlds/khrecom/Locations.py

Large diffs are not rendered by default.

68 changes: 60 additions & 8 deletions worlds/khrecom/Options.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from dataclasses import dataclass

from Options import Choice, Range, Option, Toggle, DeathLink, DefaultOnToggle, OptionSet, PerGameCommonOptions
from Options import Range, Toggle, DefaultOnToggle, OptionSet, PerGameCommonOptions, StartInventoryPool, OptionGroup

class EarlyCure(DefaultOnToggle):
class StartingCure(DefaultOnToggle):
"""
Toggle whether one of the starting checks should include Cure
Toggle whether you should start with a Card Set Cure
"""
display_name = "Early Cure"
display_name = "Starting Cure"

class AttackPower(Range):
"""
Expand All @@ -23,11 +23,14 @@ class DaysLocations(DefaultOnToggle):
"""
display_name = "Days Locations"

class StartingWorlds(Toggle):
class StartingWorlds(Range):
"""
Toggle whether 3 world cards are guaranteed as part of your starting checks.
Number of random world cards to start with in addition to Traverse Town, which is always available.
"""
display_name = "Starting Worlds"
default = 0
range_start = 0
range_end = 11

class ChecksBehindLeon(Toggle):
"""
Expand Down Expand Up @@ -294,7 +297,7 @@ class ExcludeSleights(OptionSet):

@dataclass
class KHRECOMOptions(PerGameCommonOptions):
early_cure: EarlyCure
starting_cure: StartingCure
days_locations: DaysLocations
checks_behind_leon: ChecksBehindLeon
exp_multiplier: EXPMultiplier
Expand Down Expand Up @@ -326,4 +329,53 @@ class KHRECOMOptions(PerGameCommonOptions):
value_9_p_on: Value9POn
exclude_cards: ExcludeCards
exclude_enemy_cards: ExcludeEnemyCards
exclude_sleights: ExcludeSleights
exclude_sleights: ExcludeSleights
start_inventory_from_pool: StartInventoryPool

khrecom_option_groups = [
OptionGroup("Starting", [
StartingCure,
StartingWorlds
]),
OptionGroup("Locations", [
DaysLocations,
ChecksBehindLeon,
ChecksBehindMinigames,
ChecksBehindSleightsLevels
]),
OptionGroup("Stats", [
EXPMultiplier,
AttackPower
]),
OptionGroup("Cards", [
Value0On,
Value1On,
Value2On,
Value3On,
Value4On,
Value5On,
Value6On,
Value7On,
Value8On,
Value9On,
Value0POn,
Value1POn,
Value2POn,
Value3POn,
Value4POn,
Value5POn,
Value6POn,
Value7POn,
Value8POn,
Value9POn,
]),
OptionGroup("Sleights and Enemy Card Counts", [
SleightAmount,
EnemyCardAmount
]),
OptionGroup("Exclusions", [
ExcludeCards,
ExcludeEnemyCards,
ExcludeSleights
]),
]
178 changes: 178 additions & 0 deletions worlds/khrecom/Presets.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
from typing import Any, Dict

from .Options import *

khrecom_option_presets: Dict[str, Dict[str, Any]] = {
# Standard playthrough.
"Standard": {
"starting_cure": True,
"days_locations": False,
"checks_behind_leon": False,
"exp_multiplier": 3,
"minigames": False,
"levels": False,
"attack_power": 10,
"starting_worlds": 0,
"enemy_card_amount": 57,
"sleight_amount": 83,
"value_0_on": 1,
"value_1_on": 1,
"value_2_on": 1,
"value_3_on": 1,
"value_4_on": 1,
"value_5_on": 1,
"value_6_on": 1,
"value_7_on": 1,
"value_8_on": 1,
"value_9_on": 1,
"value_0_p_on": 2,
"value_1_p_on": 2,
"value_2_p_on": 2,
"value_3_p_on": 2,
"value_4_p_on": 2,
"value_5_p_on": 2,
"value_6_p_on": 2,
"value_7_p_on": 2,
"value_8_p_on": 2,
"value_9_p_on": 2,
"exclude_cards": [
"Ultima Weapon",
"Diamond Dust",
"One Winged Angel",
"Soul Eater",
"Star Seeker",
"Total Eclipse",
"Midnight Roar",
"Maverick Flare",
"Two Become One",
"Bond of Flame"],
"exclude_enemy_cards": [
"Lexaeus",
"Ansem",
"Zexion",
"Xemnas",
"Xigbar",
"Xaldin",
"Saix",
"Demyx",
"Luxord",
"Roxas"],
"exclude_sleights": []
},
# No Zeroes playthrough.
"No Zeroes": {
"starting_cure": True,
"days_locations": False,
"checks_behind_leon": False,
"exp_multiplier": 3,
"minigames": False,
"levels": False,
"attack_power": 10,
"starting_worlds": 0,
"enemy_card_amount": 57,
"sleight_amount": 83,
"value_0_on": 0,
"value_1_on": 1,
"value_2_on": 1,
"value_3_on": 1,
"value_4_on": 1,
"value_5_on": 1,
"value_6_on": 1,
"value_7_on": 1,
"value_8_on": 1,
"value_9_on": 1,
"value_0_p_on": 0,
"value_1_p_on": 2,
"value_2_p_on": 2,
"value_3_p_on": 2,
"value_4_p_on": 2,
"value_5_p_on": 2,
"value_6_p_on": 2,
"value_7_p_on": 2,
"value_8_p_on": 2,
"value_9_p_on": 2,
"exclude_cards": [
"Ultima Weapon",
"Diamond Dust",
"One Winged Angel",
"Soul Eater",
"Star Seeker",
"Total Eclipse",
"Midnight Roar",
"Maverick Flare",
"Two Become One",
"Bond of Flame"],
"exclude_enemy_cards": [
"Lexaeus",
"Ansem",
"Zexion",
"Xemnas",
"Xigbar",
"Xaldin",
"Saix",
"Demyx",
"Luxord",
"Roxas"],
"exclude_sleights": []
},
# Low Value playthrough.
"Low Value": {
"starting_cure": True,
"days_locations": False,
"checks_behind_leon": False,
"exp_multiplier": 3,
"minigames": False,
"levels": False,
"attack_power": 10,
"starting_worlds": 0,
"enemy_card_amount": 57,
"sleight_amount": 83,
"value_0_on": 0,
"value_1_on": 1,
"value_2_on": 1,
"value_3_on": 1,
"value_4_on": 1,
"value_5_on": 1,
"value_6_on": 0,
"value_7_on": 0,
"value_8_on": 0,
"value_9_on": 0,
"value_0_p_on": 0,
"value_1_p_on": 2,
"value_2_p_on": 2,
"value_3_p_on": 2,
"value_4_p_on": 2,
"value_5_p_on": 2,
"value_6_p_on": 0,
"value_7_p_on": 0,
"value_8_p_on": 0,
"value_9_p_on": 0,
"exclude_cards": [
"Ultima Weapon",
"Diamond Dust",
"One Winged Angel",
"Soul Eater",
"Star Seeker",
"Total Eclipse",
"Midnight Roar",
"Maverick Flare",
"Two Become One",
"Bond of Flame"],
"exclude_enemy_cards": [
"Lexaeus",
"Ansem",
"Zexion",
"Xemnas",
"Xigbar",
"Xaldin",
"Saix",
"Demyx",
"Luxord",
"Roxas"],
"exclude_sleights": [
"Stun Impact",
"Strike Raid",
"Zantetsuken",
"Sonic Blade"]
}
}
3 changes: 0 additions & 3 deletions worlds/khrecom/Regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,22 +135,19 @@ def create_regions(multiworld: MultiWorld, player: int, options):
regions["Twilight Town"].locations.append("Twilight Town Room of Beginnings (Enemy Cards Vexen)")
if options.days_locations:
regions["Twilight Town"].locations.append("Twilight Town Room of Rewards (Enemy Cards Roxas)")
#regions["Twilight Town"].locations.append("Twilight Town Bounty (Enemy Cards Ansem)")

regions["Destiny Islands"].locations.append("Destiny Islands Room of Guidance (Attack Cards Oathkeeper)")
regions["Destiny Islands"].locations.append("Destiny Islands Room of Beginnings")
regions["Destiny Islands"].locations.append("Destiny Islands Room of Guidance")
regions["Destiny Islands"].locations.append("Destiny Islands Room of Guidance (Enemy Cards Darkside)")
regions["Destiny Islands"].locations.append("Destiny Islands Room of Rewards (Item Cards Megalixir)")
if options.days_locations:
#regions["Destiny Islands"].locations.append("Destiny Islands Bounty (Enemy Cards Zexion)")
regions["Destiny Islands"].locations.append("Destiny Islands Room of Rewards (Attack Cards Two Become One)")

regions["Castle Oblivion"].locations.append("Castle Oblivion Field Marluxia")
regions["Castle Oblivion"].locations.append("Castle Oblivion Room of Beginnings")
regions["Castle Oblivion"].locations.append("Castle Oblivion Room of Beginnings (Enemy Cards Axel)")
if options.days_locations:
#regions["Castle Oblivion"].locations.append("Castle Oblivion Bounty (Enemy Cards Lexaeus)")
regions["Castle Oblivion"].locations.append("Castle Oblivion Room of Rewards (Attack Cards Star Seeker)")

regions["Castle Oblivion"].locations.append("Final Marluxia")
Expand Down
Loading

0 comments on commit cf5f053

Please sign in to comment.