TUNIC: Add option groups, fix option descriptions (#3344)
* Add option groups, fix up option descriptions * Change sword progression description back * Add missed newline change, missed space after asterisk
This commit is contained in:
parent
62e68ba1cc
commit
e7544d835c
|
@ -8,7 +8,7 @@ from .er_rules import set_er_location_rules
|
|||
from .regions import tunic_regions
|
||||
from .er_scripts import create_er_regions
|
||||
from .er_data import portal_mapping
|
||||
from .options import TunicOptions, EntranceRando
|
||||
from .options import TunicOptions, EntranceRando, tunic_option_groups
|
||||
from worlds.AutoWorld import WebWorld, World
|
||||
from worlds.generic import PlandoConnection
|
||||
from decimal import Decimal, ROUND_HALF_UP
|
||||
|
@ -27,6 +27,7 @@ class TunicWeb(WebWorld):
|
|||
]
|
||||
theme = "grassFlowers"
|
||||
game = "TUNIC"
|
||||
option_groups = tunic_option_groups
|
||||
|
||||
|
||||
class TunicItem(Item):
|
||||
|
|
|
@ -1,28 +1,36 @@
|
|||
from dataclasses import dataclass
|
||||
|
||||
from Options import DefaultOnToggle, Toggle, StartInventoryPool, Choice, Range, TextChoice, PerGameCommonOptions
|
||||
from Options import (DefaultOnToggle, Toggle, StartInventoryPool, Choice, Range, TextChoice, PerGameCommonOptions,
|
||||
OptionGroup)
|
||||
|
||||
|
||||
class SwordProgression(DefaultOnToggle):
|
||||
"""Adds four sword upgrades to the item pool that will progressively grant stronger melee weapons, including two new swords with increased range and attack power."""
|
||||
"""
|
||||
Adds four sword upgrades to the item pool that will progressively grant stronger melee weapons, including two new swords with increased range and attack power.
|
||||
"""
|
||||
internal_name = "sword_progression"
|
||||
display_name = "Sword Progression"
|
||||
|
||||
|
||||
class StartWithSword(Toggle):
|
||||
"""Start with a sword in the player's inventory. Does not count towards Sword Progression."""
|
||||
"""
|
||||
Start with a sword in the player's inventory. Does not count towards Sword Progression.
|
||||
"""
|
||||
internal_name = "start_with_sword"
|
||||
display_name = "Start With Sword"
|
||||
|
||||
|
||||
class KeysBehindBosses(Toggle):
|
||||
"""Places the three hexagon keys behind their respective boss fight in your world."""
|
||||
"""
|
||||
Places the three hexagon keys behind their respective boss fight in your world.
|
||||
"""
|
||||
internal_name = "keys_behind_bosses"
|
||||
display_name = "Keys Behind Bosses"
|
||||
|
||||
|
||||
class AbilityShuffling(Toggle):
|
||||
"""Locks the usage of Prayer, Holy Cross*, and the Icebolt combo until the relevant pages of the manual have been found.
|
||||
"""
|
||||
Locks the usage of Prayer, Holy Cross*, and the Icebolt combo until the relevant pages of the manual have been found.
|
||||
If playing Hexagon Quest, abilities are instead randomly unlocked after obtaining 25%, 50%, and 75% of the required Hexagon goal amount.
|
||||
* Certain Holy Cross usages are still allowed, such as the free bomb codes, the seeking spell, and other player-facing codes.
|
||||
"""
|
||||
|
@ -52,21 +60,27 @@ class LogicRules(Choice):
|
|||
|
||||
|
||||
class Lanternless(Toggle):
|
||||
"""Choose whether you require the Lantern for dark areas.
|
||||
When enabled, the Lantern is marked as Useful instead of Progression."""
|
||||
"""
|
||||
Choose whether you require the Lantern for dark areas.
|
||||
When enabled, the Lantern is marked as Useful instead of Progression.
|
||||
"""
|
||||
internal_name = "lanternless"
|
||||
display_name = "Lanternless"
|
||||
|
||||
|
||||
class Maskless(Toggle):
|
||||
"""Choose whether you require the Scavenger's Mask for Lower Quarry.
|
||||
When enabled, the Scavenger's Mask is marked as Useful instead of Progression."""
|
||||
"""
|
||||
Choose whether you require the Scavenger's Mask for Lower Quarry.
|
||||
When enabled, the Scavenger's Mask is marked as Useful instead of Progression.
|
||||
"""
|
||||
internal_name = "maskless"
|
||||
display_name = "Maskless"
|
||||
|
||||
|
||||
class FoolTraps(Choice):
|
||||
"""Replaces low-to-medium value money rewards in the item pool with fool traps, which cause random negative effects to the player."""
|
||||
"""
|
||||
Replaces low-to-medium value money rewards in the item pool with fool traps, which cause random negative effects to the player.
|
||||
"""
|
||||
internal_name = "fool_traps"
|
||||
display_name = "Fool Traps"
|
||||
option_off = 0
|
||||
|
@ -77,13 +91,17 @@ class FoolTraps(Choice):
|
|||
|
||||
|
||||
class HexagonQuest(Toggle):
|
||||
"""An alternate goal that shuffles Gold "Questagon" items into the item pool and allows the game to be completed after collecting the required number of them."""
|
||||
"""
|
||||
An alternate goal that shuffles Gold "Questagon" items into the item pool and allows the game to be completed after collecting the required number of them.
|
||||
"""
|
||||
internal_name = "hexagon_quest"
|
||||
display_name = "Hexagon Quest"
|
||||
|
||||
|
||||
class HexagonGoal(Range):
|
||||
"""How many Gold Questagons are required to complete the game on Hexagon Quest."""
|
||||
"""
|
||||
How many Gold Questagons are required to complete the game on Hexagon Quest.
|
||||
"""
|
||||
internal_name = "hexagon_goal"
|
||||
display_name = "Gold Hexagons Required"
|
||||
range_start = 15
|
||||
|
@ -92,7 +110,9 @@ class HexagonGoal(Range):
|
|||
|
||||
|
||||
class ExtraHexagonPercentage(Range):
|
||||
"""How many extra Gold Questagons are shuffled into the item pool, taken as a percentage of the goal amount."""
|
||||
"""
|
||||
How many extra Gold Questagons are shuffled into the item pool, taken as a percentage of the goal amount.
|
||||
"""
|
||||
internal_name = "extra_hexagon_percentage"
|
||||
display_name = "Percentage of Extra Gold Hexagons"
|
||||
range_start = 0
|
||||
|
@ -118,16 +138,20 @@ class EntranceRando(TextChoice):
|
|||
|
||||
|
||||
class FixedShop(Toggle):
|
||||
"""Forces the Windmill entrance to lead to a shop, and removes the remaining shops from the pool.
|
||||
"""
|
||||
Forces the Windmill entrance to lead to a shop, and removes the remaining shops from the pool.
|
||||
Adds another entrance in Rooted Ziggurat Lower to keep an even number of entrances.
|
||||
Has no effect if Entrance Rando is not enabled."""
|
||||
Has no effect if Entrance Rando is not enabled.
|
||||
"""
|
||||
internal_name = "fixed_shop"
|
||||
display_name = "Fewer Shops in Entrance Rando"
|
||||
|
||||
|
||||
class LaurelsLocation(Choice):
|
||||
"""Force the Hero's Laurels to be placed at a location in your world.
|
||||
For if you want to avoid or specify early or late Laurels."""
|
||||
"""
|
||||
Force the Hero's Laurels to be placed at a location in your world.
|
||||
For if you want to avoid or specify early or late Laurels.
|
||||
"""
|
||||
internal_name = "laurels_location"
|
||||
display_name = "Laurels Location"
|
||||
option_anywhere = 0
|
||||
|
@ -138,9 +162,12 @@ class LaurelsLocation(Choice):
|
|||
|
||||
|
||||
class ShuffleLadders(Toggle):
|
||||
"""Turns several ladders in the game into items that must be found before they can be climbed on.
|
||||
"""
|
||||
Turns several ladders in the game into items that must be found before they can be climbed on.
|
||||
Adds more layers of progression to the game by blocking access to many areas early on.
|
||||
"Ladders were a mistake." —Andrew Shouldice"""
|
||||
"Ladders were a mistake."
|
||||
—Andrew Shouldice
|
||||
"""
|
||||
internal_name = "shuffle_ladders"
|
||||
display_name = "Shuffle Ladders"
|
||||
|
||||
|
@ -163,3 +190,12 @@ class TunicOptions(PerGameCommonOptions):
|
|||
lanternless: Lanternless
|
||||
maskless: Maskless
|
||||
laurels_location: LaurelsLocation
|
||||
|
||||
|
||||
tunic_option_groups = [
|
||||
OptionGroup("Logic Options", [
|
||||
LogicRules,
|
||||
Lanternless,
|
||||
Maskless,
|
||||
])
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue