Merge branch 'pr/330'

This commit is contained in:
Chacolay 2024-04-29 12:02:59 -04:00
commit a32ba073d0
8 changed files with 484 additions and 302 deletions

View File

@ -1,380 +1,380 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n"; import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const pokemon: SimpleTranslationEntries = { export const pokemon: SimpleTranslationEntries = {
"bulbasaur": "Bulbasaur", "bulbasaur": "Bisasam",
"ivysaur": "Ivysaur", "ivysaur": "Bisaknosp",
"venusaur": "Venusaur", "venusaur": "Bisaflor",
"charmander": "Charmander", "charmander": "Glumanda",
"charmeleon": "Charmeleon", "charmeleon": "Glutexo",
"charizard": "Charizard", "charizard": "Glurak",
"squirtle": "Squirtle", "squirtle": "Schiggy",
"wartortle": "Wartortle", "wartortle": "Schillok",
"blastoise": "Blastoise", "blastoise": "Turtok",
"caterpie": "Caterpie", "caterpie": "Raupy",
"metapod": "Metapod", "metapod": "Safcon",
"butterfree": "Butterfree", "butterfree": "Smettbo",
"weedle": "Weedle", "weedle": "Hornliu",
"kakuna": "Kakuna", "kakuna": "Kokuna",
"beedrill": "Beedrill", "beedrill": "Bibor",
"pidgey": "Pidgey", "pidgey": "Taubsi",
"pidgeotto": "Pidgeotto", "pidgeotto": "Tauboga",
"pidgeot": "Pidgeot", "pidgeot": "Tauboss",
"rattata": "Rattata", "rattata": "Rattfratz",
"raticate": "Raticate", "raticate": "Rattikarl",
"spearow": "Spearow", "spearow": "Habitak",
"fearow": "Fearow", "fearow": "Ibitak",
"ekans": "Ekans", "ekans": "Rettan",
"arbok": "Arbok", "arbok": "Arbok",
"pikachu": "Pikachu", "pikachu": "Pikachu",
"raichu": "Raichu", "raichu": "Raichu",
"sandshrew": "Sandshrew", "sandshrew": "Sandan",
"sandslash": "Sandslash", "sandslash": "Sandamer",
"nidoran_f": "Nidoran♀", "nidoran_f": "Nidoran♀",
"nidorina": "Nidorina", "nidorina": "Nidorina",
"nidoqueen": "Nidoqueen", "nidoqueen": "Nidoqueen",
"nidoran_m": "Nidoran♂", "nidoran_m": "Nidoran♂",
"nidorino": "Nidorino", "nidorino": "Nidorino",
"nidoking": "Nidoking", "nidoking": "Nidoking",
"clefairy": "Clefairy", "clefairy": "Piepi",
"clefable": "Clefable", "clefable": "Pixi",
"vulpix": "Vulpix", "vulpix": "Vulpix",
"ninetales": "Ninetales", "ninetales": "Vulnona",
"jigglypuff": "Jigglypuff", "jigglypuff": "Pummeluff",
"wigglytuff": "Wigglytuff", "wigglytuff": "Knuddeluff",
"zubat": "Zubat", "zubat": "Zubat",
"golbat": "Golbat", "golbat": "Golbat",
"oddish": "Oddish", "oddish": "Myrapla",
"gloom": "Gloom", "gloom": "Duflor",
"vileplume": "Vileplume", "vileplume": "Giflor",
"paras": "Paras", "paras": "Paras",
"parasect": "Parasect", "parasect": "Parasek",
"venonat": "Venonat", "venonat": "Bluzuk",
"venomoth": "Venomoth", "venomoth": "Omot",
"diglett": "Diglett", "diglett": "Digda",
"dugtrio": "Dugtrio", "dugtrio": "Digdri",
"meowth": "Meowth", "meowth": "Mauzi",
"persian": "Persian", "persian": "Snobilikat",
"psyduck": "Psyduck", "psyduck": "Enton",
"golduck": "Golduck", "golduck": "Entoron",
"mankey": "Mankey", "mankey": "Menki",
"primeape": "Primeape", "primeape": "Rasaff",
"growlithe": "Growlithe", "growlithe": "Fukano",
"arcanine": "Arcanine", "arcanine": "Arkani",
"poliwag": "Poliwag", "poliwag": "Quapsel",
"poliwhirl": "Poliwhirl", "poliwhirl": "Quaputzi",
"poliwrath": "Poliwrath", "poliwrath": "Quappo",
"abra": "Abra", "abra": "Abra",
"kadabra": "Kadabra", "kadabra": "Kadabra",
"alakazam": "Alakazam", "alakazam": "Simsala",
"machop": "Machop", "machop": "Machollo",
"machoke": "Machoke", "machoke": "Maschock",
"machamp": "Machamp", "machamp": "Machomei",
"bellsprout": "Bellsprout", "bellsprout": "Knofensa",
"weepinbell": "Weepinbell", "weepinbell": "Ultrigaria",
"victreebel": "Victreebel", "victreebel": "Sarzenia",
"tentacool": "Tentacool", "tentacool": "Tentacha",
"tentacruel": "Tentacruel", "tentacruel": "Tentoxa",
"geodude": "Geodude", "geodude": "Kleinstein",
"graveler": "Graveler", "graveler": "Georok",
"golem": "Golem", "golem": "Geowaz",
"ponyta": "Ponyta", "ponyta": "Ponita",
"rapidash": "Rapidash", "rapidash": "Gallopa",
"slowpoke": "Slowpoke", "slowpoke": "Flegmon",
"slowbro": "Slowbro", "slowbro": "Lahmus",
"magnemite": "Magnemite", "magnemite": "Magnetilo",
"magneton": "Magneton", "magneton": "Magneton",
"farfetchd": "Farfetch'd", "farfetchd": "Porenta",
"doduo": "Doduo", "doduo": "Dodu",
"dodrio": "Dodrio", "dodrio": "Dodri",
"seel": "Seel", "seel": "Jurob",
"dewgong": "Dewgong", "dewgong": "Jugong",
"grimer": "Grimer", "grimer": "Sleima",
"muk": "Muk", "muk": "Sleimok",
"shellder": "Shellder", "shellder": "Muschas",
"cloyster": "Cloyster", "cloyster": "Austos",
"gastly": "Gastly", "gastly": "Nebulak",
"haunter": "Haunter", "haunter": "Alpollo",
"gengar": "Gengar", "gengar": "Gengar",
"onix": "Onix", "onix": "Onix",
"drowzee": "Drowzee", "drowzee": "Traumato",
"hypno": "Hypno", "hypno": "Hypno",
"krabby": "Krabby", "krabby": "Krabby",
"kingler": "Kingler", "kingler": "Kingler",
"voltorb": "Voltorb", "voltorb": "Voltobal",
"electrode": "Electrode", "electrode": "Lektrobal",
"exeggcute": "Exeggcute", "exeggcute": "Owei",
"exeggutor": "Exeggutor", "exeggutor": "Kokowei",
"cubone": "Cubone", "cubone": "Tragosso",
"marowak": "Marowak", "marowak": "Knogga",
"hitmonlee": "Hitmonlee", "hitmonlee": "Kicklee",
"hitmonchan": "Hitmonchan", "hitmonchan": "Nockchan",
"lickitung": "Lickitung", "lickitung": "Schlurp",
"koffing": "Koffing", "koffing": "Smogon",
"weezing": "Weezing", "weezing": "Smogmog",
"rhyhorn": "Rhyhorn", "rhyhorn": "Rihorn",
"rhydon": "Rhydon", "rhydon": "Rizeros",
"chansey": "Chansey", "chansey": "Chaneira",
"tangela": "Tangela", "tangela": "Tangela",
"kangaskhan": "Kangaskhan", "kangaskhan": "Kangama",
"horsea": "Horsea", "horsea": "Seeper",
"seadra": "Seadra", "seadra": "Seemon",
"goldeen": "Goldeen", "goldeen": "Goldini",
"seaking": "Seaking", "seaking": "Golking",
"staryu": "Staryu", "staryu": "Sterndu",
"starmie": "Starmie", "starmie": "Starmie",
"mr_mime": "Mr. Mime", "mr_mime": "Pantimos",
"scyther": "Scyther", "scyther": "Sichlor",
"jynx": "Jynx", "jynx": "Rossana",
"electabuzz": "Electabuzz", "electabuzz": "Elektek",
"magmar": "Magmar", "magmar": "Magmar",
"pinsir": "Pinsir", "pinsir": "Pinsir",
"tauros": "Tauros", "tauros": "Tauros",
"magikarp": "Magikarp", "magikarp": "Karpador",
"gyarados": "Gyarados", "gyarados": "Garados",
"lapras": "Lapras", "lapras": "Lapras",
"ditto": "Ditto", "ditto": "Ditto",
"eevee": "Eevee", "eevee": "Evoli",
"vaporeon": "Vaporeon", "vaporeon": "Aquana",
"jolteon": "Jolteon", "jolteon": "Blitza",
"flareon": "Flareon", "flareon": "Flamara",
"porygon": "Porygon", "porygon": "Porygon",
"omanyte": "Omanyte", "omanyte": "Amonitas",
"omastar": "Omastar", "omastar": "Amoroso",
"kabuto": "Kabuto", "kabuto": "Kabuto",
"kabutops": "Kabutops", "kabutops": "Kabutops",
"aerodactyl": "Aerodactyl", "aerodactyl": "Aerodactyl",
"snorlax": "Snorlax", "snorlax": "Relaxo",
"articuno": "Articuno", "articuno": "Arktos",
"zapdos": "Zapdos", "zapdos": "Zapdos",
"moltres": "Moltres", "moltres": "Lavados",
"dratini": "Dratini", "dratini": "Dratini",
"dragonair": "Dragonair", "dragonair": "Dragonir",
"dragonite": "Dragonite", "dragonite": "Dragoran",
"mewtwo": "Mewtwo", "mewtwo": "Mewtu",
"mew": "Mew", "mew": "Mew",
"chikorita": "Chikorita", "chikorita": "Endivie",
"bayleef": "Bayleef", "bayleef": "Lorblatt",
"meganium": "Meganium", "meganium": "Meganie",
"cyndaquil": "Cyndaquil", "cyndaquil": "Feurigel",
"quilava": "Quilava", "quilava": "Igelavar",
"typhlosion": "Typhlosion", "typhlosion": "Tornupto",
"totodile": "Totodile", "totodile": "Karnimani",
"croconaw": "Croconaw", "croconaw": "Tyracroc",
"feraligatr": "Feraligatr", "feraligatr": "Impergator",
"sentret": "Sentret", "sentret": "Wiesor",
"furret": "Furret", "furret": "Wiesenior",
"hoothoot": "Hoothoot", "hoothoot": "Hoothoot",
"noctowl": "Noctowl", "noctowl": "Noctuh",
"ledyba": "Ledyba", "ledyba": "Ledyba",
"ledian": "Ledian", "ledian": "Ledian",
"spinarak": "Spinarak", "spinarak": "Webarak",
"ariados": "Ariados", "ariados": "Ariados",
"crobat": "Crobat", "crobat": "Iksbat",
"chinchou": "Chinchou", "chinchou": "Lampi",
"lanturn": "Lanturn", "lanturn": "Lanturn",
"pichu": "Pichu", "pichu": "Pichu",
"cleffa": "Cleffa", "cleffa": "Pii",
"igglybuff": "Igglybuff", "igglybuff": "Fluffeluff",
"togepi": "Togepi", "togepi": "Togepi",
"togetic": "Togetic", "togetic": "Togetic",
"natu": "Natu", "natu": "Natu",
"xatu": "Xatu", "xatu": "Xatu",
"mareep": "Mareep", "mareep": "Voltilamm",
"flaaffy": "Flaaffy", "flaaffy": "Waaty",
"ampharos": "Ampharos", "ampharos": "Ampharos",
"bellossom": "Bellossom", "bellossom": "Blubella",
"marill": "Marill", "marill": "Marill",
"azumarill": "Azumarill", "azumarill": "Azumarill",
"sudowoodo": "Sudowoodo", "sudowoodo": "Mogelbaum",
"politoed": "Politoed", "politoed": "Quaxo",
"hoppip": "Hoppip", "hoppip": "Hoppspross",
"skiploom": "Skiploom", "skiploom": "Hubelupf",
"jumpluff": "Jumpluff", "jumpluff": "Papungha",
"aipom": "Aipom", "aipom": "Griffel",
"sunkern": "Sunkern", "sunkern": "Sonnkern",
"sunflora": "Sunflora", "sunflora": "Sonnflora",
"yanma": "Yanma", "yanma": "Yanma",
"wooper": "Wooper", "wooper": "Felino",
"quagsire": "Quagsire", "quagsire": "Morlord",
"espeon": "Espeon", "espeon": "Psiana",
"umbreon": "Umbreon", "umbreon": "Nachtara",
"murkrow": "Murkrow", "murkrow": "Kramurx",
"slowking": "Slowking", "slowking": "Laschoking",
"misdreavus": "Misdreavus", "misdreavus": "Traunfugil",
"unown": "Unown", "unown": "Icognito",
"wobbuffet": "Wobbuffet", "wobbuffet": "Woingenau",
"girafarig": "Girafarig", "girafarig": "Girafarig",
"pineco": "Pineco", "pineco": "Tannza",
"forretress": "Forretress", "forretress": "Forstellka",
"dunsparce": "Dunsparce", "dunsparce": "Dummisel",
"gligar": "Gligar", "gligar": "Skorgla",
"steelix": "Steelix", "steelix": "Stahlos",
"snubbull": "Snubbull", "snubbull": "Snubbull",
"granbull": "Granbull", "granbull": "Granbull",
"qwilfish": "Qwilfish", "qwilfish": "Baldorfish",
"scizor": "Scizor", "scizor": "Scherox",
"shuckle": "Shuckle", "shuckle": "Pottrott",
"heracross": "Heracross", "heracross": "Skaraborn",
"sneasel": "Sneasel", "sneasel": "Sniebel",
"teddiursa": "Teddiursa", "teddiursa": "Teddiursa",
"ursaring": "Ursaring", "ursaring": "Ursaring",
"slugma": "Slugma", "slugma": "Schneckmag",
"magcargo": "Magcargo", "magcargo": "Magcargo",
"swinub": "Swinub", "swinub": "Quiekel",
"piloswine": "Piloswine", "piloswine": "Keifel",
"corsola": "Corsola", "corsola": "Corasonn",
"remoraid": "Remoraid", "remoraid": "Remoraid",
"octillery": "Octillery", "octillery": "Octillery",
"delibird": "Delibird", "delibird": "Botogel",
"mantine": "Mantine", "mantine": "Mantax",
"skarmory": "Skarmory", "skarmory": "Panzaeron",
"houndour": "Houndour", "houndour": "Hunduster",
"houndoom": "Houndoom", "houndoom": "Hundemon",
"kingdra": "Kingdra", "kingdra": "Seedraking",
"phanpy": "Phanpy", "phanpy": "Phanpy",
"donphan": "Donphan", "donphan": "Donphan",
"porygon2": "Porygon2", "porygon2": "Porygon2",
"stantler": "Stantler", "stantler": "Damhirplex",
"smeargle": "Smeargle", "smeargle": "Farbeagle",
"tyrogue": "Tyrogue", "tyrogue": "Rabauz",
"hitmontop": "Hitmontop", "hitmontop": "Kapoera",
"smoochum": "Smoochum", "smoochum": "Kussilla",
"elekid": "Elekid", "elekid": "Elekid",
"magby": "Magby", "magby": "Magby",
"miltank": "Miltank", "miltank": "Miltank",
"blissey": "Blissey", "blissey": "Heiteira",
"raikou": "Raikou", "raikou": "Raikou",
"entei": "Entei", "entei": "Entei",
"suicune": "Suicune", "suicune": "Suicune",
"larvitar": "Larvitar", "larvitar": "Larvitar",
"pupitar": "Pupitar", "pupitar": "Pupitar",
"tyranitar": "Tyranitar", "tyranitar": "Despotar",
"lugia": "Lugia", "lugia": "Lugia",
"ho_oh": "Ho-Oh", "ho_oh": "Ho-Oh",
"celebi": "Celebi", "celebi": "Celebi",
"treecko": "Treecko", "treecko": "Geckarbor",
"grovyle": "Grovyle", "grovyle": "Reptain",
"sceptile": "Sceptile", "sceptile": "Gewaldro",
"torchic": "Torchic", "torchic": "Flemmli",
"combusken": "Combusken", "combusken": "Jungglut",
"blaziken": "Blaziken", "blaziken": "Lohgock",
"mudkip": "Mudkip", "mudkip": "Hydropi",
"marshtomp": "Marshtomp", "marshtomp": "Moorabbel",
"swampert": "Swampert", "swampert": "Sumpex",
"poochyena": "Poochyena", "poochyena": "Fiffyen",
"mightyena": "Mightyena", "mightyena": "Magnayen",
"zigzagoon": "Zigzagoon", "zigzagoon": "Zigzachs",
"linoone": "Linoone", "linoone": "Geradaks",
"wurmple": "Wurmple", "wurmple": "Waumpel",
"silcoon": "Silcoon", "silcoon": "Schaloko",
"beautifly": "Beautifly", "beautifly": "Papinella",
"cascoon": "Cascoon", "cascoon": "Panekon",
"dustox": "Dustox", "dustox": "Pudox",
"lotad": "Lotad", "lotad": "Loturzel",
"lombre": "Lombre", "lombre": "Lombrero",
"ludicolo": "Ludicolo", "ludicolo": "Kappalores",
"seedot": "Seedot", "seedot": "Samurzel",
"nuzleaf": "Nuzleaf", "nuzleaf": "Blanas",
"shiftry": "Shiftry", "shiftry": "Tengulist",
"taillow": "Taillow", "taillow": "Schwalbini",
"swellow": "Swellow", "swellow": "Schwalboss",
"wingull": "Wingull", "wingull": "Wingull",
"pelipper": "Pelipper", "pelipper": "Pelipper",
"ralts": "Ralts", "ralts": "Trasla",
"kirlia": "Kirlia", "kirlia": "Kirlia",
"gardevoir": "Gardevoir", "gardevoir": "Gardevoir",
"surskit": "Surskit", "surskit": "Geweiher",
"masquerain": "Masquerain", "masquerain": "Maskeregen",
"shroomish": "Shroomish", "shroomish": "Knilz",
"breloom": "Breloom", "breloom": "Kapilz",
"slakoth": "Slakoth", "slakoth": "Bummelz",
"vigoroth": "Vigoroth", "vigoroth": "Muntier",
"slaking": "Slaking", "slaking": "Letarking",
"nincada": "Nincada", "nincada": "Nincada",
"ninjask": "Ninjask", "ninjask": "Ninjask",
"shedinja": "Shedinja", "shedinja": "Ninjatom",
"whismur": "Whismur", "whismur": "Flurmel",
"loudred": "Loudred", "loudred": "Krakeelo",
"exploud": "Exploud", "exploud": "Krawumms",
"makuhita": "Makuhita", "makuhita": "Makuhita",
"hariyama": "Hariyama", "hariyama": "Hariyama",
"azurill": "Azurill", "azurill": "Azurill",
"nosepass": "Nosepass", "nosepass": "Nasgnet",
"skitty": "Skitty", "skitty": "Eneco",
"delcatty": "Delcatty", "delcatty": "Enekoro",
"sableye": "Sableye", "sableye": "Zobiris",
"mawile": "Mawile", "mawile": "Flunkifer",
"aron": "Aron", "aron": "Stollunior",
"lairon": "Lairon", "lairon": "Stollrak",
"aggron": "Aggron", "aggron": "Stolloss",
"meditite": "Meditite", "meditite": "Meditite",
"medicham": "Medicham", "medicham": "Meditalis",
"electrike": "Electrike", "electrike": "Frizelbliz",
"manectric": "Manectric", "manectric": "Voltenso",
"plusle": "Plusle", "plusle": "Plusle",
"minun": "Minun", "minun": "Minun",
"volbeat": "Volbeat", "volbeat": "Volbeat",
"illumise": "Illumise", "illumise": "Illumise",
"roselia": "Roselia", "roselia": "Roselia",
"gulpin": "Gulpin", "gulpin": "Schluppuck",
"swalot": "Swalot", "swalot": "Schluckwech",
"carvanha": "Carvanha", "carvanha": "Kanivanha",
"sharpedo": "Sharpedo", "sharpedo": "Tohaido",
"wailmer": "Wailmer", "wailmer": "Wailmer",
"wailord": "Wailord", "wailord": "Wailord",
"numel": "Numel", "numel": "Camaub",
"camerupt": "Camerupt", "camerupt": "Camerupt",
"torkoal": "Torkoal", "torkoal": "Qurtel",
"spoink": "Spoink", "spoink": "Spoink",
"grumpig": "Grumpig", "grumpig": "Groink",
"spinda": "Spinda", "spinda": "Pandir",
"trapinch": "Trapinch", "trapinch": "Knacklion",
"vibrava": "Vibrava", "vibrava": "Vibrava",
"flygon": "Flygon", "flygon": "Libelldra",
"cacnea": "Cacnea", "cacnea": "Tuska",
"cacturne": "Cacturne", "cacturne": "Noktuska",
"swablu": "Swablu", "swablu": "Wablu",
"altaria": "Altaria", "altaria": "Altaria",
"zangoose": "Zangoose", "zangoose": "Sengo",
"seviper": "Seviper", "seviper": "Vipitis",
"lunatone": "Lunatone", "lunatone": "Lunastein",
"solrock": "Solrock", "solrock": "Sonnfel",
"barboach": "Barboach", "barboach": "Schmerbe",
"whiscash": "Whiscash", "whiscash": "Welsar",
"corphish": "Corphish", "corphish": "Krebscorps",
"crawdaunt": "Crawdaunt", "crawdaunt": "Krebutack",
"baltoy": "Baltoy", "baltoy": "Puppance",
"claydol": "Claydol", "claydol": "Lepumentas",
"lileep": "Lileep", "lileep": "Liliep",
"cradily": "Cradily", "cradily": "Wielie",
"anorith": "Anorith", "anorith": "Anorith",
"armaldo": "Armaldo", "armaldo": "Armaldo",
"feebas": "Feebas", "feebas": "Barschwa",
"milotic": "Milotic", "milotic": "Milotic",
"castform": "Castform", "castform": "Formeo",
"kecleon": "Kecleon", "kecleon": "Kecleon",
"shuppet": "Shuppet", "shuppet": "Shuppet",
"banette": "Banette", "banette": "Banette",
"duskull": "Duskull", "duskull": "Zwirrlicht",
"dusclops": "Dusclops", "dusclops": "Zwirrklop",
"tropius": "Tropius", "tropius": "Tropius",
"chimecho": "Chimecho", "chimecho": "Palimpalim",
"absol": "Absol", "absol": "Absol",
"wynaut": "Wynaut", "wynaut": "Isso",
"snorunt": "Snorunt", "snorunt": "Schneppke",
"glalie": "Glalie", "glalie": "Firnontor",
"spheal": "Spheal", "spheal": "Seemops",
"sealeo": "Sealeo", "sealeo": "Seejong",
"walrein": "Walrein", "walrein": "Walraisa",
"clamperl": "Clamperl", "clamperl": "Perlu",
"huntail": "Huntail", "huntail": "Aalabyss",
"gorebyss": "Gorebyss", "gorebyss": "Saganabyss",
"relicanth": "Relicanth", "relicanth": "Relicanth",
"luvdisc": "Luvdisc", "luvdisc": "Liebiskus",
"bagon": "Bagon", "bagon": "Kindwurm",
"shelgon": "Shelgon", "shelgon": "Draschel",
"salamence": "Salamence", "salamence": "Brutalanda",
"beldum": "Beldum", "beldum": "Tanhel",
"metang": "Metang", "metang": "Metang",
"metagross": "Metagross", "metagross": "Metagross",
"regirock": "Regirock", "regirock": "Regirock",

