diff --git a/composeApp/build/generated/compose/resourceGenerator/kotlin/HomeScreen.kt b/composeApp/build/generated/compose/resourceGenerator/kotlin/HomeScreen.kt index f436f00..40915bd 100644 --- a/composeApp/build/generated/compose/resourceGenerator/kotlin/HomeScreen.kt +++ b/composeApp/build/generated/compose/resourceGenerator/kotlin/HomeScreen.kt @@ -86,78 +86,68 @@ class HomeScreen : Screen { "fairy" ) Column( - modifier = Modifier - .fillMaxSize() - .background(color = orange), + modifier = Modifier.fillMaxSize().background(color = orange), horizontalAlignment = Alignment.CenterHorizontally ) { - OutlinedTextField( - value = searchQuery, + OutlinedTextField(value = searchQuery, onValueChange = { newName -> searchQuery = newName; placeholder = "" }, - modifier = Modifier.fillMaxWidth(0.8f) - .padding(horizontal = 16.dp) - .padding(top = 16.dp) - .background(color = Color.White), + modifier = Modifier.fillMaxWidth(0.8f).padding(horizontal = 16.dp) + .padding(top = 16.dp).background(color = Color.White), trailingIcon = { Row() { - IconButton( - onClick = { - if (searchQuery.length >= 3 && PokemonNames.names.any { name -> - name.contains( - searchQuery.lowercase( - Locale.getDefault() - ) + IconButton(onClick = { + if (searchQuery.length >= 3 && PokemonNames.names.any { name -> + name.contains( + searchQuery.lowercase( + Locale.getDefault() ) - }) { - coroutineScope.launch { - withContext(Dispatchers.IO) { - println("Searching for pokemon, query: $searchQuery") - val names: List = - PokemonNames.names.filter { name -> - name.contains( - searchQuery.lowercase( - Locale.getDefault() - ) + ) + }) { + coroutineScope.launch { + withContext(Dispatchers.IO) { + println("Searching for pokemon, query: $searchQuery") + val names: List = + PokemonNames.names.filter { name -> + name.contains( + searchQuery.lowercase( + Locale.getDefault() ) - } - var newMap = arrayListOf() - names.forEach { name -> - loadPokemonDataFromName(name)?.let { - newMap.add(it) - } + ) } - println("currentFilter: $currentFilter") - if (!currentFilter.equals("all")) { - newMap = newMap.filter { pokemon -> - pokemon.type == currentFilter - } as ArrayList - } - println(names) - println(newMap) - if (newMap.isNotEmpty()) { - println("Updating map") - pokemap = newMap; - } else { - searchQuery = "" - placeholder = - "No results for this filter: $currentFilter" + var newMap = arrayListOf() + names.forEach { name -> + loadPokemonDataFromName(name)?.let { + newMap.add(it) } } + println("currentFilter: $currentFilter") + if (!currentFilter.equals("all")) { + newMap = newMap.filter { pokemon -> + pokemon.type == currentFilter + } as ArrayList + } + println(names) + println(newMap) + if (newMap.isNotEmpty()) { + println("Updating map") + pokemap = newMap; + } else { + searchQuery = "" + placeholder = + "No results for this filter: $currentFilter" + } } - } else { - searchQuery = "" - placeholder = - "No results, make sure to use more than 2 letters." } + } else { + searchQuery = "" + placeholder = "No results, make sure to use more than 2 letters." } - ) { + }) { Icon(Icons.Default.Search, contentDescription = "Search") } - IconButton( - onClick = { - isFilterOpen = !isFilterOpen - } - ) { + IconButton(onClick = { + isFilterOpen = !isFilterOpen + }) { Icon(Icons.Default.Settings, contentDescription = "Filter") } } @@ -170,8 +160,7 @@ class HomeScreen : Screen { focusedLabelColor = orange, unfocusedLabelColor = orange, ), - placeholder = { Text(placeholder) } - ) + placeholder = { Text(placeholder) }) Spacer(modifier = Modifier.height(16.dp)) //Grid LazyVerticalGrid( @@ -179,9 +168,8 @@ class HomeScreen : Screen { ) { items(pokemap.size) { index -> Box(modifier = Modifier.size(256.dp).padding(5.dp)) { - Canvas( - modifier = Modifier.matchParentSize() - .clickable { navigator.push(DetailScreen(pokemap[index])) }) { + Canvas(modifier = Modifier.matchParentSize() + .clickable { navigator.push(DetailScreen(pokemap[index])) }) { drawRoundRect( color = Color.White, topLeft = Offset(0f, 0f), @@ -225,9 +213,7 @@ class HomeScreen : Screen { } } } - DropdownMenu( - expanded = isFilterOpen, - onDismissRequest = { isFilterOpen = false }) { + DropdownMenu(expanded = isFilterOpen, onDismissRequest = { isFilterOpen = false }) { filterOptions.forEach { option -> DropdownMenuItem(onClick = { currentFilter = option; isFilterOpen = false }) { Text(option) diff --git a/composeApp/src/commonMain/kotlin/App.kt b/composeApp/src/commonMain/kotlin/App.kt index abb0f6e..4e6335f 100644 --- a/composeApp/src/commonMain/kotlin/App.kt +++ b/composeApp/src/commonMain/kotlin/App.kt @@ -98,7 +98,8 @@ suspend fun loadPokemonData(startId: Int, endId: Int): List { val json = JSONObject(URL(apiString + i).readText()); val sprites = json.optJSONObject("sprites") val type: String = - json.getJSONArray("types").optJSONObject(0).optJSONObject("type")?.optString("name") ?: "null" + json.getJSONArray("types").optJSONObject(0).optJSONObject("type")?.optString("name") + ?: "null" val name: String = json.optString("name") .replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } @@ -117,14 +118,15 @@ suspend fun loadPokemonDataFromName(name: String): Pokemon? { if (trimmedName == "") return null var json: JSONObject try { - json = JSONObject(URL(apiString + trimmedName).readText()); + json = JSONObject(URL(apiString + trimmedName).readText()); } catch (e: Exception) { println(e) return null } val sprites = json.optJSONObject("sprites") val type: String = - json.getJSONArray("types").optJSONObject(0).optJSONObject("type")?.optString("name") ?: "null" + json.getJSONArray("types").optJSONObject(0).optJSONObject("type")?.optString("name") + ?: "null" val name: String = json.optString("name") .replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } diff --git a/composeApp/src/commonMain/kotlin/LoadingScreen.kt b/composeApp/src/commonMain/kotlin/LoadingScreen.kt index dab24c0..3a60c34 100644 --- a/composeApp/src/commonMain/kotlin/LoadingScreen.kt +++ b/composeApp/src/commonMain/kotlin/LoadingScreen.kt @@ -21,8 +21,7 @@ class LoadingScreen : Screen { Box(modifier = Modifier.background(color = orange).fillMaxSize()) { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { CircularProgressIndicator( - modifier = Modifier.size(128.dp), - color = Color.White + modifier = Modifier.size(128.dp), color = Color.White ) Text( "Fetching data from API...", diff --git a/composeApp/src/commonMain/kotlin/Pokemon.kt b/composeApp/src/commonMain/kotlin/Pokemon.kt index 788f3a3..874125b 100644 --- a/composeApp/src/commonMain/kotlin/Pokemon.kt +++ b/composeApp/src/commonMain/kotlin/Pokemon.kt @@ -1,8 +1,5 @@ import java.net.URL -data class Pokemon ( - val name: String, - val imageUrl: URL, - val type: String, - val id: Int +data class Pokemon( + val name: String, val imageUrl: URL, val type: String, val id: Int ) \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/PokemonData.kt b/composeApp/src/commonMain/kotlin/PokemonData.kt index 5125039..1d13525 100644 --- a/composeApp/src/commonMain/kotlin/PokemonData.kt +++ b/composeApp/src/commonMain/kotlin/PokemonData.kt @@ -5,8 +5,8 @@ data class PokemonData( val name: String, val type: String, val baseExperience: Int, - val height: Int, // Height in decimetres - val weight: Int, // Weight in hectograms + val height: Int, + val weight: Int, val hp: Int, val attack: Int, val defense: Int, @@ -18,8 +18,8 @@ data class PokemonData( fun fromJson(json: JSONObject): PokemonData { val name = json.optString("name") .replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } - val type = json.getJSONArray("types").optJSONObject(0).optJSONObject("type") - .optString("name") + val type = + json.getJSONArray("types").optJSONObject(0).optJSONObject("type").optString("name") val baseExperience = json.optInt("base_experience") val height = json.optInt("height") val weight = json.optInt("weight") diff --git a/composeApp/src/commonMain/kotlin/PokemonNames.kt b/composeApp/src/commonMain/kotlin/PokemonNames.kt index ccd1531..afb592b 100644 --- a/composeApp/src/commonMain/kotlin/PokemonNames.kt +++ b/composeApp/src/commonMain/kotlin/PokemonNames.kt @@ -1,4 +1,5 @@ object PokemonNames { - val string: String = "bulbasaur, ivysaur, venusaur, charmander, charmeleon, charizard, squirtle, wartortle, blastoise, caterpie, metapod, butterfree, weedle, kakuna, beedrill, pidgey, pidgeotto, pidgeot, rattata, raticate, spearow, fearow, ekans, arbok, pikachu, raichu, sandshrew, sandslash, nidoran-f, nidorina, nidoqueen, nidoran-m, nidorino, nidoking, clefairy, clefable, vulpix, ninetales, jigglypuff, wigglytuff, zubat, golbat, oddish, gloom, vileplume, paras, parasect, venonat, venomoth, diglett, dugtrio, meowth, persian, psyduck, golduck, mankey, primeape, growlithe, arcanine, poliwag, poliwhirl, poliwrath, abra, kadabra, alakazam, machop, machoke, machamp, bellsprout, weepinbell, victreebel, tentacool, tentacruel, geodude, graveler, golem, ponyta, rapidash, slowpoke, slowbro, magnemite, magneton, farfetchd, doduo, dodrio, seel, dewgong, grimer, muk, shellder, cloyster, gastly, haunter, gengar, onix, drowzee, hypno, krabby, kingler, voltorb, electrode, exeggcute, exeggutor, cubone, marowak, hitmonlee, hitmonchan, lickitung, koffing, weezing, rhyhorn, rhydon, chansey, tangela, kangaskhan, horsea, seadra, goldeen, seaking, staryu, starmie, mr-mime, scyther, jynx, electabuzz, magmar, pinsir, tauros, magikarp, gyarados, lapras, ditto, eevee, vaporeon, jolteon, flareon, porygon, omanyte, omastar, kabuto, kabutops, aerodactyl, snorlax, articuno, zapdos, moltres, dratini, dragonair, dragonite, mewtwo, mew, chikorita, bayleef, meganium, cyndaquil, quilava, typhlosion, totodile, croconaw, feraligatr, sentret, furret, hoothoot, noctowl, ledyba, ledian, spinarak, ariados, crobat, chinchou, lanturn, pichu, cleffa, igglybuff, togepi, togetic, natu, xatu, mareep, flaaffy, ampharos, bellossom, marill, azumarill, sudowoodo, politoed, hoppip, skiploom, jumpluff, aipom, sunkern, sunflora, yanma, wooper, quagsire, espeon, umbreon, murkrow, slowking, misdreavus, unown, wobbuffet, girafarig, pineco, forretress, dunsparce, gligar, steelix, snubbull, granbull, qwilfish, scizor, shuckle, heracross, sneasel, teddiursa, ursaring, slugma, magcargo, swinub, piloswine, corsola, remoraid, octillery, delibird, mantine, skarmory, houndour, houndoom, kingdra, phanpy, donphan, porygon2, stantler, smeargle, tyrogue, hitmontop, smoochum, elekid, magby, miltank, blissey, raikou, entei, suicune, larvitar, pupitar, tyranitar, lugia, ho-oh, celebi, treecko, grovyle, sceptile, torchic, combusken, blaziken, mudkip, marshtomp, swampert, poochyena, mightyena, zigzagoon, linoone, wurmple, silcoon, beautifly, cascoon, dustox, lotad, lombre, ludicolo, seedot, nuzleaf, shiftry, taillow, swellow, wingull, pelipper, ralts, kirlia, gardevoir, surskit, masquerain, shroomish, breloom, slakoth, vigoroth, slaking, nincada, ninjask, shedinja, whismur, loudred, exploud, makuhita, hariyama, azurill, nosepass, skitty, delcatty, sableye, mawile, aron, lairon, aggron, meditite, medicham, electrike, manectric, plusle, minun, volbeat, illumise, roselia, gulpin, swalot, carvanha, sharpedo, wailmer, wailord, numel, camerupt, torkoal, spoink, grumpig, spinda, trapinch, vibrava, flygon, cacnea, cacturne, swablu, altaria, zangoose, seviper, lunatone, solrock, barboach, whiscash, corphish, crawdaunt, baltoy, claydol, lileep, cradily, anorith, armaldo, feebas, milotic, castform, kecleon, shuppet, banette, duskull, dusclops, tropius, chimecho, absol, wynaut, snorunt, glalie, spheal, sealeo, walrein, clamperl, huntail, gorebyss, relicanth, luvdisc, bagon, shelgon, salamence, beldum, metang, metagross, regirock, regice, registeel, latias, latios, kyogre, groudon, rayquaza, jirachi, deoxys-normal, turtwig, grotle, torterra, chimchar, monferno, infernape, piplup, prinplup, empoleon, starly, staravia, staraptor, bidoof, bibarel, kricketot, kricketune, shinx, luxio, luxray, budew, roserade, cranidos, rampardos, shieldon, bastiodon, burmy, wormadam-plant, mothim, combee, vespiquen, pachirisu, buizel, floatzel, cherubi, cherrim, shellos, gastrodon, ambipom, drifloon, drifblim, buneary, lopunny, mismagius, honchkrow, glameow, purugly, chingling, stunky, skuntank, bronzor, bronzong, bonsly, mime-jr, happiny, chatot, spiritomb, gible, gabite, garchomp, munchlax, riolu, lucario, hippopotas, hippowdon, skorupi, drapion, croagunk, toxicroak, carnivine, finneon, lumineon, mantyke, snover, abomasnow, weavile, magnezone, lickilicky, rhyperior, tangrowth, electivire, magmortar, togekiss, yanmega, leafeon, glaceon, gliscor, mamoswine, porygon-z, gallade, probopass, dusknoir, froslass, rotom, uxie, mesprit, azelf, dialga, palkia, heatran, regigigas, giratina-altered, cresselia, phione, manaphy, darkrai, shaymin-land, arceus, victini, snivy, servine, serperior, tepig, pignite, emboar, oshawott, dewott, samurott, patrat, watchog, lillipup, herdier, stoutland, purrloin, liepard, pansage, simisage, pansear, simisear, panpour, simipour, munna, musharna, pidove, tranquill, unfezant, blitzle, zebstrika, roggenrola, boldore, gigalith, woobat, swoobat, drilbur, excadrill, audino, timburr, gurdurr, conkeldurr, tympole, palpitoad, seismitoad, throh, sawk, sewaddle, swadloon, leavanny, venipede, whirlipede, scolipede, cottonee, whimsicott, petilil, lilligant, basculin-red-striped, sandile, krokorok, krookodile, darumaka, darmanitan-standard, maractus, dwebble, crustle, scraggy, scrafty, sigilyph, yamask, cofagrigus, tirtouga, carracosta, archen, archeops, trubbish, garbodor, zorua, zoroark, minccino, cinccino, gothita, gothorita, gothitelle, solosis, duosion, reuniclus, ducklett, swanna, vanillite, vanillish, vanilluxe, deerling, sawsbuck, emolga, karrablast, escavalier, foongus, amoonguss, frillish, jellicent, alomomola, joltik, galvantula, ferroseed, ferrothorn, klink, klang, klinklang, tynamo, eelektrik, eelektross, elgyem, beheeyem, litwick, lampent, chandelure, axew, fraxure, haxorus, cubchoo, beartic, cryogonal, shelmet, accelgor, stunfisk, mienfoo, mienshao, druddigon, golett, golurk, pawniard, bisharp, bouffalant, rufflet, braviary, vullaby, mandibuzz, heatmor, durant, deino, zweilous, hydreigon, larvesta, volcarona, cobalion, terrakion, virizion, tornadus-incarnate, thundurus-incarnate, reshiram, zekrom, landorus-incarnate, kyurem, keldeo-ordinary, meloetta-aria, genesect, chespin, quilladin, chesnaught, fennekin, braixen, delphox, froakie, frogadier, greninja, bunnelby, diggersby, fletchling, fletchinder, talonflame, scatterbug, spewpa, vivillon, litleo, pyroar, flabebe, floette, florges, skiddo, gogoat, pancham, pangoro, furfrou, espurr, meowstic-male, honedge, doublade, aegislash-shield, spritzee, aromatisse, swirlix, slurpuff, inkay, malamar, binacle, barbaracle, skrelp, dragalge, clauncher, clawitzer, helioptile, heliolisk, tyrunt, tyrantrum, amaura, aurorus, sylveon, hawlucha, dedenne, carbink, goomy, sliggoo, goodra, klefki, phantump, trevenant, pumpkaboo-average, gourgeist-average, bergmite, avalugg, noibat, noivern, xerneas, yveltal, zygarde-50, diancie, hoopa, volcanion, rowlet, dartrix, decidueye, litten, torracat, incineroar, popplio, brionne, primarina, pikipek, trumbeak, toucannon, yungoos, gumshoos, grubbin, charjabug, vikavolt, crabrawler, crabominable, oricorio-baile, cutiefly, ribombee, rockruff, lycanroc-midday, wishiwashi-solo, mareanie, toxapex, mudbray, mudsdale, dewpider, araquanid, fomantis, lurantis, morelull, shiinotic, salandit, salazzle, stufful, bewear, bounsweet, steenee, tsareena, comfey, oranguru, passimian, wimpod, golisopod, sandygast, palossand, pyukumuku, type-null, silvally, minior-red-meteor, komala, turtonator, togedemaru, mimikyu-disguised, bruxish, drampa, dhelmise, jangmo-o, hakamo-o, kommo-o, tapu-koko, tapu-lele, tapu-bulu, tapu-fini, cosmog, cosmoem, solgaleo, lunala, nihilego, buzzwole, pheromosa, xurkitree, celesteela, kartana, guzzlord, necrozma, magearna, marshadow, poipole, naganadel, stakataka, blacephalon, zeraora, meltan, melmetal, grookey, thwackey, rillaboom, scorbunny, raboot, cinderace, sobble, drizzile, inteleon, skwovet, greedent, rookidee, corvisquire, corviknight, blipbug, dottler, orbeetle, nickit, thievul, gossifleur, eldegoss, wooloo, dubwool, chewtle, drednaw, yamper, boltund, rolycoly, carkol, coalossal, applin, flapple, appletun, silicobra, sandaconda, cramorant, arrokuda, barraskewda, toxel, toxtricity-amped, sizzlipede, centiskorch, clobbopus, grapploct, sinistea, polteageist, hatenna, hattrem, hatterene, impidimp, morgrem, grimmsnarl, obstagoon, perrserker, cursola, sirfetchd, mr-rime, runerigus, milcery, alcremie, falinks, pincurchin, snom, frosmoth, stonjourner, eiscue-ice, indeedee-male, morpeko-full-belly, cufant, copperajah, dracozolt, arctozolt, dracovish, arctovish, duraludon, dreepy, drakloak, dragapult, zacian, zamazenta, eternatus, kubfu, urshifu-single-strike, zarude, regieleki, regidrago, glastrier, spectrier, calyrex, wyrdeer, kleavor, ursaluna, basculegion-male, sneasler, overqwil, enamorus-incarnate, sprigatito, floragato, meowscarada, fuecoco, crocalor, skeledirge, quaxly, quaxwell, quaquaval, lechonk, oinkologne, tarountula, spidops, nymble, lokix, pawmi, pawmo, pawmot, tandemaus, maushold, fidough, dachsbun, smoliv, dolliv, arboliva, squawkabilly, nacli, naclstack, garganacl, charcadet, armarouge, ceruledge, tadbulb, bellibolt, wattrel, kilowattrel, maschiff, mabosstiff, shroodle, grafaiai, bramblin, brambleghast, toedscool, toedscruel, klawf, capsakid, scovillain, rellor, rabsca, flittle, espathra, tinkatink, tinkatuff, tinkaton, wiglett, wugtrio, bombirdier, finizen, palafin, varoom, revavroom, cyclizar, orthworm, glimmet, glimmora, greavard, houndstone, flamigo, cetoddle, cetitan, veluza, dondozo, tatsugiri, annihilape, clodsire, farigiraf, dudunsparce, kingambit, great-tusk, scream-tail, brute-bonnet, flutter-mane, slither-wing, sandy-shocks, iron-treads, iron-bundle, iron-hands, iron-jugulis, iron-moth, iron-thorns, frigibax, arctibax, baxcalibur, gimmighoul, gholdengo, wo-chien, chien-pao, ting-lu, chi-yu, roaring-moon, iron-valiant, koraidon, miraidon, walking-wake, iron-leaves, dipplin, poltchageist, sinistcha, okidogi, munkidori, fezandipiti, ogerpon, archaludon, hydrapple, gouging-fire, raging-bolt, iron-boulder, iron-crown, terapagos, pecharunt" + val string: String = + "bulbasaur, ivysaur, venusaur, charmander, charmeleon, charizard, squirtle, wartortle, blastoise, caterpie, metapod, butterfree, weedle, kakuna, beedrill, pidgey, pidgeotto, pidgeot, rattata, raticate, spearow, fearow, ekans, arbok, pikachu, raichu, sandshrew, sandslash, nidoran-f, nidorina, nidoqueen, nidoran-m, nidorino, nidoking, clefairy, clefable, vulpix, ninetales, jigglypuff, wigglytuff, zubat, golbat, oddish, gloom, vileplume, paras, parasect, venonat, venomoth, diglett, dugtrio, meowth, persian, psyduck, golduck, mankey, primeape, growlithe, arcanine, poliwag, poliwhirl, poliwrath, abra, kadabra, alakazam, machop, machoke, machamp, bellsprout, weepinbell, victreebel, tentacool, tentacruel, geodude, graveler, golem, ponyta, rapidash, slowpoke, slowbro, magnemite, magneton, farfetchd, doduo, dodrio, seel, dewgong, grimer, muk, shellder, cloyster, gastly, haunter, gengar, onix, drowzee, hypno, krabby, kingler, voltorb, electrode, exeggcute, exeggutor, cubone, marowak, hitmonlee, hitmonchan, lickitung, koffing, weezing, rhyhorn, rhydon, chansey, tangela, kangaskhan, horsea, seadra, goldeen, seaking, staryu, starmie, mr-mime, scyther, jynx, electabuzz, magmar, pinsir, tauros, magikarp, gyarados, lapras, ditto, eevee, vaporeon, jolteon, flareon, porygon, omanyte, omastar, kabuto, kabutops, aerodactyl, snorlax, articuno, zapdos, moltres, dratini, dragonair, dragonite, mewtwo, mew, chikorita, bayleef, meganium, cyndaquil, quilava, typhlosion, totodile, croconaw, feraligatr, sentret, furret, hoothoot, noctowl, ledyba, ledian, spinarak, ariados, crobat, chinchou, lanturn, pichu, cleffa, igglybuff, togepi, togetic, natu, xatu, mareep, flaaffy, ampharos, bellossom, marill, azumarill, sudowoodo, politoed, hoppip, skiploom, jumpluff, aipom, sunkern, sunflora, yanma, wooper, quagsire, espeon, umbreon, murkrow, slowking, misdreavus, unown, wobbuffet, girafarig, pineco, forretress, dunsparce, gligar, steelix, snubbull, granbull, qwilfish, scizor, shuckle, heracross, sneasel, teddiursa, ursaring, slugma, magcargo, swinub, piloswine, corsola, remoraid, octillery, delibird, mantine, skarmory, houndour, houndoom, kingdra, phanpy, donphan, porygon2, stantler, smeargle, tyrogue, hitmontop, smoochum, elekid, magby, miltank, blissey, raikou, entei, suicune, larvitar, pupitar, tyranitar, lugia, ho-oh, celebi, treecko, grovyle, sceptile, torchic, combusken, blaziken, mudkip, marshtomp, swampert, poochyena, mightyena, zigzagoon, linoone, wurmple, silcoon, beautifly, cascoon, dustox, lotad, lombre, ludicolo, seedot, nuzleaf, shiftry, taillow, swellow, wingull, pelipper, ralts, kirlia, gardevoir, surskit, masquerain, shroomish, breloom, slakoth, vigoroth, slaking, nincada, ninjask, shedinja, whismur, loudred, exploud, makuhita, hariyama, azurill, nosepass, skitty, delcatty, sableye, mawile, aron, lairon, aggron, meditite, medicham, electrike, manectric, plusle, minun, volbeat, illumise, roselia, gulpin, swalot, carvanha, sharpedo, wailmer, wailord, numel, camerupt, torkoal, spoink, grumpig, spinda, trapinch, vibrava, flygon, cacnea, cacturne, swablu, altaria, zangoose, seviper, lunatone, solrock, barboach, whiscash, corphish, crawdaunt, baltoy, claydol, lileep, cradily, anorith, armaldo, feebas, milotic, castform, kecleon, shuppet, banette, duskull, dusclops, tropius, chimecho, absol, wynaut, snorunt, glalie, spheal, sealeo, walrein, clamperl, huntail, gorebyss, relicanth, luvdisc, bagon, shelgon, salamence, beldum, metang, metagross, regirock, regice, registeel, latias, latios, kyogre, groudon, rayquaza, jirachi, deoxys-normal, turtwig, grotle, torterra, chimchar, monferno, infernape, piplup, prinplup, empoleon, starly, staravia, staraptor, bidoof, bibarel, kricketot, kricketune, shinx, luxio, luxray, budew, roserade, cranidos, rampardos, shieldon, bastiodon, burmy, wormadam-plant, mothim, combee, vespiquen, pachirisu, buizel, floatzel, cherubi, cherrim, shellos, gastrodon, ambipom, drifloon, drifblim, buneary, lopunny, mismagius, honchkrow, glameow, purugly, chingling, stunky, skuntank, bronzor, bronzong, bonsly, mime-jr, happiny, chatot, spiritomb, gible, gabite, garchomp, munchlax, riolu, lucario, hippopotas, hippowdon, skorupi, drapion, croagunk, toxicroak, carnivine, finneon, lumineon, mantyke, snover, abomasnow, weavile, magnezone, lickilicky, rhyperior, tangrowth, electivire, magmortar, togekiss, yanmega, leafeon, glaceon, gliscor, mamoswine, porygon-z, gallade, probopass, dusknoir, froslass, rotom, uxie, mesprit, azelf, dialga, palkia, heatran, regigigas, giratina-altered, cresselia, phione, manaphy, darkrai, shaymin-land, arceus, victini, snivy, servine, serperior, tepig, pignite, emboar, oshawott, dewott, samurott, patrat, watchog, lillipup, herdier, stoutland, purrloin, liepard, pansage, simisage, pansear, simisear, panpour, simipour, munna, musharna, pidove, tranquill, unfezant, blitzle, zebstrika, roggenrola, boldore, gigalith, woobat, swoobat, drilbur, excadrill, audino, timburr, gurdurr, conkeldurr, tympole, palpitoad, seismitoad, throh, sawk, sewaddle, swadloon, leavanny, venipede, whirlipede, scolipede, cottonee, whimsicott, petilil, lilligant, basculin-red-striped, sandile, krokorok, krookodile, darumaka, darmanitan-standard, maractus, dwebble, crustle, scraggy, scrafty, sigilyph, yamask, cofagrigus, tirtouga, carracosta, archen, archeops, trubbish, garbodor, zorua, zoroark, minccino, cinccino, gothita, gothorita, gothitelle, solosis, duosion, reuniclus, ducklett, swanna, vanillite, vanillish, vanilluxe, deerling, sawsbuck, emolga, karrablast, escavalier, foongus, amoonguss, frillish, jellicent, alomomola, joltik, galvantula, ferroseed, ferrothorn, klink, klang, klinklang, tynamo, eelektrik, eelektross, elgyem, beheeyem, litwick, lampent, chandelure, axew, fraxure, haxorus, cubchoo, beartic, cryogonal, shelmet, accelgor, stunfisk, mienfoo, mienshao, druddigon, golett, golurk, pawniard, bisharp, bouffalant, rufflet, braviary, vullaby, mandibuzz, heatmor, durant, deino, zweilous, hydreigon, larvesta, volcarona, cobalion, terrakion, virizion, tornadus-incarnate, thundurus-incarnate, reshiram, zekrom, landorus-incarnate, kyurem, keldeo-ordinary, meloetta-aria, genesect, chespin, quilladin, chesnaught, fennekin, braixen, delphox, froakie, frogadier, greninja, bunnelby, diggersby, fletchling, fletchinder, talonflame, scatterbug, spewpa, vivillon, litleo, pyroar, flabebe, floette, florges, skiddo, gogoat, pancham, pangoro, furfrou, espurr, meowstic-male, honedge, doublade, aegislash-shield, spritzee, aromatisse, swirlix, slurpuff, inkay, malamar, binacle, barbaracle, skrelp, dragalge, clauncher, clawitzer, helioptile, heliolisk, tyrunt, tyrantrum, amaura, aurorus, sylveon, hawlucha, dedenne, carbink, goomy, sliggoo, goodra, klefki, phantump, trevenant, pumpkaboo-average, gourgeist-average, bergmite, avalugg, noibat, noivern, xerneas, yveltal, zygarde-50, diancie, hoopa, volcanion, rowlet, dartrix, decidueye, litten, torracat, incineroar, popplio, brionne, primarina, pikipek, trumbeak, toucannon, yungoos, gumshoos, grubbin, charjabug, vikavolt, crabrawler, crabominable, oricorio-baile, cutiefly, ribombee, rockruff, lycanroc-midday, wishiwashi-solo, mareanie, toxapex, mudbray, mudsdale, dewpider, araquanid, fomantis, lurantis, morelull, shiinotic, salandit, salazzle, stufful, bewear, bounsweet, steenee, tsareena, comfey, oranguru, passimian, wimpod, golisopod, sandygast, palossand, pyukumuku, type-null, silvally, minior-red-meteor, komala, turtonator, togedemaru, mimikyu-disguised, bruxish, drampa, dhelmise, jangmo-o, hakamo-o, kommo-o, tapu-koko, tapu-lele, tapu-bulu, tapu-fini, cosmog, cosmoem, solgaleo, lunala, nihilego, buzzwole, pheromosa, xurkitree, celesteela, kartana, guzzlord, necrozma, magearna, marshadow, poipole, naganadel, stakataka, blacephalon, zeraora, meltan, melmetal, grookey, thwackey, rillaboom, scorbunny, raboot, cinderace, sobble, drizzile, inteleon, skwovet, greedent, rookidee, corvisquire, corviknight, blipbug, dottler, orbeetle, nickit, thievul, gossifleur, eldegoss, wooloo, dubwool, chewtle, drednaw, yamper, boltund, rolycoly, carkol, coalossal, applin, flapple, appletun, silicobra, sandaconda, cramorant, arrokuda, barraskewda, toxel, toxtricity-amped, sizzlipede, centiskorch, clobbopus, grapploct, sinistea, polteageist, hatenna, hattrem, hatterene, impidimp, morgrem, grimmsnarl, obstagoon, perrserker, cursola, sirfetchd, mr-rime, runerigus, milcery, alcremie, falinks, pincurchin, snom, frosmoth, stonjourner, eiscue-ice, indeedee-male, morpeko-full-belly, cufant, copperajah, dracozolt, arctozolt, dracovish, arctovish, duraludon, dreepy, drakloak, dragapult, zacian, zamazenta, eternatus, kubfu, urshifu-single-strike, zarude, regieleki, regidrago, glastrier, spectrier, calyrex, wyrdeer, kleavor, ursaluna, basculegion-male, sneasler, overqwil, enamorus-incarnate, sprigatito, floragato, meowscarada, fuecoco, crocalor, skeledirge, quaxly, quaxwell, quaquaval, lechonk, oinkologne, tarountula, spidops, nymble, lokix, pawmi, pawmo, pawmot, tandemaus, maushold, fidough, dachsbun, smoliv, dolliv, arboliva, squawkabilly, nacli, naclstack, garganacl, charcadet, armarouge, ceruledge, tadbulb, bellibolt, wattrel, kilowattrel, maschiff, mabosstiff, shroodle, grafaiai, bramblin, brambleghast, toedscool, toedscruel, klawf, capsakid, scovillain, rellor, rabsca, flittle, espathra, tinkatink, tinkatuff, tinkaton, wiglett, wugtrio, bombirdier, finizen, palafin, varoom, revavroom, cyclizar, orthworm, glimmet, glimmora, greavard, houndstone, flamigo, cetoddle, cetitan, veluza, dondozo, tatsugiri, annihilape, clodsire, farigiraf, dudunsparce, kingambit, great-tusk, scream-tail, brute-bonnet, flutter-mane, slither-wing, sandy-shocks, iron-treads, iron-bundle, iron-hands, iron-jugulis, iron-moth, iron-thorns, frigibax, arctibax, baxcalibur, gimmighoul, gholdengo, wo-chien, chien-pao, ting-lu, chi-yu, roaring-moon, iron-valiant, koraidon, miraidon, walking-wake, iron-leaves, dipplin, poltchageist, sinistcha, okidogi, munkidori, fezandipiti, ogerpon, archaludon, hydrapple, gouging-fire, raging-bolt, iron-boulder, iron-crown, terapagos, pecharunt" val names: ArrayList = arrayListOf(*string.split(",").toTypedArray()) } \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/PokemonStatCard.kt b/composeApp/src/commonMain/kotlin/PokemonStatCard.kt index ce53c0b..264930f 100644 --- a/composeApp/src/commonMain/kotlin/PokemonStatCard.kt +++ b/composeApp/src/commonMain/kotlin/PokemonStatCard.kt @@ -1,4 +1,3 @@ - import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -21,16 +20,10 @@ import androidx.compose.ui.unit.dp @Composable fun PokemonStatCard( - hp: Int, - attack: Int, - defense: Int, - specialAttack: Int, - specialDefense: Int, - speed: Int + hp: Int, attack: Int, defense: Int, specialAttack: Int, specialDefense: Int, speed: Int ) { Column( - modifier = Modifier - .background(color = Color.White, shape = RoundedCornerShape(8.dp)) + modifier = Modifier.background(color = Color.White, shape = RoundedCornerShape(8.dp)) .padding(16.dp), verticalArrangement = Arrangement.Bottom, ) { @@ -46,8 +39,7 @@ fun PokemonStatCard( @Composable private fun StatRow(statName: String, progress: Int, color: Color) { Row( - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.fillMaxWidth() + verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { Text( text = "$statName: $progress",