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()})
							 |