mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Add Meritous (#278)
This commit is contained in:
214
worlds/meritous/Items.py
Normal file
214
worlds/meritous/Items.py
Normal file
@@ -0,0 +1,214 @@
|
||||
# Copyright (c) 2022 FelicitusNeko
|
||||
#
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
import typing
|
||||
|
||||
from BaseClasses import Item
|
||||
|
||||
|
||||
# pedestal_credit_text: str = "and the Unknown Item"
|
||||
# sickkid_credit_text: Optional[str] = None
|
||||
# magicshop_credit_text: Optional[str] = None
|
||||
# zora_credit_text: Optional[str] = None
|
||||
# fluteboy_credit_text: Optional[str] = None
|
||||
|
||||
class MeritousLttPText(typing.NamedTuple):
|
||||
pedestal: typing.Optional[str]
|
||||
sickkid: typing.Optional[str]
|
||||
magicshop: typing.Optional[str]
|
||||
zora: typing.Optional[str]
|
||||
fluteboy: typing.Optional[str]
|
||||
|
||||
|
||||
LttPCreditsText = {
|
||||
"Nothing": MeritousLttPText("lack of presence",
|
||||
"Forgot to get you anything",
|
||||
"Thanks for the shroom, sucker",
|
||||
"Bucket o' Nothing for 9999.99",
|
||||
"I can't hear anything"),
|
||||
"Reflect Shield upgrade": MeritousLttPText("Protective Aura",
|
||||
"Safe under the covers",
|
||||
"Cast a magic circle",
|
||||
"Psionic aura for sale",
|
||||
"This tune makes you feel safe"),
|
||||
"Circuit Charge upgrade": MeritousLttPText("Psionic Charge",
|
||||
"This kid's so ready now",
|
||||
"Expand your mind",
|
||||
"Psionic energy for sale",
|
||||
"Synthwave? From a flute?"),
|
||||
"Circuit Refill upgrade": MeritousLttPText("Psionic Cleanse",
|
||||
"All rested up",
|
||||
"Shrooms for mental floss",
|
||||
"Psionic refreshment for sale",
|
||||
"Peaceful little tune"),
|
||||
"Map": MeritousLttPText("Twisted Chart",
|
||||
"Abstract artist kid",
|
||||
"Shrooms for pictograms",
|
||||
"Strange imagery for sale",
|
||||
"Just follow the rhythm"),
|
||||
"Shield Boost": MeritousLttPText("Heavy Aura",
|
||||
"Blanket fort kid",
|
||||
"Shrooms for protection",
|
||||
"Bigger circles for sale",
|
||||
"Don't touch the music man"),
|
||||
"Crystal Efficiency": MeritousLttPText("Expensive Trinket",
|
||||
"Investment kid",
|
||||
"Make your own crystals",
|
||||
"Invest in someone's future",
|
||||
"A rich melody"),
|
||||
"Circuit Booster": MeritousLttPText("Mental Focus",
|
||||
"Far-reaching kid",
|
||||
"I can see through time",
|
||||
"Finglonger for sale",
|
||||
"Can you please keep it down"),
|
||||
"Metabolism": MeritousLttPText("Energy Drink",
|
||||
"Zoom-Zoom kid",
|
||||
"Shrooms for Zooms",
|
||||
"Speed for sale",
|
||||
"How does he play so fast"),
|
||||
"Dodge Enhancer": MeritousLttPText("Insignificant Dot",
|
||||
"Evasive kid",
|
||||
"Still at large",
|
||||
"Take the money and run",
|
||||
"Gonna rock and go"),
|
||||
"Ethereal Monocle": MeritousLttPText("Weird Glass",
|
||||
"He can see you coming",
|
||||
"Okay now I'm seeing things",
|
||||
"Precognition for sale",
|
||||
"Like deja vu all over again"),
|
||||
"Crystal Gatherer": MeritousLttPText("Attractive Aura",
|
||||
"Magnetic kid",
|
||||
"I swear it attracts money",
|
||||
"Big magnet for sale",
|
||||
"Works for tips"),
|
||||
"Portable Compass": MeritousLttPText("Way Forward",
|
||||
"Forward-thinking kid",
|
||||
"Shrooms for Life Advice",
|
||||
"Moving Needle for sale",
|
||||
"Sing a tale of adventure"),
|
||||
"PSI Key 1": MeritousLttPText("Familiar Artifact",
|
||||
"Messenger kid",
|
||||
"The Black Market",
|
||||
"I've got something good",
|
||||
"An otherworldly tune"),
|
||||
"PSI Key 2": MeritousLttPText("Familiar Artifact",
|
||||
"Messenger kid",
|
||||
"The Black Market",
|
||||
"I've got something good",
|
||||
"An otherworldly tune"),
|
||||
"PSI Key 3": MeritousLttPText("Familiar Artifact",
|
||||
"Messenger kid",
|
||||
"The Black Market",
|
||||
"I've got something good",
|
||||
"An otherworldly tune"),
|
||||
"Cursed Seal": MeritousLttPText("Psionic Anomaly",
|
||||
"What's this doing here",
|
||||
"What's this doing here",
|
||||
"What's this doing here",
|
||||
"What's this doing here"),
|
||||
"Agate Knife": MeritousLttPText("Psionic Anomaly",
|
||||
"What's this doing here",
|
||||
"What's this doing here",
|
||||
"What's this doing here",
|
||||
"What's this doing here"),
|
||||
"Evolution Trap": MeritousLttPText("Awful Curse",
|
||||
"Dennis the Menace",
|
||||
"I can make it harder for 'em",
|
||||
"Pranks for sale",
|
||||
"This tune sucks, I'm angry now"),
|
||||
"Crystals x500": MeritousLttPText("Pile of Rocks",
|
||||
"Shiny collector kid",
|
||||
"A backroom exchange",
|
||||
"Currency conversion here",
|
||||
"Quarter-full tip jar"),
|
||||
"Crystals x1000": MeritousLttPText("Pile of Rocks",
|
||||
"Shiny collector kid",
|
||||
"A backroom exchange",
|
||||
"Currency conversion here",
|
||||
"Half-full tip jar"),
|
||||
"Crystals x2000": MeritousLttPText("Pile of Rocks",
|
||||
"Shiny collector kid",
|
||||
"A backroom exchange",
|
||||
"Currency conversion here",
|
||||
"This was a real good gig"),
|
||||
"Extra Life": MeritousLttPText("Lifesaver",
|
||||
"Sick kid feels alive again",
|
||||
"A life-saving concoction",
|
||||
"Second chance for sale",
|
||||
"A life-saving melody")
|
||||
}
|
||||
|
||||
|
||||
class MeritousItem(Item):
|
||||
game: str = "Meritous"
|
||||
|
||||
def __init__(self, name, advancement, code, player):
|
||||
super(MeritousItem, self).__init__(name, advancement, code, player)
|
||||
if code is None:
|
||||
self.type = "Event"
|
||||
elif "Trap" in name:
|
||||
self.type = "Trap"
|
||||
self.trap = True
|
||||
elif "PSI Key" in name:
|
||||
self.type = "PSI Key"
|
||||
elif "upgrade" in name:
|
||||
self.type = "Enhancement"
|
||||
elif "Crystals x" in name:
|
||||
self.type = "Crystals"
|
||||
elif name == "Nothing":
|
||||
self.type = "Nothing"
|
||||
elif name == "Cursed Seal" or name == "Agate Knife":
|
||||
self.type = name
|
||||
elif name == "Extra Life":
|
||||
self.type = "Other"
|
||||
else:
|
||||
self.type = "Artifact"
|
||||
self.never_exclude = True
|
||||
|
||||
if name in LttPCreditsText:
|
||||
lttp = LttPCreditsText[name]
|
||||
self.pedestal_credit_text = f"and the {lttp.pedestal}"
|
||||
self.sickkid_credit_text = lttp.sickkid
|
||||
self.magicshop_credit_text = lttp.magicshop
|
||||
self.zora_credit_text = lttp.zora
|
||||
self.fluteboy_credit_text = lttp.fluteboy
|
||||
|
||||
|
||||
offset = 593_000
|
||||
|
||||
item_table = {
|
||||
"Nothing": offset + 0,
|
||||
"Reflect Shield upgrade": offset + 1,
|
||||
"Circuit Charge upgrade": offset + 2,
|
||||
"Circuit Refill upgrade": offset + 3,
|
||||
"Map": offset + 4,
|
||||
"Shield Boost": offset + 5,
|
||||
"Crystal Efficiency": offset + 6,
|
||||
"Circuit Booster": offset + 7,
|
||||
"Metabolism": offset + 8,
|
||||
"Dodge Enhancer": offset + 9,
|
||||
"Ethereal Monocle": offset + 10,
|
||||
"Crystal Gatherer": offset + 11,
|
||||
"Portable Compass": offset + 12,
|
||||
"PSI Key 1": offset + 13,
|
||||
"PSI Key 2": offset + 14,
|
||||
"PSI Key 3": offset + 15,
|
||||
"Cursed Seal": offset + 16,
|
||||
"Agate Knife": offset + 17,
|
||||
"Evolution Trap": offset + 18,
|
||||
"Crystals x500": offset + 19,
|
||||
"Crystals x1000": offset + 20,
|
||||
"Crystals x2000": offset + 21,
|
||||
"Extra Life": offset + 22
|
||||
}
|
||||
|
||||
item_groups = {
|
||||
"PSI Keys": [f"PSI Key {x}" for x in range(1, 4)],
|
||||
"Upgrades": ["Reflect Shield upgrade", "Circuit Charge upgrade", "Circuit Refill upgrade"],
|
||||
"Artifacts": ["Map", "Shield Boost", "Crystal Efficiency", "Circuit Booster",
|
||||
"Metabolism", "Dodge Enhancer", "Ethereal Monocle", "Crystal Gatherer",
|
||||
"Portable Compass"],
|
||||
"Crystals": ["Crystals x500", "Crystals x1000", "Crystals x2000"]
|
||||
}
|
Reference in New Issue
Block a user