130 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			130 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | # Copyright (c) 2022 FelicitusNeko | ||
|  | # | ||
|  | # This software is released under the MIT License. | ||
|  | # https://opensource.org/licenses/MIT | ||
|  | 
 | ||
|  | import typing | ||
|  | 
 | ||
|  | from BaseClasses import Item, ItemClassification | ||
|  | from worlds.alttp import ALTTPWorld | ||
|  | 
 | ||
|  | 
 | ||
|  | class BumpStikLttPText(typing.NamedTuple): | ||
|  |     pedestal: typing.Optional[str] | ||
|  |     sickkid: typing.Optional[str] | ||
|  |     magicshop: typing.Optional[str] | ||
|  |     zora: typing.Optional[str] | ||
|  |     fluteboy: typing.Optional[str] | ||
|  | 
 | ||
|  | 
 | ||
|  | LttPCreditsText = { | ||
|  |     "Nothing": BumpStikLttPText("blank space", | ||
|  |                                 "Forgot it at home again", | ||
|  |                                 "Hallucinating again", | ||
|  |                                 "Bucket o' Nothing for 9999.99", | ||
|  |                                 "King Nothing"), | ||
|  |     "Score Bonus": BumpStikLttPText("helpful hand", | ||
|  |                                     "Busy kid gets the point...s", | ||
|  |                                     "Variable conversion rate", | ||
|  |                                     "Stonks", | ||
|  |                                     "Catchy ad jingle"), | ||
|  |     "Task Advance": BumpStikLttPText("hall pass", | ||
|  |                                      "Faker kid skips again", | ||
|  |                                      "I know a way around it", | ||
|  |                                      "Money can fix it", | ||
|  |                                      "Quick! A distraction"), | ||
|  |     "Starting Turner": BumpStikLttPText("fidget spinner", | ||
|  |                                         "Spinning kid turns heads", | ||
|  |                                         "This turns things around", | ||
|  |                                         "Your turn to turn", | ||
|  |                                         "Turn turn turn"), | ||
|  |     "Reserved": BumpStikLttPText("... wuh?", | ||
|  |                                  "Why's this here?", | ||
|  |                                  "Why's this here?", | ||
|  |                                  "Why's this here?", | ||
|  |                                  "Why's this here?"), | ||
|  |     "Starting Paint Can": BumpStikLttPText("paint bucket", | ||
|  |                                            "Artsy kid paints again", | ||
|  |                                            "Your rainbow destiny", | ||
|  |                                            "Rainbow for sale", | ||
|  |                                            "Let me paint a picture"), | ||
|  |     "Booster Bumper": BumpStikLttPText("multiplier", | ||
|  |                                        "Math kid multiplies again", | ||
|  |                                        "Growing shrooms", | ||
|  |                                        "Investment opportunity", | ||
|  |                                        "In harmony with themself"), | ||
|  |     "Hazard Bumper": BumpStikLttPText("dull stone", | ||
|  |                                       "...I got better", | ||
|  |                                       "Mischief Maker", | ||
|  |                                       "Whoops for sale", | ||
|  |                                       "Stuck in a moment"), | ||
|  |     "Treasure Bumper": BumpStikLttPText("odd treasure box", | ||
|  |                                         "Interdimensional treasure", | ||
|  |                                         "Shrooms for ???", | ||
|  |                                         "Who knows what this is", | ||
|  |                                         "You get what you give"), | ||
|  |     "Rainbow Trap": BumpStikLttPText("chaos prism", | ||
|  |                                      "Roy G Biv in disguise", | ||
|  |                                      "The colors Duke! The colors", | ||
|  |                                      "Paint overstock", | ||
|  |                                      "Raise a little hell"), | ||
|  |     "Spinner Trap": BumpStikLttPText("whirlwind", | ||
|  |                                      "Vertigo kid gets dizzy", | ||
|  |                                      "The room is spinning Dave", | ||
|  |                                      "International sabotage", | ||
|  |                                      "You spin me right round"), | ||
|  |     "Killer Trap": BumpStikLttPText("broken board", | ||
|  |                                     "Thank you Mr Coffey", | ||
|  |                                     "Lethal dosage", | ||
|  |                                     "Assassin for hire", | ||
|  |                                     "Killer Queen"), | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | item_groups = { | ||
|  |     "Helpers": ["Task Advance", "Starting Turner", "Starting Paint Can"], | ||
|  |     "Targets": ["Treasure Bumper", "Booster Bumper", "Hazard Bumper"], | ||
|  |     "Traps": ["Rainbow Trap", "Spinner Trap", "Killer Trap"] | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | class BumpStikItem(Item): | ||
|  |     game = "Bumper Stickers" | ||
|  |     type: str | ||
|  | 
 | ||
|  |     def __init__(self, name, classification, code, player): | ||
|  |         super(BumpStikItem, self).__init__( | ||
|  |             name, classification, code, player) | ||
|  | 
 | ||
|  |         if code is None: | ||
|  |             self.type = "Event" | ||
|  |         elif name in item_groups["Traps"]: | ||
|  |             self.type = "Trap" | ||
|  |             self.classification = ItemClassification.trap | ||
|  |         elif name in item_groups["Targets"]: | ||
|  |             self.type = "Target" | ||
|  |             self.classification = ItemClassification.progression | ||
|  |         elif name in item_groups["Helpers"]: | ||
|  |             self.type = "Helper" | ||
|  |             self.classification = ItemClassification.useful | ||
|  |         else: | ||
|  |             self.type = "Other" | ||
|  | 
 | ||
|  | 
 | ||
|  | offset = 595_000 | ||
|  | 
 | ||
|  | item_table = { | ||
|  |     item: offset + x for x, item in enumerate(LttPCreditsText.keys()) | ||
|  | } | ||
|  | 
 | ||
|  | ALTTPWorld.pedestal_credit_texts.update({item_table[name]: f"and the {texts.pedestal}" | ||
|  |                                          for name, texts in LttPCreditsText.items()}) | ||
|  | ALTTPWorld.sickkid_credit_texts.update( | ||
|  |     {item_table[name]: texts.sickkid for name, texts in LttPCreditsText.items()}) | ||
|  | ALTTPWorld.magicshop_credit_texts.update( | ||
|  |     {item_table[name]: texts.magicshop for name, texts in LttPCreditsText.items()}) | ||
|  | ALTTPWorld.zora_credit_texts.update( | ||
|  |     {item_table[name]: texts.zora for name, texts in LttPCreditsText.items()}) | ||
|  | ALTTPWorld.fluteboy_credit_texts.update( | ||
|  |     {item_table[name]: texts.fluteboy for name, texts in LttPCreditsText.items()}) |