Remove old (GF fixed) shiny correlation

Transporter was updated
This commit is contained in:
Kurt
2017-09-06 09:12:56 -07:00
parent d3ebbffb79
commit cbda637981
7 changed files with 53 additions and 25 deletions

View File

@@ -1918,6 +1918,10 @@ private void VerifyMiscG1()
if (pkm.PKRS_Cured || pkm.PKRS_Infected)
AddLine(Severity.Invalid, V368, CheckIdentifier.Egg);
}
if (pkm.Format > 2 && pkm.VC2 && pkm.Gender == 1 && pkm.PersonalInfo.Gender == 31 && pkm.IsShiny)
AddLine(Severity.Invalid, V209, CheckIdentifier.PID);
if (!(pkm is PK1 pk1))
return;

View File

@@ -1,4 +1,5 @@
using System;
using System.Diagnostics;
using System.Linq;
namespace PKHeX.Core
@@ -234,10 +235,9 @@ public override bool IsGenderValid()
public override int Nature { get => 0; set { } }
public override int AltForm { get => 0; set { } }
public override bool IsEgg { get => false; set { } }
public override int Gender { get => 0; set { } }
public override int HeldItem { get => 0; set { } }
public override bool CanHoldItem(ushort[] ValidArray) => false;
public override bool IsShiny => IV_ATK == 10 && IV_SPE == 10 && IV_SPC == 10 && (IV_DEF & 2) == 2;
public override bool IsShiny => IV_DEF == 10 && IV_SPE == 10 && IV_SPC == 10 && (IV_ATK & 2) == 2;
public override ushort Sanity { get => 0; set { } }
public override bool ChecksumValid => true;
public override ushort Checksum { get => 0; set { } }
@@ -268,6 +268,34 @@ public override bool IsGenderValid()
#endregion
public bool CatchRateIsItem = false;
public override int Gender
{
get
{
int gv = PersonalInfo.Gender;
if (gv == 255)
return 2;
if (gv == 254)
return 1;
if (gv == 0)
return 0;
switch (gv)
{
case 31:
return IV_ATK >= 2 ? 0 : 1;
case 63:
return IV_ATK >= 5 ? 0 : 1;
case 127:
return IV_ATK >= 7 ? 0 : 1;
case 191:
return IV_ATK >= 12 ? 0 : 1;
}
Debug.WriteLine("Unknown Gender value: " + gv);
return 0;
}
set { }
}
// Maximums
public override int MaxMoveID => Legal.MaxMoveID_1;
public override int MaxSpeciesID => Legal.MaxSpeciesID_1;
@@ -347,7 +375,7 @@ public PK7 ConvertToPK7()
Move3_PP = Move3_PP,
Move4_PP = Move4_PP,
Met_Location = 30013, // "Kanto region", hardcoded.
Gender = PersonalTable.SM[Species].RandomGender,
Gender = Gender,
OT_Name = StringConverter.GetG1ConvertedString(otname, Japanese),
IsNicknamed = false,

View File

@@ -395,7 +395,7 @@ public PK7 ConvertToPK7()
Move3_PP = Move3_PP,
Move4_PP = Move4_PP,
Met_Location = 30004,
Gender = PersonalTable.SM[Species].RandomGender,
Gender = Gender,
OT_Name = StringConverter.GetG1ConvertedString(otname, Japanese),
IsNicknamed = false,

View File

@@ -777,23 +777,14 @@ protected int GetBasePP(int move)
/// </remarks>
public void SetShinyIVs()
{
int[] and2 = { 2, 3, 6, 7, 10, 11, 14, 15 };
switch (Format)
{
default:
return;
case 1:
IV_ATK = 10; // an attempt was made
IV_DEF = randIV();
break;
case 2:
IV_DEF = 10;
IV_ATK = randIV();
break;
}
if (Format > 2)
return;
int[] and2 = {2, 3, 6, 7, 10, 11, 14, 15};
IV_ATK = and2[Util.Rand32() & 7];
IV_DEF = 10;
IV_SPE = 10;
IV_SPA = 10;
int randIV() => and2[Util.Rand32() & 7];
}
/// <summary>

View File

@@ -59,7 +59,7 @@ public override int[] Types
public override int[] Items { get => new[] { 0, 0 }; set { } }
public override int[] EggGroups { get => new[] { 0, 0 }; set { } }
public override int[] Abilities { get => new[] { 0, 0 }; set { } }
public override int Gender { get => 0; set { } }
public override int Gender { get; set; }
public override int HatchCycles { get => 0; set { } }
public override int BaseFriendship { get => 0; set { } }
public override int EscapeRate { get => 0; set { } }

View File

@@ -91,15 +91,19 @@ private static int GetEntrySize(GameVersion format)
}
static PersonalTable() // Finish Setup
{
FixPersonalTableY();
FixPersonalTableG1();
PopulateGen3Tutors();
PopulateGen4Tutors();
}
private static void FixPersonalTableY()
private static void FixPersonalTableG1()
{
// Update Yellow's catch rates; currently matches Red/Blue's values.
Y[25].CatchRate = 163; // Pikachu
Y[64].CatchRate = 96; // Kadabra
// Load Gen2 Gender Ratios into Gen1
for (int i = 0; i < 151; i++)
RB[i].Gender = Y[i].Gender = GS[i].Gender;
}
private static void PopulateGen3Tutors()
{

View File

@@ -530,7 +530,7 @@ private void ClickGender(object sender, EventArgs e)
// If not a single gender(less) species: (should be <254 but whatever, 255 never happens)
int newGender = PKX.GetGender(Label_Gender.Text) ^ 1;
if (pkm.Format == 2)
if (pkm.Format <= 2)
do { TB_ATKIV.Text = (Util.Rand32() & pkm.MaxIV).ToString(); } while (PKX.GetGender(Label_Gender.Text) != newGender);
else if (pkm.Format <= 4)
{
@@ -879,7 +879,7 @@ private void UpdateIVs(object sender, EventArgs e)
{
TB_HPIV.Text = pkm.IV_HP.ToString();
TB_SPDIV.Text = TB_SPAIV.Text;
if (pkm.Format == 2)
if (pkm.Format <= 2)
{
Label_Gender.Text = gendersymbols[pkm.Gender];
Label_Gender.ForeColor = GetGenderColor(pkm.Gender);
@@ -1823,9 +1823,10 @@ private void ToggleInterface(int gen)
FLP_FriendshipForm.Visible = gen >= 2;
FLP_HeldItem.Visible = gen >= 2;
CHK_IsEgg.Visible = Label_Gender.Visible = gen >= 2;
CHK_IsEgg.Visible = gen >= 2;
FLP_PKRS.Visible = FLP_EggPKRSRight.Visible = gen >= 2;
Label_OTGender.Visible = gen >= 2;
Label_Gender.Visible = gen >= 1;
// HaX override, needs to be after DEV_Ability enabled assignment.
TB_AbilityNumber.Visible = gen >= 6 && DEV_Ability.Enabled;