| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  | from typing import Union, List, Tuple | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RecipeSource: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"RecipeSource" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class StarterSource(RecipeSource): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"StarterSource" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ArchipelagoSource(RecipeSource): | 
					
						
							|  |  |  |     ap_item: Tuple[str] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, ap_item: Union[str, List[str]]): | 
					
						
							|  |  |  |         if isinstance(ap_item, str): | 
					
						
							|  |  |  |             ap_item = [ap_item] | 
					
						
							|  |  |  |         self.ap_item = tuple(ap_item) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"ArchipelagoSource {self.ap_item}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class LogicSource(RecipeSource): | 
					
						
							|  |  |  |     logic_rule: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, logic_rule: str): | 
					
						
							|  |  |  |         self.logic_rule = logic_rule | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"LogicSource {self.logic_rule}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class QueenOfSauceSource(RecipeSource): | 
					
						
							|  |  |  |     year: int | 
					
						
							|  |  |  |     season: str | 
					
						
							|  |  |  |     day: int | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, year: int, season: str, day: int): | 
					
						
							|  |  |  |         self.year = year | 
					
						
							|  |  |  |         self.season = season | 
					
						
							|  |  |  |         self.day = day | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"QueenOfSauceSource at year {self.year} {self.season} {self.day}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class QuestSource(RecipeSource): | 
					
						
							|  |  |  |     quest: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, quest: str): | 
					
						
							|  |  |  |         self.quest = quest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"QuestSource at quest {self.quest}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FriendshipSource(RecipeSource): | 
					
						
							|  |  |  |     friend: str | 
					
						
							|  |  |  |     hearts: int | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, friend: str, hearts: int): | 
					
						
							|  |  |  |         self.friend = friend | 
					
						
							|  |  |  |         self.hearts = hearts | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"FriendshipSource at {self.friend} {self.hearts} <3" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CutsceneSource(FriendshipSource): | 
					
						
							|  |  |  |     region: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, region: str, friend: str, hearts: int): | 
					
						
							|  |  |  |         super().__init__(friend, hearts) | 
					
						
							|  |  |  |         self.region = region | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"CutsceneSource at {self.region}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SkillSource(RecipeSource): | 
					
						
							|  |  |  |     skill: str | 
					
						
							|  |  |  |     level: int | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, skill: str, level: int): | 
					
						
							|  |  |  |         self.skill = skill | 
					
						
							|  |  |  |         self.level = level | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"SkillSource at level {self.level} {self.skill}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												Stardew Valley 6.x.x: The Content Update (#3478)
Focus of the Update: Compatibility with Stardew Valley 1.6 Released on March 19th 2024
This includes randomization for pretty much all of the new content, including but not limited to
- Raccoon Bundles
- Booksanity
- Skill Masteries
- New Recipes, Craftables, Fish, Maps, Farm Type, Festivals and Quests
This also includes a significant reorganisation of the code into "Content Packs", to allow for easier modularity of various game mechanics between the settings and the supported mods. This improves maintainability quite a bit.
In addition to that, a few **very** requested new features have been introduced, although they weren't the focus of this update
- Walnutsanity
- Player Buffs
- More customizability in settings, such as shorter special orders, ER without farmhouse
- New Remixed Bundles
											
										 
											2024-07-07 16:04:25 +03:00
										 |  |  | class MasterySource(RecipeSource): | 
					
						
							|  |  |  |     skill: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, skill: str): | 
					
						
							|  |  |  |         self.skill = skill | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"MasterySource at level {self.level} {self.skill}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  | class ShopSource(RecipeSource): | 
					
						
							|  |  |  |     region: str | 
					
						
							|  |  |  |     price: int | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, region: str, price: int): | 
					
						
							|  |  |  |         self.region = region | 
					
						
							|  |  |  |         self.price = price | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"ShopSource at {self.region} costing {self.price}g" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ShopFriendshipSource(RecipeSource): | 
					
						
							|  |  |  |     friend: str | 
					
						
							|  |  |  |     hearts: int | 
					
						
							|  |  |  |     region: str | 
					
						
							|  |  |  |     price: int | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, friend: str, hearts: int, region: str, price: int): | 
					
						
							|  |  |  |         self.friend = friend | 
					
						
							|  |  |  |         self.hearts = hearts | 
					
						
							|  |  |  |         self.region = region | 
					
						
							|  |  |  |         self.price = price | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"ShopFriendshipSource at {self.region} costing {self.price}g when {self.friend} has {self.hearts} hearts" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FestivalShopSource(ShopSource): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, region: str, price: int): | 
					
						
							|  |  |  |         super().__init__(region, price) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ShopTradeSource(ShopSource): | 
					
						
							|  |  |  |     currency: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, region: str, currency: str, price: int): | 
					
						
							|  |  |  |         super().__init__(region, price) | 
					
						
							|  |  |  |         self.currency = currency | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"ShopTradeSource at {self.region} costing {self.price} {self.currency}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SpecialOrderSource(RecipeSource): | 
					
						
							|  |  |  |     special_order: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, special_order: str): | 
					
						
							|  |  |  |         self.special_order = special_order | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __repr__(self): | 
					
						
							|  |  |  |         return f"SpecialOrderSource from {self.special_order}" |