Simplifying Code and fixing ball population

This commit is contained in:
Kurt 2014-12-17 17:04:57 -08:00
parent 90dffe42ca
commit f091fa5ca9
6 changed files with 66 additions and 20 deletions

View file

@ -28,8 +28,8 @@ namespace PKHeX
752,753,754,755,756,757,758,759,760,761,762,763,764,767,768,769,770,
};
internal static readonly int[] Items_Ball = { 4, 3, 2, 7, 576, 13, 492, 497, 14, 495, 493, 496, 494, 11, 498, 8, 6, 12, 15, 9, 5, 499, 10, 1, 16 };
internal static readonly int[] Items_CommonBall = { 4, 3, 2 };
internal static readonly int[] Items_UncommonBall = { 7, 576, 13, 492, 497, 14, 495, 493, 496, 494, 11, 498, 8, 6, 12, 15, 9, 5, 499, 10, 1, 16 };
internal static readonly int[] Items_CommonBall = { 4, 3, 2, 1};
internal static readonly int[] Items_UncommonBall = { 7, 576, 13, 492, 497, 14, 495, 493, 496, 494, 11, 498, 8, 6, 12, 15, 9, 5, 499, 10, 16 };
#endregion
internal static readonly int[] Gen4EncounterTypes = { 2, 4, 9, 10, 24 };
#region Games

View file

@ -216,25 +216,21 @@ namespace PKHeX
int growth = MonData.EXPGrowth;
uint levelxp = (uint)table.Rows[tl][growth + 1];
if (levelxp < exp)
while (levelxp < exp)
{
while (levelxp < exp)
// While EXP for guessed level is below our current exp
tl += 1;
if (tl == 100)
{
// While EXP for guessed level is below our current exp
tl += 1;
if (tl == 100)
{
exp = getEXP(100, species);
return tl;
}
levelxp = (uint)table.Rows[tl][growth + 1];
// when calcexp exceeds our exp, we exit loop
}
if (levelxp == exp) // Matches level threshold
exp = getEXP(100, species);
return tl;
else return (tl - 1);
}
levelxp = (uint)table.Rows[tl][growth + 1];
// when calcexp >= our exp, we exit loop
}
else return tl;
if (levelxp == exp) // Matches level threshold
return tl;
else return (tl - 1);
}
public static bool getIsShiny(uint PID, uint TID, uint SID)
{

View file

@ -431,6 +431,13 @@ namespace PKHeX
return Text;
}
}
internal static string[] getFilteredList(string[] data, int[] chosen)
{
string[] result = new string[chosen.Length];
for (int i = 0; i < chosen.Length; i++)
result[i] = data[chosen[i]];
return result;
}
internal static List<cbItem> getCBList(string textfile, string lang)
{
// Set up
@ -525,6 +532,39 @@ namespace PKHeX
}
return cbList;
}
internal static List<cbItem> getVariedCBList(List<cbItem> cbList, string[] inStrings, int[] stringNum, int[] stringVal)
{
// Set up
List<cbItem> newlist = new List<cbItem>();
for (int i = 4; i > 1; i--) // add 4,3,2
{
// First 3 Balls are always first
cbItem ncbi = new cbItem();
ncbi.Text = inStrings[i];
ncbi.Value = i;
newlist.Add(ncbi);
}
// Sort the Rest based on String Name
string[] ballnames = new string[stringNum.Length];
for (int i = 0; i < stringNum.Length; i++)
ballnames[i] = inStrings[stringNum[i]];
string[] sortedballs = new string[stringNum.Length];
Array.Copy(ballnames, sortedballs, ballnames.Length);
Array.Sort(sortedballs);
// Add the rest of the balls
for (int i = 0; i < sortedballs.Length; i++)
{
cbItem ncbi = new cbItem();
ncbi.Text = sortedballs[i];
ncbi.Value = stringVal[Array.IndexOf(ballnames, sortedballs[i])];
newlist.Add(ncbi);
}
return newlist;
}
internal static List<cbItem> getUnsortedCBList(string textfile)
{
// Set up

View file

@ -3277,6 +3277,7 @@
// PAN_BattleBox
//
this.PAN_BattleBox.BackgroundImage = global::PKHeX.Properties.Resources.party;
this.PAN_BattleBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.PAN_BattleBox.Controls.Add(this.bbpkx1);
this.PAN_BattleBox.Controls.Add(this.bbpkx2);
this.PAN_BattleBox.Controls.Add(this.bbpkx3);
@ -3385,6 +3386,7 @@
// PAN_Party
//
this.PAN_Party.BackgroundImage = global::PKHeX.Properties.Resources.party;
this.PAN_Party.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.PAN_Party.Controls.Add(this.ppkx1);
this.PAN_Party.Controls.Add(this.ppkx2);
this.PAN_Party.Controls.Add(this.ppkx3);

View file

@ -765,7 +765,9 @@ namespace PKHeX
// Set the various ComboBox DataSources up with their allowed entries
CB_3DSReg.DataSource = Util.getUnsortedCBList("regions3ds");
CB_Language.DataSource = Util.getUnsortedCBList("languages");
CB_Ball.DataSource = Util.getCBList(itemlist, new int[] { 4 }, new int[] { 3 }, new int[] { 2 }, Legal.Items_UncommonBall);
int[] ball_nums = new int[] { 7, 576, 13, 492, 497, 14, 495, 493, 496, 494, 11, 498, 8, 6, 12, 15, 9, 5, 499, 10, 1, 16 };
int[] ball_vals = new int[] { 7, 25, 13, 17, 22, 14, 20, 18, 21, 19, 11, 23, 8, 6, 12, 15, 9, 5, 24, 10, 1, 16 };
CB_Ball.DataSource = Util.getVariedCBList(Util.getCBList(itemlist, new int[] { 4 }, new int[] { 3 }, new int[] { 2 }, new int[] { 1 }), itemlist, ball_nums, ball_vals);
CB_HeldItem.DataSource = Util.getCBList(itemlist, (DEV_Ability.Enabled) ? null : Legal.Items_Held);
CB_Species.DataSource = Util.getCBList(specieslist, null);
DEV_Ability.DataSource = Util.getCBList(abilitylist, null);

View file

@ -410,9 +410,15 @@ http://projectpokemon.org/forums/showthread.php?36986
- Improved: Message popups should be much more appealing.
- Fixed various bugs for drag&drop.
12/17/14 - New Update:
12/17/14 - New Update: (790)
- Fixed: DexNav levels saving to species-1.
- Fixed: EXP growth accessing the wrong exp table.
- Fixed: Dragout sprite update triggering errors.
- Changed: Gen4 Encounter Type will only appear for Pokemon that originate from Gen 4.
- Fixed: Some item sprites.
- Fixed: Some item sprites.
12/18/14 - New Update:
- Fixed: EXP-level defaulting to 100.
- Fixed: Abilities not populating correctly.
- Fixed: Balls not being set properly.
- Added: Some more PSS stat strings to the Trainer Editor.