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
 |