 1873c52aa6
			
		
	
	1873c52aa6
	
	
	
		
			
			* Terraria integration * Precollected items for debugging * Fix item classification * Golem requires Plantera's Bulb * Pumpkin Moon requires Dungeon * Progressive Dungeon * Reorg, Options.py work * Items are boss flags * Removed unused option * Removed nothing * Wall, Plantera, and Zenith goals * Achievements and items * Fixed The Cavalry and Completely Awesome achievements * Made "Dead Men Tell No Tales" a grindy achievement * Some docs, Python 3.8 compat * docs * Fix extra item and "Head in the Clouds" being included when achievements are disabled * Requested changes * Fix potential thread unsafety, replace Nothing with 50 Silver * Remove a log * Corrected heading * Added incompatible mods list * In-progress calamity integration * Terraria events progress * Rules use events * Removed an intentional crash I accidentally left in * Fixed infinite loop * Moved rules to data file * Moved item rewards to data file * Generating from data file * Fixed broken Mech Boss goal * Changes Calamity makes to vanilla rules, Calamity final bosses goal * Added Deerclops, fixed Zenith goal * Final detailed vanilla pass * Disable calamity goals * Typo * Fixed some reward items not adding to item pool * In-progress unit test fixes * Unit test fixes * `.apworld` compat * Organized rewards file, made Frog Leg and Fllpper available in vanilla * Water Walking Boots and Titan Glove rewards * Add goals to slot data * Fixed Hammush logic in Post-Mech goal * Fixed coin rewards * Updated Terraria docs * Formatted * Deathlink in-progress * Boots of the Hero is grindy * Fixed zenith goal not placing an item * Address review * Gelatin World Tour is grindy * Difficulty notice * Switched some achievements' grindiness * Added "Hey! Listen!" achievement * Terarria Python 3.8 compat * Fixed Terraria You and What Army logic * Calamity minion accessories * Typo * Calamity integration * `deathlink` -> `death_link` Co-authored-by: Zach Parks <zach@alliware.com> * Missing `.` Co-authored-by: Zach Parks <zach@alliware.com> * Incorrect type annotation Co-authored-by: Zach Parks <zach@alliware.com> * `deathlink` -> `death_link` 2 Co-authored-by: Zach Parks <zach@alliware.com> * Style Co-authored-by: Zach Parks <zach@alliware.com> * Markdown style Co-authored-by: Zach Parks <zach@alliware.com> * Markdown style 2 Co-authored-by: Zach Parks <zach@alliware.com> * Address review * Fix bad merge * Terraria utility mod recommendations * Calamity minion armor logic * ArmorMinions -> Armor Minions, boss rush goal, fixed unplaced item * Fixed unplaced item * Started on Terraria 1.4.4 * Crate logic * getfixedboi, 1.4.4 achievements, shimmer, town slimes, `Rule`, `Condition`, etc * More clam getfixedboi logic, bar decraft logic, `NotGetfixedboi` -> `Not Getfixedboi` * Calamity fixes * Calamity crate ore logic * Fixed item accessibility not generating in getfixedboi, fixed not generating with incompatible options, fixed grindy function * Early achievements, separate achievement category options * Infinity +1 Sword achievement can be location in later goals * The Frequent Flyer is impossible in Calamity getfixedboi * Add Enchanted Sword and Starfury for starting inventories * Don't Dread on Me is redundant in Calamity * In Calamity getfixedboi, Queen Bee summons enemies who drop Plague Cell Canisters * Can't use Gelatin Crystal outside Hallow * You can't get the Terminus without flags * Typo * Options difficult warnings * Robbing the Grave is Hardmode * Don't reserve an ID for unused Victory item * Plantera is accessible early in Calamity via Giant Plantera's Bulbs * Unshuffled Life Crystal and Defender Medal items * Comment about Midas' Blessing * Update worlds/terraria/Options.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Remove stray expression Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Review suggestions * Option naming caps consistency, add Laser Drill, Lunatic Cultist alt reqs, fix Eldritch Soul Artifact, Ceaseless Void reqs Dungeon * Cal Clone doesn't drop Broken Hero Sword anymore, Laser Drill is weaker in Calamity Co-authored-by: Seatori <92278897+Seatori@users.noreply.github.com> * Fix Acid Rain logic * Fix XB-∞ Hekate failing accessibility checks (by commenting it out bc it doesn't affect logic) * Hardmode ores being fishable early in Calamity is not a bug anymore * Mecha Mayhem is inaccessible in getfixedboi * Update worlds/terraria/Rules.dsv Co-authored-by: Seafo <92278897+Seatori@users.noreply.github.com> --------- Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com> Co-authored-by: Zach Parks <zach@alliware.com> Co-authored-by: Scipio Wright <scipiowright@gmail.com> Co-authored-by: Seatori <92278897+Seatori@users.noreply.github.com>
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from dataclasses import dataclass
 | |
| from Options import Choice, DeathLink, PerGameCommonOptions, Toggle, DefaultOnToggle
 | |
| 
 | |
| 
 | |
| class Calamity(Toggle):
 | |
|     """Calamity mod bosses and events are shuffled"""
 | |
| 
 | |
|     display_name = "Calamity Mod Integration"
 | |
| 
 | |
| 
 | |
| class Getfixedboi(Toggle):
 | |
|     """Generation accomodates the secret, very difficult "getfixedboi" seed"""
 | |
| 
 | |
|     display_name = """"getfixedboi" Seed"""
 | |
| 
 | |
| 
 | |
| class Goal(Choice):
 | |
|     """
 | |
|     The victory condition for your run. Stuff after the goal will not be shuffled.
 | |
|     Primordial Wyrm and Boss Rush are accessible relatively early, so consider "Items" or
 | |
|     "Locations" accessibility to avoid getting stuck on the goal.
 | |
|     """
 | |
| 
 | |
|     display_name = "Goal"
 | |
|     option_mechanical_bosses = 0
 | |
|     option_calamitas_clone = 1
 | |
|     option_plantera = 2
 | |
|     option_golem = 3
 | |
|     option_empress_of_light = 4
 | |
|     option_lunatic_cultist = 5
 | |
|     option_astrum_deus = 6
 | |
|     option_moon_lord = 7
 | |
|     option_providence_the_profaned_goddess = 8
 | |
|     option_devourer_of_gods = 9
 | |
|     option_yharon_dragon_of_rebirth = 10
 | |
|     option_zenith = 11
 | |
|     option_calamity_final_bosses = 12
 | |
|     option_primordial_wyrm = 13
 | |
|     option_boss_rush = 14
 | |
|     default = 0
 | |
| 
 | |
| 
 | |
| class EarlyAchievements(DefaultOnToggle):
 | |
|     """Adds checks upon collecting early Pre-Hardmode achievements. Adds many sphere 1 checks."""
 | |
| 
 | |
|     display_name = "Early Pre-Hardmode Achievements"
 | |
| 
 | |
| 
 | |
| class NormalAchievements(DefaultOnToggle):
 | |
|     """
 | |
|     Adds checks upon collecting achivements not covered by the other options. Achievements for
 | |
|     clearing bosses and events are excluded.
 | |
|     """
 | |
| 
 | |
|     display_name = "Normal Achievements"
 | |
| 
 | |
| 
 | |
| class GrindyAchievements(Toggle):
 | |
|     """Adds checks upon collecting grindy achievements"""
 | |
| 
 | |
|     display_name = "Grindy Achievements"
 | |
| 
 | |
| 
 | |
| class FishingAchievements(Toggle):
 | |
|     """Adds checks upon collecting fishing quest achievements"""
 | |
| 
 | |
|     display_name = "Fishing Quest Achievements"
 | |
| 
 | |
| 
 | |
| class FillExtraChecksWith(Choice):
 | |
|     """
 | |
|     Applies if you have achievements enabled. "Useful Items" helps to make the early game less grindy.
 | |
|     Items are rewarded to all players in your Terraria world.
 | |
|     """
 | |
| 
 | |
|     display_name = "Fill Extra Checks With"
 | |
|     option_coins = 0
 | |
|     option_useful_items = 1
 | |
|     default = 1
 | |
| 
 | |
| 
 | |
| @dataclass
 | |
| class TerrariaOptions(PerGameCommonOptions):
 | |
|     calamity: Calamity
 | |
|     getfixedboi: Getfixedboi
 | |
|     goal: Goal
 | |
|     early_achievements: EarlyAchievements
 | |
|     normal_achievements: NormalAchievements
 | |
|     grindy_achievements: GrindyAchievements
 | |
|     fishing_achievements: FishingAchievements
 | |
|     fill_extra_checks_with: FillExtraChecksWith
 | |
|     death_link: DeathLink
 |