View File

@ -0,0 +1,38 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
"menu": `From this menu you can access the settings.
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`,
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
"pokerus": `A daily random 3 selectable starters have a purple border.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
} as const;

View File

@ -0,0 +1,38 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
"menu": `From this menu you can access the settings.
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`,
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
"pokerus": `A daily random 3 selectable starters have a purple border.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
} as const;

View File

@ -0,0 +1,38 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
"menu": `From this menu you can access the settings.
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`,
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
"pokerus": `A daily random 3 selectable starters have a purple border.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
} as const;

View File

@ -0,0 +1,38 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
"menu": `From this menu you can access the settings.
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`,
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
"pokerus": `A daily random 3 selectable starters have a purple border.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
} as const;

View File

@ -0,0 +1,38 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
"menu": `From this menu you can access the settings.
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`,
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
"pokerus": `A daily random 3 selectable starters have a purple border.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
} as const;

View File

@ -45,6 +45,12 @@ import { commandUiHandler as deCommandUiHandler } from '../locales/de/command-ui
import { fightUiHandler as enFightUiHandler } from '../locales/en/fight-ui-handler'; import { fightUiHandler as enFightUiHandler } from '../locales/en/fight-ui-handler';
import { fightUiHandler as frFightUiHandler } from '../locales/fr/fight-ui-handler'; import { fightUiHandler as frFightUiHandler } from '../locales/fr/fight-ui-handler';
import { tutorial as enTutorial } from '../locales/en/tutorial';
import { tutorial as esTutorial } from '../locales/es/tutorial';
import { tutorial as frTutorial } from '../locales/fr/tutorial';
import { tutorial as itTutorial} from '../locales/it/tutorial';
import { tutorial as deTutorial } from '../locales/de/tutorial';
export interface SimpleTranslationEntries { export interface SimpleTranslationEntries {
[key: string]: string [key: string]: string
} }
@ -113,6 +119,7 @@ export function initI18n(): void {
pokemonStat: enPokemonStat, pokemonStat: enPokemonStat,
commandUiHandler: enCommandUiHandler, commandUiHandler: enCommandUiHandler,
fightUiHandler: enFightUiHandler, fightUiHandler: enFightUiHandler,
tutorial: enTutorial,
}, },
es: { es: {
menu: esMenu, menu: esMenu,
@ -123,6 +130,7 @@ export function initI18n(): void {
pokemon: esPokemon, pokemon: esPokemon,
pokemonStat: esPokemonStat, pokemonStat: esPokemonStat,
commandUiHandler: esCommandUiHandler, commandUiHandler: esCommandUiHandler,
tutorial: esTutorial,
}, },
fr: { fr: {
menu: frMenu, menu: frMenu,
@ -134,11 +142,13 @@ export function initI18n(): void {
pokemonStat: frPokemonStat, pokemonStat: frPokemonStat,
commandUiHandler: frCommandUiHandler, commandUiHandler: frCommandUiHandler,
fightUiHandler: frFightUiHandler, fightUiHandler: frFightUiHandler,
tutorial: frTutorial,
}, },
it: { it: {
menu: itMenu, menu: itMenu,
menuUiHandler: itMenuUiHandler, menuUiHandler: itMenuUiHandler,
pokemonStat: itPokemonStat, pokemonStat: itPokemonStat,
tutorial: itTutorial,
}, },
de: { de: {
menu: deMenu, menu: deMenu,
@ -149,6 +159,7 @@ export function initI18n(): void {
pokemon: dePokemon, pokemon: dePokemon,
pokemonStat: dePokemonStat, pokemonStat: dePokemonStat,
commandUiHandler: deCommandUiHandler, commandUiHandler: deCommandUiHandler,
tutorial: deTutorial,
} }
}, },
}); });
@ -167,6 +178,7 @@ declare module 'i18next' {
pokemonStat: typeof enPokemonStat; pokemonStat: typeof enPokemonStat;
commandUiHandler: typeof enCommandUiHandler; commandUiHandler: typeof enCommandUiHandler;
fightUiHandler: typeof enFightUiHandler; fightUiHandler: typeof enFightUiHandler;
tutorial: typeof enTutorial;
}; };
} }
} }

View File

@ -1,6 +1,7 @@
import BattleScene from "./battle-scene"; import BattleScene from "./battle-scene";
import AwaitableUiHandler from "./ui/awaitable-ui-handler"; import AwaitableUiHandler from "./ui/awaitable-ui-handler";
import { Mode } from "./ui/ui"; import { Mode } from "./ui/ui";
import i18next from './plugins/i18n';
export enum Tutorial { export enum Tutorial {
Intro = "INTRO", Intro = "INTRO",
@ -15,63 +16,42 @@ export enum Tutorial {
const tutorialHandlers = { const tutorialHandlers = {
[Tutorial.Intro]: (scene: BattleScene) => { [Tutorial.Intro]: (scene: BattleScene) => {
return new Promise<void>(resolve => { return new Promise<void>(resolve => {
scene.ui.showText(`Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. scene.ui.showText(i18next.t("tutorial:intro"), null, () => resolve(), null, true);
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, null, () => resolve(), null, true);
}); });
}, },
[Tutorial.Access_Menu]: (scene: BattleScene) => { [Tutorial.Access_Menu]: (scene: BattleScene) => {
return new Promise<void>(resolve => { return new Promise<void>(resolve => {
if (scene.enableTouchControls) if (scene.enableTouchControls)
return resolve(); return resolve();
scene.showFieldOverlay(1000).then(() => scene.ui.showText(`To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, null, () => scene.hideFieldOverlay(1000).then(() => resolve()), null, true)); scene.showFieldOverlay(1000).then(() => scene.ui.showText(i18next.t("tutorial:accessMenu"), null, () => scene.hideFieldOverlay(1000).then(() => resolve()), null, true));
}); });
}, },
[Tutorial.Menu]: (scene: BattleScene) => { [Tutorial.Menu]: (scene: BattleScene) => {
return new Promise<void>(resolve => { return new Promise<void>(resolve => {
scene.gameData.saveTutorialFlag(Tutorial.Access_Menu, true); scene.gameData.saveTutorialFlag(Tutorial.Access_Menu, true);
scene.ui.showText(`From this menu you can access the settings. scene.ui.showText(i18next.t("tutorial:menu"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
}); });
}, },
[Tutorial.Starter_Select]: (scene: BattleScene) => { [Tutorial.Starter_Select]: (scene: BattleScene) => {
return new Promise<void>(resolve => { return new Promise<void>(resolve => {
scene.ui.showText(`From this screen, you can select your starters.\nThese are your initial party members. scene.ui.showText(i18next.t("tutorial:starterSelect"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
}); });
}, },
[Tutorial.Pokerus]: (scene: BattleScene) => { [Tutorial.Pokerus]: (scene: BattleScene) => {
return new Promise<void>(resolve => { return new Promise<void>(resolve => {
scene.ui.showText(`A daily random 3 selectable starters have a purple border. scene.ui.showText(i18next.t("tutorial:pokerus"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
}); });
}, },
[Tutorial.Select_Item]: (scene: BattleScene) => { [Tutorial.Select_Item]: (scene: BattleScene) => {
return new Promise<void>(resolve => { return new Promise<void>(resolve => {
scene.ui.setModeWithoutClear(Mode.MESSAGE).then(() => { scene.ui.setModeWithoutClear(Mode.MESSAGE).then(() => {
scene.ui.showText(`After every battle, you are given a choice of 3 random items.\nYou may only pick one. scene.ui.showText(i18next.t("tutorial:selectItem"), null, () => scene.ui.showText('', null, () => scene.ui.setModeWithoutClear(Mode.MODIFIER_SELECT).then(() => resolve())), null, true);
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, null, () => scene.ui.showText('', null, () => scene.ui.setModeWithoutClear(Mode.MODIFIER_SELECT).then(() => resolve())), null, true);
}); });
}); });
}, },
[Tutorial.Egg_Gacha]: (scene: BattleScene) => { [Tutorial.Egg_Gacha]: (scene: BattleScene) => {
return new Promise<void>(resolve => { return new Promise<void>(resolve => {
scene.ui.showText(`From this screen, you can redeem your vouchers for\nPokémon eggs. scene.ui.showText(i18next.t("tutorial:eggGacha"), null, () => scene.ui.showText('', null, () => resolve()), null, true);
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, null, () => scene.ui.showText('', null, () => resolve()), null, true);
}); });
}, },
}; };
@ -94,4 +74,4 @@ export function handleTutorial(scene: BattleScene, tutorial: Tutorial): Promise<
resolve(true); resolve(true);
}); });
}); });
} }