196 lines
5.6 KiB
Python
196 lines
5.6 KiB
Python
from dataclasses import dataclass
|
|
|
|
from Options import Choice, DefaultOnToggle, PerGameCommonOptions, Range, Toggle
|
|
|
|
|
|
class StructureDeck(Choice):
|
|
"""Which Structure Deck you start with"""
|
|
|
|
display_name = "Structure Deck"
|
|
option_dragons_roar = 0
|
|
option_zombie_madness = 1
|
|
option_blazing_destruction = 2
|
|
option_fury_from_the_deep = 3
|
|
option_warriors_triumph = 4
|
|
option_spellcasters_judgement = 5
|
|
option_none = 6
|
|
option_random_deck = 7
|
|
default = 7
|
|
|
|
|
|
class Banlist(Choice):
|
|
"""Which Banlist you start with"""
|
|
|
|
display_name = "Banlist"
|
|
option_no_banlist = 0
|
|
option_september_2003 = 1
|
|
option_march_2004 = 2
|
|
option_september_2004 = 3
|
|
option_march_2005 = 4
|
|
option_september_2005 = 5
|
|
default = option_september_2005
|
|
|
|
|
|
class FinalCampaignBossUnlockCondition(Choice):
|
|
"""How to unlock the final campaign boss and goal for the world"""
|
|
|
|
display_name = "Final Campaign Boss unlock Condition"
|
|
option_campaign_opponents = 0
|
|
option_challenges = 1
|
|
|
|
|
|
class FourthTier5UnlockCondition(Choice):
|
|
"""How to unlock the fourth campaign boss"""
|
|
|
|
display_name = "Fourth Tier 5 Campaign Boss unlock Condition"
|
|
option_campaign_opponents = 0
|
|
option_challenges = 1
|
|
|
|
|
|
class ThirdTier5UnlockCondition(Choice):
|
|
"""How to unlock the third campaign boss"""
|
|
|
|
display_name = "Third Tier 5 Campaign Boss unlock Condition"
|
|
option_campaign_opponents = 0
|
|
option_challenges = 1
|
|
|
|
|
|
class FinalCampaignBossChallenges(Range):
|
|
"""Number of Limited/Theme Duels completed for the Final Campaign Boss to appear"""
|
|
|
|
display_name = "Final Campaign Boss challenges unlock amount"
|
|
range_start = 0
|
|
range_end = 91
|
|
default = 10
|
|
|
|
|
|
class FourthTier5CampaignBossChallenges(Range):
|
|
"""Number of Limited/Theme Duels completed for the Fourth Level 5 Campaign Opponent to appear"""
|
|
|
|
display_name = "Fourth Tier 5 Campaign Boss unlock amount"
|
|
range_start = 0
|
|
range_end = 91
|
|
default = 5
|
|
|
|
|
|
class ThirdTier5CampaignBossChallenges(Range):
|
|
"""Number of Limited/Theme Duels completed for the Third Level 5 Campaign Opponent to appear"""
|
|
|
|
display_name = "Third Tier 5 Campaign Boss unlock amount"
|
|
range_start = 0
|
|
range_end = 91
|
|
default = 2
|
|
|
|
|
|
class FinalCampaignBossCampaignOpponents(Range):
|
|
"""Number of Campaign Opponents Duels defeated for the Final Campaign Boss to appear"""
|
|
|
|
display_name = "Final Campaign Boss campaign opponent unlock amount"
|
|
range_start = 0
|
|
range_end = 24
|
|
default = 12
|
|
|
|
|
|
class FourthTier5CampaignBossCampaignOpponents(Range):
|
|
"""Number of Campaign Opponents Duels defeated for the Fourth Level 5 Campaign Opponent to appear"""
|
|
|
|
display_name = "Fourth Tier 5 Campaign Boss campaign opponent unlock amount"
|
|
range_start = 0
|
|
range_end = 23
|
|
default = 7
|
|
|
|
|
|
class ThirdTier5CampaignBossCampaignOpponents(Range):
|
|
"""Number of Campaign Opponents Duels defeated for the Third Level 5 Campaign Opponent to appear"""
|
|
|
|
display_name = "Third Tier 5 Campaign Boss campaign opponent unlock amount"
|
|
range_start = 0
|
|
range_end = 22
|
|
default = 3
|
|
|
|
|
|
class NumberOfChallenges(Range):
|
|
"""Number of random Limited/Theme Duels that are included. The rest will be inaccessible."""
|
|
|
|
display_name = "Number of Challenges"
|
|
range_start = 0
|
|
range_end = 91
|
|
default = 10
|
|
|
|
|
|
class StartingMoney(Range):
|
|
"""The amount of money you start with"""
|
|
|
|
display_name = "Starting Money"
|
|
range_start = 0
|
|
range_end = 100000
|
|
default = 3000
|
|
|
|
|
|
class MoneyRewardMultiplier(Range):
|
|
"""By which amount the campaign reward money is multiplied"""
|
|
|
|
display_name = "Money Reward Multiplier"
|
|
range_start = 1
|
|
range_end = 255
|
|
default = 20
|
|
|
|
|
|
class NormalizeBoostersPacks(DefaultOnToggle):
|
|
"""If enabled every booster pack costs the same otherwise vanilla cost is used"""
|
|
|
|
display_name = "Normalize Booster Packs"
|
|
|
|
|
|
class BoosterPackPrices(Range):
|
|
"""
|
|
Only Works if normalize booster packs is enabled.
|
|
Sets the amount that what every booster pack costs.
|
|
"""
|
|
|
|
display_name = "Booster Pack Prices"
|
|
range_start = 1
|
|
range_end = 3000
|
|
default = 100
|
|
|
|
|
|
class AddEmptyBanList(Toggle):
|
|
"""Adds a Ban List where everything is at 3 to the item pool"""
|
|
|
|
display_name = "Add Empty Ban List"
|
|
|
|
|
|
class CampaignOpponentsShuffle(Toggle):
|
|
"""Replaces the campaign with random opponents from the entire game"""
|
|
|
|
display_name = "Campaign Opponents Shuffle"
|
|
|
|
|
|
class OCGArts(Toggle):
|
|
"""Always use the OCG artworks for cards"""
|
|
|
|
display_name = "OCG Arts"
|
|
|
|
|
|
@dataclass
|
|
class Yugioh06Options(PerGameCommonOptions):
|
|
structure_deck: StructureDeck
|
|
banlist: Banlist
|
|
final_campaign_boss_unlock_condition: FinalCampaignBossUnlockCondition
|
|
fourth_tier_5_campaign_boss_unlock_condition: FourthTier5UnlockCondition
|
|
third_tier_5_campaign_boss_unlock_condition: ThirdTier5UnlockCondition
|
|
final_campaign_boss_challenges: FinalCampaignBossChallenges
|
|
fourth_tier_5_campaign_boss_challenges: FourthTier5CampaignBossChallenges
|
|
third_tier_5_campaign_boss_challenges: ThirdTier5CampaignBossChallenges
|
|
final_campaign_boss_campaign_opponents: FinalCampaignBossCampaignOpponents
|
|
fourth_tier_5_campaign_boss_campaign_opponents: FourthTier5CampaignBossCampaignOpponents
|
|
third_tier_5_campaign_boss_campaign_opponents: ThirdTier5CampaignBossCampaignOpponents
|
|
number_of_challenges: NumberOfChallenges
|
|
starting_money: StartingMoney
|
|
money_reward_multiplier: MoneyRewardMultiplier
|
|
normalize_boosters_packs: NormalizeBoostersPacks
|
|
booster_pack_prices: BoosterPackPrices
|
|
add_empty_banlist: AddEmptyBanList
|
|
campaign_opponents_shuffle: CampaignOpponentsShuffle
|
|
ocg_arts: OCGArts
|