diff --git a/PokemonGoIV/0Main.vb b/PokemonGoIV/0Main.vb
index e5c4c55..7466fc6 100644
--- a/PokemonGoIV/0Main.vb
+++ b/PokemonGoIV/0Main.vb
@@ -82,25 +82,13 @@ End Sub
' fnAskParam: Asks the users for the parameters for the Pokémon.
Function fnAskParam As aFindIVParam
Dim oDialog As Object
- Dim oListPokemons As Object, mPokemons () As String, nI As Integer
+ Dim oList As Object, mPokemons () As String, nI As Integer
Dim bIsBestAttack As Boolean, bIsBestDefense As Boolean
Dim bIsBestHP As Boolean
Dim aQuery As New aFindIVParam
DialogLibraries.loadLibrary "PokemonGoIV"
oDialog = CreateUnoDialog (DialogLibraries.PokemonGoIV.DlgMain)
-
- ' Sets the Pokémons list
- oListPokemons = oDialog.getControl ("lstPokemon")
- oListPokemons.removeItems (0, oListPokemons.getItemCount)
- subReadBaseStats
- ReDim mPokemons (UBound (maBaseStats)) As String
- For nI = 0 To UBound (maBaseStats)
- mPokemons (nI) = _
- fnMapPokemonIdToName (maBaseStats (nI).sPokemon)
- Next nI
- oListPokemons.addItems (mPokemons, 0)
-
oDialog.getControl ("lstTotal").setVisible (False)
oDialog.getControl ("txtBestBefore").setVisible (False)
oDialog.getControl ("lstBest").setVisible (False)
@@ -253,10 +241,10 @@ Sub subRdoTeamValorItemChanged (oEvent As object)
"Its", 8, "is its strongest feature.", 65)
mItems = Array ( _
- "I'm blown away by its stats. WOW!", _
- "It's got excellent stats! How exciting!", _
- "Its stats indicate that in battle, it'll get the job done.", _
- "Its stats don't point to greatness in battle.")
+ fnGetResString ("AppraisalValorMax15"), _
+ fnGetResString ("AppraisalValorMax13Or14"), _
+ fnGetResString ("AppraisalValorMax8To12"), _
+ fnGetResString ("AppraisalValorMaxUpTo7"))
oList = oDialog.getControl ("lstMax")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -290,10 +278,10 @@ Sub subRdoTeamMysticItemChanged (oEvent As object)
"I see that its best attribute is its", 85, ".", 5)
mItems = Array ( _
- "Its stats exceed my calculations. It's incredible!", _
- "I am certainly impressed by its stats, I must say.", _
- "Its stats are noticeably trending to the positive.", _
- "Its stats are not out of the norm, in my opinion.")
+ fnGetResString ("AppraisalMysticMax15"), _
+ fnGetResString ("AppraisalMysticMax13Or14"), _
+ fnGetResString ("AppraisalMysticMax8To12"), _
+ fnGetResString ("AppraisalMysticMaxUpTo7"))
oList = oDialog.getControl ("lstMax")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -327,10 +315,10 @@ Sub subRdoTeamInstinctItemChanged (oEvent As object)
"Its best quality is", 45, ".", 5)
mItems = Array ( _
- "Its stats are the best I've ever seen! No doubt about it!", _
- "Its stats are really strong! Impressive.", _
- "It's definitely got some good stats. Definitely!", _
- "Its stats are all right, but kinda basic, as far as I can see.")
+ fnGetResString ("AppraisalInstinctMax15"), _
+ fnGetResString ("AppraisalInstinctMax13Or14"), _
+ fnGetResString ("AppraisalInstinctMax8To12"), _
+ fnGetResString ("AppraisalInstinctMaxUpTo7"))
oList = oDialog.getControl ("lstMax")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -350,7 +338,10 @@ Sub subUpdateBestStatAppraisal (oDialog As Object, _
oText.setText (sBefore)
nX = oText.getModel.getPropertyValue ("PositionX") + nBeforeWidth
- mItems = Array ("Attack", "Defense", "HP")
+ mItems = Array ( _
+ fnGetResString ("StatAttack"), _
+ fnGetResString ("StatDefense"), _
+ fnGetResString ("StatHP"))
oList = oDialog.getControl ("lstBest")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -373,99 +364,120 @@ End Sub
' subLstBestItemChanged: When the best stat is selected.
Sub subLstBestItemChanged (oEvent As object)
- Dim oDialog As Object, oCheckBox As Object
+ Dim oDialog As Object, oCheckBox As Object, sBestToo As String
oDialog = oEvent.Source.getContext
If oDialog.getControl ("rdoTeamValor").getState Then
- If oDialog.getControl ("lstBest").getSelectedItem = "Attack" Then
+ sBestToo = fnGetResString ("AppraisalValorBestToo")
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 0 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("I'm just as impressed with its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("I'm just as impressed with its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "Defense" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 1 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("I'm just as impressed with its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("I'm just as impressed with its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "HP" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 2 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("I'm just as impressed with its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("I'm just as impressed with its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
End If
If oDialog.getControl ("rdoTeamMystic").getState Then
- If oDialog.getControl ("lstBest").getSelectedItem = "Attack" Then
+ sBestToo = fnGetResString ("AppraisalMysticBestToo")
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 0 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("It is matched equally by its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("It is matched equally by its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "Defense" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 1 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("It is matched equally by its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("It is matched equally by its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "HP" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 2 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("It is matched equally by its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("It is matched equally by its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
End If
If oDialog.getControl ("rdoTeamInstinct").getState Then
- If oDialog.getControl ("lstBest").getSelectedItem = "Attack" Then
+ sBestToo = fnGetResString ("AppraisalInstinctBestToo")
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 0 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("Its Defense is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("Its HP is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "Defense" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 1 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("Its Attack is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("Its HP is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "HP" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 2 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("Its Attack is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("Its Defense is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
@@ -481,24 +493,24 @@ Sub subUpdateTotalAppraisal ( _
If oDialog.getControl ("rdoTeamValor").getState Then
mItems = Array ( _
- "Overall, your [Pokémon] simply amazes me. It can accomplish anything!", _
- "Overall, your [Pokémon] is a strong Pokémon. You should be proud!", _
- "Overall, your [Pokémon] is a decent Pokémon.", _
- "Overall, your [Pokémon] may not be great in battle, but I still like it!")
+ fnGetResString ("AppraisalValorTotal37OrHigher"), _
+ fnGetResString ("AppraisalValorTotal30To36"), _
+ fnGetResString ("AppraisalValorTotal23To29"), _
+ fnGetResString ("AppraisalValorTotalUpTo22"))
End If
If oDialog.getControl ("rdoTeamMystic").getState Then
mItems = Array ( _
- "Overall, your [Pokémon] is a wonder! What a breathtaking Pokémon!", _
- "Overall, your [Pokémon] has certainly caught my attention.", _
- "Overall, your [Pokémon] is above average.", _
- "Overall, your [Pokémon] is not likely to make much headway in battle.")
+ fnGetResString ("AppraisalMysticTotal37OrHigher"), _
+ fnGetResString ("AppraisalMysticTotal30To36"), _
+ fnGetResString ("AppraisalMysticTotal23To29"), _
+ fnGetResString ("AppraisalMysticTotalUpTo22"))
End If
If oDialog.getControl ("rdoTeamInstinct").getState Then
mItems = Array ( _
- "Overall, your [Pokémon] looks like it can really battle with the best of them!", _
- "Overall, your [Pokémon] is really strong!", _
- "Overall, your [Pokémon] is pretty decent!", _
- "Overall, your [Pokémon] has room for improvement as far as battling goes.")
+ fnGetResString ("AppraisalInstinctTotal37OrHigher"), _
+ fnGetResString ("AppraisalInstinctTotal30To36"), _
+ fnGetResString ("AppraisalInstinctTotal23To29"), _
+ fnGetResString ("AppraisalInstinctTotalUpTo22"))
End If
' The team was not selected yet.
If UBound (mItems) = -1 Then
@@ -1109,15 +1121,16 @@ End Function
' fnReplace: Replaces all occurrances of a term to another.
Function fnReplace ( _
sText As String, sFrom As String, sTo As String) As String
- Dim nPos As Integer
+ Dim sResult As String, nPos As Integer
- nPos = InStr (sText, sFrom)
+ sResult = sText
+ nPos = InStr (sResult, sFrom)
Do While nPos <> 0
- sText = Left (sText, nPos - 1) & sTo _
- & Right (sText, Len (sText) - nPos - Len (sFrom) + 1)
- nPos = InStr (nPos + Len (sTo), sText, sFrom)
+ sResult = Left (sResult, nPos - 1) & sTo _
+ & Right (sResult, Len (sResult) - nPos - Len (sFrom) + 1)
+ nPos = InStr (nPos + Len (sTo), sResult, sFrom)
Loop
- fnReplace = sText
+ fnReplace = sResult
End Function
' subReadCPM: Reads the CPM table.
diff --git a/oxt/AddonConfiguration.xcu b/oxt/AddonConfiguration.xcu
index 7a6dc76..deafcde 100644
--- a/oxt/AddonConfiguration.xcu
+++ b/oxt/AddonConfiguration.xcu
@@ -40,834 +40,175 @@
找不出符合的 IV 值。
-
-
+
- Team Valor
+ Attack
+
+
+ Defense
+
+
+
+
+ HP
+
+
+
Candela, leader of Team Valor, says:
Valor 隊隊長 Candela 說:
-
+
- Team Mystic
+ Overall, your [Pokémon] simply amazes me. It can accomplish anything!
+
+
+ Overall, your [Pokémon] is a strong Pokémon. You should be proud!
+
+
+
+
+ Overall, your [Pokémon] is a decent Pokémon.
+
+
+
+
+ Overall, your [Pokémon] may not be great in battle, but I still like it!
+
+
+
+
+ I'm just as impressed with its [Stat].
+
+
+
+
+ I'm blown away by its stats. WOW!
+
+
+
+
+ It's got excellent stats! How exciting!
+
+
+
+
+ Its stats indicate that in battle, it'll get the job done.
+
+
+
+
+ Its stats don't point to greatness in battle.
+
+
+
Blanche, leader of Team Mystic, says:
Mystic 隊隊長 Blanche 說:
-
+
- Team Instinct
+ Overall, your [Pokémon] is a wonder! What a breathtaking Pokémon!
+
+
+ Overall, your [Pokémon] has certainly caught my attention.
+
+
+
+
+ Overall, your [Pokémon] is above average.
+
+
+
+
+ Overall, your [Pokémon] is not likely to make much headway in battle.
+
+
+
+
+ It is matched equally by its [Stat].
+
+
+
+
+ Its stats exceed my calculations. It's incredible!
+
+
+
+
+ I am certainly impressed by its stats, I must say.
+
+
+
+
+ Its stats are noticeably trending to the positive.
+
+
+
+
+ Its stats are not out of the norm, in my opinion.
+
+
+
Spark, leader of Team Instinct, says:
Instinct 隊隊長 Spark 說:
-
-
-
- Bulbasaur
+
+
+ Overall, your [Pokémon] is not likely to make much headway in battle.
-
-
- Ivysaur
+
+
+ Overall, your [Pokémon] is really strong!
-
-
- Venusaur
+
+
+ Overall, your [Pokémon] is pretty decent!
-
-
- Charmander
+
+
+ Overall, your [Pokémon] has room for improvement as far as battling goes.
-
-
- Charmeleon
+
+
+ Its [Stat] is great, too!
-
-
- Charizard
+
+
+ Its stats are the best I've ever seen! No doubt about it!
-
-
- Squirtle
+
+
+ Its stats are really strong! Impressive.
-
-
- Wartortle
+
+
+ It's definitely got some good stats. Definitely!
-
-
- Blastoise
-
-
-
-
- Caterpie
-
-
-
-
- Metapod
-
-
-
-
- Butterfree
-
-
-
-
- Weedle
-
-
-
-
- Kakuna
-
-
-
-
- Beedrill
-
-
-
-
- Pidgey
-
-
-
-
- Pidgeotto
-
-
-
-
- Pidgeot
-
-
-
-
- Rattata
-
-
-
-
- Raticate
-
-
-
-
- Spearow
-
-
-
-
- Fearow
-
-
-
-
- Ekans
-
-
-
-
- Arbok
-
-
-
-
- Pikachu
-
-
-
-
- Raichu
-
-
-
-
- Sandshrew
-
-
-
-
- Sandslash
-
-
-
-
- Nidoran♀
-
-
-
-
- Nidorina
-
-
-
-
- Nidoqueen
-
-
-
-
- Nidoran♂
-
-
-
-
- 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
-
-
-
-
- Farfetch'd
-
-
-
-
- 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
-
-
-
-
- Pichu
-
-
-
-
- Cleffa
-
-
-
-
- Igglybuff
-
-
-
-
- Togepi
-
-
-
-
- Togetic
-
-
-
-
- Smoochum
-
-
-
-
- Elekid
-
-
-
-
- Magby
+
+
+ Its stats are all right, but kinda basic, as far as I can see.
diff --git a/oxt/PokemonGoIV/0Main.xba b/oxt/PokemonGoIV/0Main.xba
index 93f7a6c..aed1c00 100644
--- a/oxt/PokemonGoIV/0Main.xba
+++ b/oxt/PokemonGoIV/0Main.xba
@@ -84,25 +84,13 @@ End Sub
' fnAskParam: Asks the users for the parameters for the Pokémon.
Function fnAskParam As aFindIVParam
Dim oDialog As Object
- Dim oListPokemons As Object, mPokemons () As String, nI As Integer
+ Dim oList As Object, mPokemons () As String, nI As Integer
Dim bIsBestAttack As Boolean, bIsBestDefense As Boolean
Dim bIsBestHP As Boolean
Dim aQuery As New aFindIVParam
DialogLibraries.loadLibrary "PokemonGoIV"
oDialog = CreateUnoDialog (DialogLibraries.PokemonGoIV.DlgMain)
-
- ' Sets the Pokémons list
- oListPokemons = oDialog.getControl ("lstPokemon")
- oListPokemons.removeItems (0, oListPokemons.getItemCount)
- subReadBaseStats
- ReDim mPokemons (UBound (maBaseStats)) As String
- For nI = 0 To UBound (maBaseStats)
- mPokemons (nI) = _
- fnMapPokemonIdToName (maBaseStats (nI).sPokemon)
- Next nI
- oListPokemons.addItems (mPokemons, 0)
-
oDialog.getControl ("lstTotal").setVisible (False)
oDialog.getControl ("txtBestBefore").setVisible (False)
oDialog.getControl ("lstBest").setVisible (False)
@@ -255,10 +243,10 @@ Sub subRdoTeamValorItemChanged (oEvent As object)
"Its", 8, "is its strongest feature.", 65)
mItems = Array ( _
- "I'm blown away by its stats. WOW!", _
- "It's got excellent stats! How exciting!", _
- "Its stats indicate that in battle, it'll get the job done.", _
- "Its stats don't point to greatness in battle.")
+ fnGetResString ("AppraisalValorMax15"), _
+ fnGetResString ("AppraisalValorMax13Or14"), _
+ fnGetResString ("AppraisalValorMax8To12"), _
+ fnGetResString ("AppraisalValorMaxUpTo7"))
oList = oDialog.getControl ("lstMax")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -292,10 +280,10 @@ Sub subRdoTeamMysticItemChanged (oEvent As object)
"I see that its best attribute is its", 85, ".", 5)
mItems = Array ( _
- "Its stats exceed my calculations. It's incredible!", _
- "I am certainly impressed by its stats, I must say.", _
- "Its stats are noticeably trending to the positive.", _
- "Its stats are not out of the norm, in my opinion.")
+ fnGetResString ("AppraisalMysticMax15"), _
+ fnGetResString ("AppraisalMysticMax13Or14"), _
+ fnGetResString ("AppraisalMysticMax8To12"), _
+ fnGetResString ("AppraisalMysticMaxUpTo7"))
oList = oDialog.getControl ("lstMax")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -329,10 +317,10 @@ Sub subRdoTeamInstinctItemChanged (oEvent As object)
"Its best quality is", 45, ".", 5)
mItems = Array ( _
- "Its stats are the best I've ever seen! No doubt about it!", _
- "Its stats are really strong! Impressive.", _
- "It's definitely got some good stats. Definitely!", _
- "Its stats are all right, but kinda basic, as far as I can see.")
+ fnGetResString ("AppraisalInstinctMax15"), _
+ fnGetResString ("AppraisalInstinctMax13Or14"), _
+ fnGetResString ("AppraisalInstinctMax8To12"), _
+ fnGetResString ("AppraisalInstinctMaxUpTo7"))
oList = oDialog.getControl ("lstMax")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -352,7 +340,10 @@ Sub subUpdateBestStatAppraisal (oDialog As Object, _
oText.setText (sBefore)
nX = oText.getModel.getPropertyValue ("PositionX") + nBeforeWidth
- mItems = Array ("Attack", "Defense", "HP")
+ mItems = Array ( _
+ fnGetResString ("StatAttack"), _
+ fnGetResString ("StatDefense"), _
+ fnGetResString ("StatHP"))
oList = oDialog.getControl ("lstBest")
oList.removeItems (0, oList.getItemCount())
oList.addItems (mItems, 0)
@@ -375,99 +366,120 @@ End Sub
' subLstBestItemChanged: When the best stat is selected.
Sub subLstBestItemChanged (oEvent As object)
- Dim oDialog As Object, oCheckBox As Object
+ Dim oDialog As Object, oCheckBox As Object, sBestToo As String
oDialog = oEvent.Source.getContext
If oDialog.getControl ("rdoTeamValor").getState Then
- If oDialog.getControl ("lstBest").getSelectedItem = "Attack" Then
+ sBestToo = fnGetResString ("AppraisalValorBestToo")
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 0 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("I'm just as impressed with its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("I'm just as impressed with its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "Defense" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 1 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("I'm just as impressed with its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("I'm just as impressed with its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "HP" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 2 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("I'm just as impressed with its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("I'm just as impressed with its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
End If
If oDialog.getControl ("rdoTeamMystic").getState Then
- If oDialog.getControl ("lstBest").getSelectedItem = "Attack" Then
+ sBestToo = fnGetResString ("AppraisalMysticBestToo")
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 0 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("It is matched equally by its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("It is matched equally by its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "Defense" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 1 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("It is matched equally by its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("It is matched equally by its HP.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "HP" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 2 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("It is matched equally by its Attack.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("It is matched equally by its Defense.")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
End If
If oDialog.getControl ("rdoTeamInstinct").getState Then
- If oDialog.getControl ("lstBest").getSelectedItem = "Attack" Then
+ sBestToo = fnGetResString ("AppraisalInstinctBestToo")
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 0 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("Its Defense is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("Its HP is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "Defense" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 1 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("Its Attack is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("Its HP is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatHP")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
- If oDialog.getControl ("lstBest").getSelectedItem = "HP" Then
+ If oDialog.getControl ("lstBest").getSelectedItemPos = 2 Then
oCheckBox = oDialog.getControl ("cbxBest2")
- oCheckBox.setLabel ("Its Attack is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatAttack")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
oCheckBox = oDialog.getControl ("cbxBest3")
- oCheckBox.setLabel ("Its Defense is great, too!")
+ oCheckBox.setLabel (fnReplace ( _
+ sBestToo, "[Stat]", fnGetResString ("StatDefense")))
oCheckBox.setVisible (True)
oCheckBox.setState (0)
End If
@@ -483,24 +495,24 @@ Sub subUpdateTotalAppraisal ( _
If oDialog.getControl ("rdoTeamValor").getState Then
mItems = Array ( _
- "Overall, your [Pokémon] simply amazes me. It can accomplish anything!", _
- "Overall, your [Pokémon] is a strong Pokémon. You should be proud!", _
- "Overall, your [Pokémon] is a decent Pokémon.", _
- "Overall, your [Pokémon] may not be great in battle, but I still like it!")
+ fnGetResString ("AppraisalValorTotal37OrHigher"), _
+ fnGetResString ("AppraisalValorTotal30To36"), _
+ fnGetResString ("AppraisalValorTotal23To29"), _
+ fnGetResString ("AppraisalValorTotalUpTo22"))
End If
If oDialog.getControl ("rdoTeamMystic").getState Then
mItems = Array ( _
- "Overall, your [Pokémon] is a wonder! What a breathtaking Pokémon!", _
- "Overall, your [Pokémon] has certainly caught my attention.", _
- "Overall, your [Pokémon] is above average.", _
- "Overall, your [Pokémon] is not likely to make much headway in battle.")
+ fnGetResString ("AppraisalMysticTotal37OrHigher"), _
+ fnGetResString ("AppraisalMysticTotal30To36"), _
+ fnGetResString ("AppraisalMysticTotal23To29"), _
+ fnGetResString ("AppraisalMysticTotalUpTo22"))
End If
If oDialog.getControl ("rdoTeamInstinct").getState Then
mItems = Array ( _
- "Overall, your [Pokémon] looks like it can really battle with the best of them!", _
- "Overall, your [Pokémon] is really strong!", _
- "Overall, your [Pokémon] is pretty decent!", _
- "Overall, your [Pokémon] has room for improvement as far as battling goes.")
+ fnGetResString ("AppraisalInstinctTotal37OrHigher"), _
+ fnGetResString ("AppraisalInstinctTotal30To36"), _
+ fnGetResString ("AppraisalInstinctTotal23To29"), _
+ fnGetResString ("AppraisalInstinctTotalUpTo22"))
End If
' The team was not selected yet.
If UBound (mItems) = -1 Then
@@ -1111,15 +1123,16 @@ End Function
' fnReplace: Replaces all occurrances of a term to another.
Function fnReplace ( _
sText As String, sFrom As String, sTo As String) As String
- Dim nPos As Integer
+ Dim sResult As String, nPos As Integer
- nPos = InStr (sText, sFrom)
+ sResult = sText
+ nPos = InStr (sResult, sFrom)
Do While nPos <> 0
- sText = Left (sText, nPos - 1) & sTo _
- & Right (sText, Len (sText) - nPos - Len (sFrom) + 1)
- nPos = InStr (nPos + Len (sTo), sText, sFrom)
+ sResult = Left (sResult, nPos - 1) & sTo _
+ & Right (sResult, Len (sResult) - nPos - Len (sFrom) + 1)
+ nPos = InStr (nPos + Len (sTo), sResult, sFrom)
Loop
- fnReplace = sText
+ fnReplace = sResult
End Function
' subReadCPM: Reads the CPM table.
diff --git a/oxt/PokemonGoIV/DialogStrings_en_US.properties b/oxt/PokemonGoIV/DialogStrings_en_US.properties
index 3e03888..0ec72a8 100644
--- a/oxt/PokemonGoIV/DialogStrings_en_US.properties
+++ b/oxt/PokemonGoIV/DialogStrings_en_US.properties
@@ -1,14 +1,170 @@
# Strings for Dialog Library PokemonGoIV
-3.DlgMain.Title=Pok\u00e9mon GO IV Calculator
-23.DlgMain.txtPokemon.Label=~Pok\u00e9mon:
-27.DlgMain.txtCP.Label=~CP:
-30.DlgMain.txtHP.Label=~HP:
-33.DlgMain.txtStarDust.Label=S~tar dust:
-41.DlgMain.txtPlayerLevel.Label=Player ~level:
-47.DlgMain.cbxIsNew.Label=This Pok\u00e9mon has ~not been powered-up yet.
-51.DlgMain.grpAppraisals.Label=Team Leader Appraisal
-86.DlgMain.btnOK.Label=OK
-88.DlgMain.btnCancel.Label=Cancel
-183.DlgMain.rdoTeamValor.Label=Team ~Valor
-185.DlgMain.rdoTeamMystic.Label=Team ~Mystic
-187.DlgMain.rdoTeamInstinct.Label=Team ~Instinct
+1.DlgMain.Title=Pok\u00e9mon GO IV Calculator
+2.DlgMain.txtPokemon.Label=~Pok\u00e9mon:
+3.DlgMain.txtCP.Label=~CP:
+4.DlgMain.txtHP.Label=~HP:
+5.DlgMain.txtStarDust.Label=S~tar dust:
+6.DlgMain.txtPlayerLevel.Label=Player ~level:
+7.DlgMain.cbxIsNew.Label=This Pok\u00e9mon has ~not been powered-up yet.
+8.DlgMain.grpAppraisals.Label=Team Leader Appraisal
+9.DlgMain.rdoTeamValor.Label=Team ~Valor
+10.DlgMain.rdoTeamMystic.Label=Team ~Mystic
+11.DlgMain.rdoTeamInstinct.Label=Team ~Instinct
+1001.lstPokemon.StringItemList=Bulbasaur
+1002.lstPokemon.StringItemList=Ivysaur
+1003.lstPokemon.StringItemList=Venusaur
+1004.lstPokemon.StringItemList=Charmander
+1005.lstPokemon.StringItemList=Charmeleon
+1006.lstPokemon.StringItemList=Charizard
+1007.lstPokemon.StringItemList=Squirtle
+1008.lstPokemon.StringItemList=Wartortle
+1009.lstPokemon.StringItemList=Blastoise
+1010.lstPokemon.StringItemList=Caterpie
+1011.lstPokemon.StringItemList=Metapod
+1012.lstPokemon.StringItemList=Butterfree
+1013.lstPokemon.StringItemList=Weedle
+1014.lstPokemon.StringItemList=Kakuna
+1015.lstPokemon.StringItemList=Beedrill
+1016.lstPokemon.StringItemList=Pidgey
+1017.lstPokemon.StringItemList=Pidgeotto
+1018.lstPokemon.StringItemList=Pidgeot
+1019.lstPokemon.StringItemList=Rattata
+1020.lstPokemon.StringItemList=Raticate
+1021.lstPokemon.StringItemList=Spearow
+1022.lstPokemon.StringItemList=Fearow
+1023.lstPokemon.StringItemList=Ekans
+1024.lstPokemon.StringItemList=Arbok
+1025.lstPokemon.StringItemList=Pikachu
+1026.lstPokemon.StringItemList=Raichu
+1027.lstPokemon.StringItemList=Sandshrew
+1028.lstPokemon.StringItemList=Sandslash
+1029.lstPokemon.StringItemList=Nidoran\u2640
+1030.lstPokemon.StringItemList=Nidorina
+1031.lstPokemon.StringItemList=Nidoqueen
+1032.lstPokemon.StringItemList=Nidoran\u2642
+1033.lstPokemon.StringItemList=Nidorino
+1034.lstPokemon.StringItemList=Nidoking
+1035.lstPokemon.StringItemList=Clefairy
+1036.lstPokemon.StringItemList=Clefable
+1037.lstPokemon.StringItemList=Vulpix
+1038.lstPokemon.StringItemList=Ninetales
+1039.lstPokemon.StringItemList=Jigglypuff
+1040.lstPokemon.StringItemList=Wigglytuff
+1041.lstPokemon.StringItemList=Zubat
+1042.lstPokemon.StringItemList=Golbat
+1043.lstPokemon.StringItemList=Oddish
+1044.lstPokemon.StringItemList=Gloom
+1045.lstPokemon.StringItemList=Vileplume
+1046.lstPokemon.StringItemList=Paras
+1047.lstPokemon.StringItemList=Parasect
+1048.lstPokemon.StringItemList=Venonat
+1049.lstPokemon.StringItemList=Venomoth
+1050.lstPokemon.StringItemList=Diglett
+1051.lstPokemon.StringItemList=Dugtrio
+1052.lstPokemon.StringItemList=Meowth
+1053.lstPokemon.StringItemList=Persian
+1054.lstPokemon.StringItemList=Psyduck
+1055.lstPokemon.StringItemList=Golduck
+1056.lstPokemon.StringItemList=Mankey
+1057.lstPokemon.StringItemList=Primeape
+1058.lstPokemon.StringItemList=Growlithe
+1059.lstPokemon.StringItemList=Arcanine
+1060.lstPokemon.StringItemList=Poliwag
+1061.lstPokemon.StringItemList=Poliwhirl
+1062.lstPokemon.StringItemList=Poliwrath
+1063.lstPokemon.StringItemList=Abra
+1064.lstPokemon.StringItemList=Kadabra
+1065.lstPokemon.StringItemList=Alakazam
+1066.lstPokemon.StringItemList=Machop
+1067.lstPokemon.StringItemList=Machoke
+1068.lstPokemon.StringItemList=Machamp
+1069.lstPokemon.StringItemList=Bellsprout
+1070.lstPokemon.StringItemList=Weepinbell
+1071.lstPokemon.StringItemList=Victreebel
+1072.lstPokemon.StringItemList=Tentacool
+1073.lstPokemon.StringItemList=Tentacruel
+1074.lstPokemon.StringItemList=Geodude
+1075.lstPokemon.StringItemList=Graveler
+1076.lstPokemon.StringItemList=Golem
+1077.lstPokemon.StringItemList=Ponyta
+1078.lstPokemon.StringItemList=Rapidash
+1079.lstPokemon.StringItemList=Slowpoke
+1080.lstPokemon.StringItemList=Slowbro
+1081.lstPokemon.StringItemList=Magnemite
+1082.lstPokemon.StringItemList=Magneton
+1083.lstPokemon.StringItemList=Farfetch'd
+1084.lstPokemon.StringItemList=Doduo
+1085.lstPokemon.StringItemList=Dodrio
+1086.lstPokemon.StringItemList=Seel
+1087.lstPokemon.StringItemList=Dewgong
+1088.lstPokemon.StringItemList=Grimer
+1089.lstPokemon.StringItemList=Muk
+1090.lstPokemon.StringItemList=Shellder
+1091.lstPokemon.StringItemList=Cloyster
+1092.lstPokemon.StringItemList=Gastly
+1093.lstPokemon.StringItemList=Haunter
+1094.lstPokemon.StringItemList=Gengar
+1095.lstPokemon.StringItemList=Onix
+1096.lstPokemon.StringItemList=Drowzee
+1097.lstPokemon.StringItemList=Hypno
+1098.lstPokemon.StringItemList=Krabby
+1099.lstPokemon.StringItemList=Kingler
+1100.lstPokemon.StringItemList=Voltorb
+1101.lstPokemon.StringItemList=Electrode
+1102.lstPokemon.StringItemList=Exeggcute
+1103.lstPokemon.StringItemList=Exeggutor
+1104.lstPokemon.StringItemList=Cubone
+1105.lstPokemon.StringItemList=Marowak
+1106.lstPokemon.StringItemList=Hitmonlee
+1107.lstPokemon.StringItemList=Hitmonchan
+1108.lstPokemon.StringItemList=Lickitung
+1109.lstPokemon.StringItemList=Koffing
+1110.lstPokemon.StringItemList=Weezing
+1111.lstPokemon.StringItemList=Rhyhorn
+1112.lstPokemon.StringItemList=Rhydon
+1113.lstPokemon.StringItemList=Chansey
+1114.lstPokemon.StringItemList=Tangela
+1115.lstPokemon.StringItemList=Kangaskhan
+1116.lstPokemon.StringItemList=Horsea
+1117.lstPokemon.StringItemList=Seadra
+1118.lstPokemon.StringItemList=Goldeen
+1119.lstPokemon.StringItemList=Seaking
+1120.lstPokemon.StringItemList=Staryu
+1121.lstPokemon.StringItemList=Starmie
+1122.lstPokemon.StringItemList=Mr. Mime
+1123.lstPokemon.StringItemList=Scyther
+1124.lstPokemon.StringItemList=Jynx
+1125.lstPokemon.StringItemList=Electabuzz
+1126.lstPokemon.StringItemList=Magmar
+1127.lstPokemon.StringItemList=Pinsir
+1128.lstPokemon.StringItemList=Tauros
+1129.lstPokemon.StringItemList=Magikarp
+1130.lstPokemon.StringItemList=Gyarados
+1131.lstPokemon.StringItemList=Lapras
+1132.lstPokemon.StringItemList=Ditto
+1133.lstPokemon.StringItemList=Eevee
+1134.lstPokemon.StringItemList=Vaporeon
+1135.lstPokemon.StringItemList=Jolteon
+1136.lstPokemon.StringItemList=Flareon
+1137.lstPokemon.StringItemList=Porygon
+1138.lstPokemon.StringItemList=Omanyte
+1139.lstPokemon.StringItemList=Omastar
+1140.lstPokemon.StringItemList=Kabuto
+1141.lstPokemon.StringItemList=Kabutops
+1142.lstPokemon.StringItemList=Aerodactyl
+1143.lstPokemon.StringItemList=Snorlax
+1144.lstPokemon.StringItemList=Articuno
+1145.lstPokemon.StringItemList=Zapdos
+1146.lstPokemon.StringItemList=Moltres
+1147.lstPokemon.StringItemList=Dratini
+1148.lstPokemon.StringItemList=Dragonair
+1149.lstPokemon.StringItemList=Dragonite
+1150.lstPokemon.StringItemList=Mewtwo
+1151.lstPokemon.StringItemList=Mew
+1172.lstPokemon.StringItemList=Pichu
+1173.lstPokemon.StringItemList=Cleffa
+1174.lstPokemon.StringItemList=Igglybuff
+1175.lstPokemon.StringItemList=Togepi
+1176.lstPokemon.StringItemList=Togetic
+1238.lstPokemon.StringItemList=Smoochum
+1239.lstPokemon.StringItemList=Elekid
diff --git a/oxt/PokemonGoIV/DialogStrings_zh_TW.properties b/oxt/PokemonGoIV/DialogStrings_zh_TW.properties
index 1cbec20..fa1d90b 100644
--- a/oxt/PokemonGoIV/DialogStrings_zh_TW.properties
+++ b/oxt/PokemonGoIV/DialogStrings_zh_TW.properties
@@ -1,14 +1,170 @@
# Strings for Dialog Library PokemonGoIV
-3.DlgMain.Title=\u5bf6\u53ef\u5922 GO IV \u8a08\u7b97\u6a5f
-23.DlgMain.txtPokemon.Label=\u5bf6\u53ef\u5922(~P)\uff1a
-27.DlgMain.txtCP.Label=~CP:
-30.DlgMain.txtHP.Label=~HP:
-33.DlgMain.txtStarDust.Label=S~tar dust:
-41.DlgMain.txtPlayerLevel.Label=\u73a9\u5bb6\u7b49\u7d1a(~L)\uff1a
-47.DlgMain.cbxIsNew.Label=\u9019\u96bb\u5bf6\u53ef\u5922\u9084\u6c92\u5f37\u5316\u904e(~N)\u3002
-51.DlgMain.grpAppraisals.Label=\u968a\u9577\u8a55\u50f9
-86.DlgMain.btnOK.Label=\u78ba\u5b9a
-88.DlgMain.btnCancel.Label=\u53d6\u6d88
-183.DlgMain.rdoTeamValor.Label=~Valor \u968a
-185.DlgMain.rdoTeamMystic.Label=~Mystic \u968a
-187.DlgMain.rdoTeamInstinct.Label=~Instinct \u968a
+1.DlgMain.Title=\u5bf6\u53ef\u5922 GO IV \u8a08\u7b97\u6a5f
+2.DlgMain.txtPokemon.Label=\u5bf6\u53ef\u5922(~P)\uff1a
+3.DlgMain.txtCP.Label=~CP:
+4.DlgMain.txtHP.Label=~HP:
+5.DlgMain.txtStarDust.Label=S~tar dust:
+6.DlgMain.txtPlayerLevel.Label=\u73a9\u5bb6\u7b49\u7d1a(~L)\uff1a
+7.DlgMain.cbxIsNew.Label=\u9019\u96bb\u5bf6\u53ef\u5922\u9084\u6c92\u5f37\u5316\u904e(~N)\u3002
+8.DlgMain.grpAppraisals.Label=\u968a\u9577\u8a55\u50f9
+9.DlgMain.rdoTeamValor.Label=~Valor \u968a
+10.DlgMain.rdoTeamMystic.Label=~Mystic \u968a
+11.DlgMain.rdoTeamInstinct.Label=~Instinct \u968a
+1001.lstPokemon.StringItemList=Bulbasaur
+1002.lstPokemon.StringItemList=Ivysaur
+1003.lstPokemon.StringItemList=Venusaur
+1004.lstPokemon.StringItemList=Charmander
+1005.lstPokemon.StringItemList=Charmeleon
+1006.lstPokemon.StringItemList=Charizard
+1007.lstPokemon.StringItemList=Squirtle
+1008.lstPokemon.StringItemList=Wartortle
+1009.lstPokemon.StringItemList=Blastoise
+1010.lstPokemon.StringItemList=Caterpie
+1011.lstPokemon.StringItemList=Metapod
+1012.lstPokemon.StringItemList=Butterfree
+1013.lstPokemon.StringItemList=Weedle
+1014.lstPokemon.StringItemList=Kakuna
+1015.lstPokemon.StringItemList=Beedrill
+1016.lstPokemon.StringItemList=Pidgey
+1017.lstPokemon.StringItemList=Pidgeotto
+1018.lstPokemon.StringItemList=Pidgeot
+1019.lstPokemon.StringItemList=Rattata
+1020.lstPokemon.StringItemList=Raticate
+1021.lstPokemon.StringItemList=Spearow
+1022.lstPokemon.StringItemList=Fearow
+1023.lstPokemon.StringItemList=Ekans
+1024.lstPokemon.StringItemList=Arbok
+1025.lstPokemon.StringItemList=Pikachu
+1026.lstPokemon.StringItemList=Raichu
+1027.lstPokemon.StringItemList=Sandshrew
+1028.lstPokemon.StringItemList=Sandslash
+1029.lstPokemon.StringItemList=Nidoran\u2640
+1030.lstPokemon.StringItemList=Nidorina
+1031.lstPokemon.StringItemList=Nidoqueen
+1032.lstPokemon.StringItemList=Nidoran\u2642
+1033.lstPokemon.StringItemList=Nidorino
+1034.lstPokemon.StringItemList=Nidoking
+1035.lstPokemon.StringItemList=Clefairy
+1036.lstPokemon.StringItemList=Clefable
+1037.lstPokemon.StringItemList=Vulpix
+1038.lstPokemon.StringItemList=Ninetales
+1039.lstPokemon.StringItemList=Jigglypuff
+1040.lstPokemon.StringItemList=Wigglytuff
+1041.lstPokemon.StringItemList=Zubat
+1042.lstPokemon.StringItemList=Golbat
+1043.lstPokemon.StringItemList=Oddish
+1044.lstPokemon.StringItemList=Gloom
+1045.lstPokemon.StringItemList=Vileplume
+1046.lstPokemon.StringItemList=Paras
+1047.lstPokemon.StringItemList=Parasect
+1048.lstPokemon.StringItemList=Venonat
+1049.lstPokemon.StringItemList=Venomoth
+1050.lstPokemon.StringItemList=Diglett
+1051.lstPokemon.StringItemList=Dugtrio
+1052.lstPokemon.StringItemList=Meowth
+1053.lstPokemon.StringItemList=Persian
+1054.lstPokemon.StringItemList=Psyduck
+1055.lstPokemon.StringItemList=Golduck
+1056.lstPokemon.StringItemList=Mankey
+1057.lstPokemon.StringItemList=Primeape
+1058.lstPokemon.StringItemList=Growlithe
+1059.lstPokemon.StringItemList=Arcanine
+1060.lstPokemon.StringItemList=Poliwag
+1061.lstPokemon.StringItemList=Poliwhirl
+1062.lstPokemon.StringItemList=Poliwrath
+1063.lstPokemon.StringItemList=Abra
+1064.lstPokemon.StringItemList=Kadabra
+1065.lstPokemon.StringItemList=Alakazam
+1066.lstPokemon.StringItemList=Machop
+1067.lstPokemon.StringItemList=Machoke
+1068.lstPokemon.StringItemList=Machamp
+1069.lstPokemon.StringItemList=Bellsprout
+1070.lstPokemon.StringItemList=Weepinbell
+1071.lstPokemon.StringItemList=Victreebel
+1072.lstPokemon.StringItemList=Tentacool
+1073.lstPokemon.StringItemList=Tentacruel
+1074.lstPokemon.StringItemList=Geodude
+1075.lstPokemon.StringItemList=Graveler
+1076.lstPokemon.StringItemList=Golem
+1077.lstPokemon.StringItemList=Ponyta
+1078.lstPokemon.StringItemList=Rapidash
+1079.lstPokemon.StringItemList=Slowpoke
+1080.lstPokemon.StringItemList=Slowbro
+1081.lstPokemon.StringItemList=Magnemite
+1082.lstPokemon.StringItemList=Magneton
+1083.lstPokemon.StringItemList=Farfetch'd
+1084.lstPokemon.StringItemList=Doduo
+1085.lstPokemon.StringItemList=Dodrio
+1086.lstPokemon.StringItemList=Seel
+1087.lstPokemon.StringItemList=Dewgong
+1088.lstPokemon.StringItemList=Grimer
+1089.lstPokemon.StringItemList=Muk
+1090.lstPokemon.StringItemList=Shellder
+1091.lstPokemon.StringItemList=Cloyster
+1092.lstPokemon.StringItemList=Gastly
+1093.lstPokemon.StringItemList=Haunter
+1094.lstPokemon.StringItemList=Gengar
+1095.lstPokemon.StringItemList=Onix
+1096.lstPokemon.StringItemList=Drowzee
+1097.lstPokemon.StringItemList=Hypno
+1098.lstPokemon.StringItemList=Krabby
+1099.lstPokemon.StringItemList=Kingler
+1100.lstPokemon.StringItemList=Voltorb
+1101.lstPokemon.StringItemList=Electrode
+1102.lstPokemon.StringItemList=Exeggcute
+1103.lstPokemon.StringItemList=Exeggutor
+1104.lstPokemon.StringItemList=Cubone
+1105.lstPokemon.StringItemList=Marowak
+1106.lstPokemon.StringItemList=Hitmonlee
+1107.lstPokemon.StringItemList=Hitmonchan
+1108.lstPokemon.StringItemList=Lickitung
+1109.lstPokemon.StringItemList=Koffing
+1110.lstPokemon.StringItemList=Weezing
+1111.lstPokemon.StringItemList=Rhyhorn
+1112.lstPokemon.StringItemList=Rhydon
+1113.lstPokemon.StringItemList=Chansey
+1114.lstPokemon.StringItemList=Tangela
+1115.lstPokemon.StringItemList=Kangaskhan
+1116.lstPokemon.StringItemList=Horsea
+1117.lstPokemon.StringItemList=Seadra
+1118.lstPokemon.StringItemList=Goldeen
+1119.lstPokemon.StringItemList=Seaking
+1120.lstPokemon.StringItemList=Staryu
+1121.lstPokemon.StringItemList=Starmie
+1122.lstPokemon.StringItemList=Mr. Mime
+1123.lstPokemon.StringItemList=Scyther
+1124.lstPokemon.StringItemList=Jynx
+1125.lstPokemon.StringItemList=Electabuzz
+1126.lstPokemon.StringItemList=Magmar
+1127.lstPokemon.StringItemList=Pinsir
+1128.lstPokemon.StringItemList=Tauros
+1129.lstPokemon.StringItemList=Magikarp
+1130.lstPokemon.StringItemList=Gyarados
+1131.lstPokemon.StringItemList=Lapras
+1132.lstPokemon.StringItemList=Ditto
+1133.lstPokemon.StringItemList=Eevee
+1134.lstPokemon.StringItemList=Vaporeon
+1135.lstPokemon.StringItemList=Jolteon
+1136.lstPokemon.StringItemList=Flareon
+1137.lstPokemon.StringItemList=Porygon
+1138.lstPokemon.StringItemList=Omanyte
+1139.lstPokemon.StringItemList=Omastar
+1140.lstPokemon.StringItemList=Kabuto
+1141.lstPokemon.StringItemList=Kabutops
+1142.lstPokemon.StringItemList=Aerodactyl
+1143.lstPokemon.StringItemList=Snorlax
+1144.lstPokemon.StringItemList=Articuno
+1145.lstPokemon.StringItemList=Zapdos
+1146.lstPokemon.StringItemList=Moltres
+1147.lstPokemon.StringItemList=Dratini
+1148.lstPokemon.StringItemList=Dragonair
+1149.lstPokemon.StringItemList=Dragonite
+1150.lstPokemon.StringItemList=Mewtwo
+1151.lstPokemon.StringItemList=Mew
+1172.lstPokemon.StringItemList=Pichu
+1173.lstPokemon.StringItemList=Cleffa
+1174.lstPokemon.StringItemList=Igglybuff
+1175.lstPokemon.StringItemList=Togepi
+1176.lstPokemon.StringItemList=Togetic
+1238.lstPokemon.StringItemList=Smoochum
+1239.lstPokemon.StringItemList=Elekid
diff --git a/oxt/PokemonGoIV/DlgMain.xdl b/oxt/PokemonGoIV/DlgMain.xdl
index c5aa413..9f657ac 100644
--- a/oxt/PokemonGoIV/DlgMain.xdl
+++ b/oxt/PokemonGoIV/DlgMain.xdl
@@ -1,6 +1,6 @@
-
+
@@ -8,20 +8,180 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -47,7 +207,7 @@
-
+
@@ -92,19 +252,19 @@
-
+
-
+
-
+
-
+
-
+