| 
									
										
										
										
											2023-02-24 01:35:09 -05:00
										 |  |  | import typing | 
					
						
							| 
									
										
										
										
											2024-05-16 12:46:13 -04:00
										 |  |  | from dataclasses import dataclass | 
					
						
							|  |  |  | from Options import Choice, Option, Range, PerGameCommonOptions | 
					
						
							| 
									
										
										
										
											2023-02-24 01:35:09 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class IncomeBoost(Range): | 
					
						
							|  |  |  |     """How much extra income the player gets per turn per boost received.""" | 
					
						
							|  |  |  |     display_name = "Income Boost" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 100 | 
					
						
							|  |  |  |     default = 25 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CommanderDefenseBoost(Range): | 
					
						
							|  |  |  |     """How much extra defense the player's commander gets per boost received.""" | 
					
						
							|  |  |  |     display_name = "Commander Defense Boost" | 
					
						
							|  |  |  |     range_start = 0 | 
					
						
							|  |  |  |     range_end = 8 | 
					
						
							|  |  |  |     default = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CommanderChoice(Choice): | 
					
						
							|  |  |  |     """How the player's commander is selected for missions.
 | 
					
						
							|  |  |  |     Locked Random: The player's commander is randomly predetermined for each level. | 
					
						
							|  |  |  |     Unlockable Factions: The player starts with Mercival and can unlock playable factions. | 
					
						
							|  |  |  |     Random Starting Faction:  The player starts with a random starting faction and can unlock the rest. | 
					
						
							|  |  |  |     When playing with unlockable factions, faction items are added to the pool. | 
					
						
							|  |  |  |     Extra faction items after the first also reward starting Groove charge."""
 | 
					
						
							|  |  |  |     display_name = "Commander Choice" | 
					
						
							|  |  |  |     option_locked_random = 0 | 
					
						
							|  |  |  |     option_unlockable_factions = 1 | 
					
						
							|  |  |  |     option_random_starting_faction = 2 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-16 12:46:13 -04:00
										 |  |  | @dataclass | 
					
						
							|  |  |  | class WargrooveOptions(PerGameCommonOptions): | 
					
						
							|  |  |  |     income_boost: IncomeBoost | 
					
						
							|  |  |  |     commander_defense_boost: CommanderDefenseBoost | 
					
						
							|  |  |  |     commander_choice: CommanderChoice |