Super Mario 64: Add Star Costs to Spoiler (#4544)
This commit is contained in:
		
							parent
							
								
									1832bac1a3
								
							
						
					
					
						commit
						96b941ed35
					
				| 
						 | 
					@ -48,6 +48,17 @@ class SM64World(World):
 | 
				
			||||||
    filler_count: int
 | 
					    filler_count: int
 | 
				
			||||||
    star_costs: typing.Dict[str, int]
 | 
					    star_costs: typing.Dict[str, int]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Spoiler specific variable(s)
 | 
				
			||||||
 | 
					    star_costs_spoiler_key_maxlen = len(max([
 | 
				
			||||||
 | 
					        'First Floor Big Star Door',
 | 
				
			||||||
 | 
					        'Basement Big Star Door',
 | 
				
			||||||
 | 
					        'Second Floor Big Star Door',
 | 
				
			||||||
 | 
					        'MIPS 1',
 | 
				
			||||||
 | 
					        'MIPS 2',
 | 
				
			||||||
 | 
					        'Endless Stairs',
 | 
				
			||||||
 | 
					    ], key=len))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def generate_early(self):
 | 
					    def generate_early(self):
 | 
				
			||||||
        max_stars = 120
 | 
					        max_stars = 120
 | 
				
			||||||
        if (not self.options.enable_coin_stars):
 | 
					        if (not self.options.enable_coin_stars):
 | 
				
			||||||
| 
						 | 
					@ -238,3 +249,19 @@ class SM64World(World):
 | 
				
			||||||
                    for location in region.locations:
 | 
					                    for location in region.locations:
 | 
				
			||||||
                        er_hint_data[location.address] = entrance_name
 | 
					                        er_hint_data[location.address] = entrance_name
 | 
				
			||||||
            hint_data[self.player] = er_hint_data
 | 
					            hint_data[self.player] = er_hint_data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def write_spoiler(self, spoiler_handle: typing.TextIO) -> None:
 | 
				
			||||||
 | 
					        # Write calculated star costs to spoiler.
 | 
				
			||||||
 | 
					        star_cost_spoiler_header = '\n\n' + self.player_name + ' Star Costs for Super Mario 64:\n\n'
 | 
				
			||||||
 | 
					        spoiler_handle.write(star_cost_spoiler_header)
 | 
				
			||||||
 | 
					        # - Reformat star costs dictionary in spoiler to be a bit more readable.
 | 
				
			||||||
 | 
					        star_costs_spoiler = {}
 | 
				
			||||||
 | 
					        star_costs_copy = self.star_costs.copy()
 | 
				
			||||||
 | 
					        star_costs_spoiler['First Floor Big Star Door'] = star_costs_copy['FirstBowserDoorCost']
 | 
				
			||||||
 | 
					        star_costs_spoiler['Basement Big Star Door'] = star_costs_copy['BasementDoorCost']
 | 
				
			||||||
 | 
					        star_costs_spoiler['Second Floor Big Star Door'] = star_costs_copy['SecondFloorDoorCost']
 | 
				
			||||||
 | 
					        star_costs_spoiler['MIPS 1'] = star_costs_copy['MIPS1Cost']
 | 
				
			||||||
 | 
					        star_costs_spoiler['MIPS 2'] = star_costs_copy['MIPS2Cost']
 | 
				
			||||||
 | 
					        star_costs_spoiler['Endless Stairs'] = star_costs_copy['StarsToFinish']
 | 
				
			||||||
 | 
					        for star, cost in star_costs_spoiler.items():
 | 
				
			||||||
 | 
					            spoiler_handle.write(f"{star:{self.star_costs_spoiler_key_maxlen}s} = {cost}\n")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue