From e4ec1cb45fc479e7216cfb4e2dda2462521a6ddd Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Sat, 27 Aug 2016 02:56:15 -0700 Subject: [PATCH] Fix PK1 Species setting --- PKHeX/PKM/PK1.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/PKHeX/PKM/PK1.cs b/PKHeX/PKM/PK1.cs index 3b0fcb0f4..ffe725310 100644 --- a/PKHeX/PKM/PK1.cs +++ b/PKHeX/PKM/PK1.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using System.Linq.Expressions; namespace PKHeX { @@ -73,7 +74,19 @@ public override byte[] Encrypt() public override bool IsNicknamed { get { throw new NotImplementedException(); } set { } } #region Stored Attributes - public override int Species { get { return PKX.getG1Species(Data[0]); } set { Data[0] = (byte)PKX.setG1Species(Data[0]); } } + public override int Species + { + get { return PKX.getG1Species(Data[0]); } + set + { + // Before updating catch rate, check if Special Yellow Version Pikachu + if (!(PKX.getG1Species(Data[0]) == 25 && value == 25 && Catch_Rate == 163)) + Catch_Rate = PersonalTable.RBY[value].CatchRate; + Data[0] = (byte)PKX.setG1Species(value); + Type_A = PersonalTable.RBY[value].Types[0]; + Type_B = PersonalTable.RBY[value].Types[1]; + } + } public override int Stat_HPCurrent { get { return Util.SwapEndianness(BitConverter.ToUInt16(Data, 0x1)); } set { BitConverter.GetBytes(Util.SwapEndianness((ushort)value)).CopyTo(Data, 0x1); } } public int Status_Condition { get { return Data[4]; } set { Data[4] = (byte)value; } }