Celeste 64: v1.2 Content Update (#3210)

* Cleanup and new option support

* Handle new locations

* Support higher Strawberry counts

* Don't add start inventory items to the pool

* Support Move Shuffle functionality and items

* Hard and Move Shuffle Logic

* Fix Options

* Update CHANGELOG.md

* Add standard moves logic for signs 3 and 4

* Fix Option Tooltip

* Add tracker link to setup guide

* Fix unit test

* Fix option tooltips

* Missing Space

* Move option checking out of rule function

* Delete just_gen500.bat
This commit is contained in:
PoryGone
2024-05-05 02:58:49 -04:00
committed by GitHub
parent 7e61211365
commit 5fae1c087e
9 changed files with 676 additions and 274 deletions

View File

@@ -1,25 +1,124 @@
from dataclasses import dataclass
from Options import Range, DeathLink, PerGameCommonOptions
from Options import Choice, Range, Toggle, DeathLink, PerGameCommonOptions
class StrawberriesRequired(Range):
"""How many Strawberries you must receive to finish"""
display_name = "Strawberries Required"
range_start = 0
range_end = 20
default = 15
class DeathLinkAmnesty(Range):
"""How many deaths it takes to send a DeathLink"""
"""
How many deaths it takes to send a DeathLink
"""
display_name = "Death Link Amnesty"
range_start = 1
range_end = 30
default = 10
class TotalStrawberries(Range):
"""
How many Strawberries exist
"""
display_name = "Total Strawberries"
range_start = 0
range_end = 46
default = 20
class StrawberriesRequiredPercentage(Range):
"""
Percentage of existing Strawberries you must receive to finish
"""
display_name = "Strawberries Required Percentage"
range_start = 0
range_end = 100
default = 80
class LogicDifficulty(Choice):
"""
Whether the logic expects you to play the intended way, or to be able to use advanced tricks and skips
"""
display_name = "Logic Difficulty"
option_standard = 0
option_hard = 1
default = 0
class MoveShuffle(Toggle):
"""
Whether the following base movement abilities are shuffled into the item pool:
- Ground Dash
- Air Dash
- Skid Jump
- Climb
NOTE: Having Move Shuffle and Standard Logic Difficulty will guarantee that one of the four Move items will be immediately accessible
WARNING: Combining Move Shuffle and Hard Logic Difficulty can require very difficult tricks
"""
display_name = "Move Shuffle"
class Friendsanity(Toggle):
"""
Whether chatting with your friends grants location checks
"""
display_name = "Friendsanity"
class Signsanity(Toggle):
"""
Whether reading signs grants location checks
"""
display_name = "Signsanity"
class Carsanity(Toggle):
"""
Whether riding on cars grants location checks
"""
display_name = "Carsanity"
class BadelineChaserSource(Choice):
"""
What type of action causes more Badeline Chasers to start spawning
Locations: The number of locations you've checked contributes to Badeline Chasers
Strawberries: The number of Strawberry items you've received contributes to Badeline Chasers
"""
display_name = "Badeline Chaser Source"
option_locations = 0
option_strawberries = 1
default = 0
class BadelineChaserFrequency(Range):
"""
How many of the `Badeline Chaser Source` actions must occur to make each Badeline Chaser start spawning
NOTE: Choosing `0` disables Badeline Chasers entirely
WARNING: Turning on Badeline Chasers alongside Move Shuffle could result in extremely difficult situations
"""
display_name = "Badeline Chaser Frequency"
range_start = 0
range_end = 10
default = 0
class BadelineChaserSpeed(Range):
"""
How many seconds behind you each Badeline Chaser will be
"""
display_name = "Badeline Chaser Speed"
range_start = 2
range_end = 10
default = 3
@dataclass
class Celeste64Options(PerGameCommonOptions):
death_link: DeathLink
death_link_amnesty: DeathLinkAmnesty
strawberries_required: StrawberriesRequired
total_strawberries: TotalStrawberries
strawberries_required_percentage: StrawberriesRequiredPercentage
logic_difficulty: LogicDifficulty
move_shuffle: MoveShuffle
friendsanity: Friendsanity
signsanity: Signsanity
carsanity: Carsanity
badeline_chaser_source: BadelineChaserSource
badeline_chaser_frequency: BadelineChaserFrequency
badeline_chaser_speed: BadelineChaserSpeed