mirror of
https://github.com/mm201/pkmn-classic-framework.git
synced 2026-04-25 08:04:27 -05:00
Unkludged BattleTowerPokemon Species/Form handling
This commit is contained in:
parent
868951497b
commit
e669938e7a
|
|
@ -58,7 +58,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 0:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
129, // Magikarp
|
||||
129, 0, // Magikarp
|
||||
3133, // Cheri
|
||||
new ushort[] {
|
||||
150, // Splash
|
||||
|
|
@ -74,7 +74,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
223, // Remoraid
|
||||
223, 0, // Remoraid
|
||||
3134, // Chesto
|
||||
new ushort[] {
|
||||
60, // Psybeam
|
||||
|
|
@ -90,7 +90,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
349, // Feebas
|
||||
349, 0, // Feebas
|
||||
3134, // Chesto
|
||||
new ushort[] {
|
||||
150, // Splash
|
||||
|
|
@ -130,7 +130,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 1:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
376, // Metagross
|
||||
376, 0, // Metagross
|
||||
268, // Expert belt
|
||||
new ushort[] {
|
||||
89, // EQ
|
||||
|
|
@ -146,7 +146,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
282, // Gardevoir
|
||||
282, 0, // Gardevoir
|
||||
297, // Choice specs
|
||||
new ushort[] {
|
||||
94, // Psychic
|
||||
|
|
@ -162,7 +162,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
134, // Vaporeon
|
||||
134, 0, // Vaporeon
|
||||
234, // Leftovers
|
||||
new ushort[] {
|
||||
57, // Surf
|
||||
|
|
@ -202,7 +202,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 2:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
392, // Infernape
|
||||
392, 0, // Infernape
|
||||
275, // Focus sash
|
||||
new ushort[] {
|
||||
252, // Fake out
|
||||
|
|
@ -218,7 +218,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
235, // Smeargle
|
||||
235, 0, // Smeargle
|
||||
210, // Custap
|
||||
new ushort[] {
|
||||
147, // Spore
|
||||
|
|
@ -234,7 +234,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
365, // Walrein
|
||||
365, 0, // Walrein
|
||||
217, // Quick claw
|
||||
new ushort[] {
|
||||
156, // Rest
|
||||
|
|
@ -274,7 +274,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 3:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
248, // Tyranitar
|
||||
248, 0, // Tyranitar
|
||||
189, // Chople
|
||||
new ushort[] {
|
||||
446, // Stealth rock
|
||||
|
|
@ -290,7 +290,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
212, // Scizor
|
||||
212, 0, // Scizor
|
||||
270, // Life orb
|
||||
new ushort[] {
|
||||
418, // Bullet punch
|
||||
|
|
@ -306,7 +306,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
485, // Heatran
|
||||
485, 0, // Heatran
|
||||
234, // Leftovers
|
||||
new ushort[] {
|
||||
436, // Lava plume
|
||||
|
|
@ -347,7 +347,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 4:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
460, // Abomasnow
|
||||
460, 0, // Abomasnow
|
||||
287, // Scarf
|
||||
new ushort[] {
|
||||
59, // Blizzard
|
||||
|
|
@ -365,7 +365,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
471, // Glaceon
|
||||
471, 0, // Glaceon
|
||||
246, // Nevermeltice
|
||||
new ushort[] {
|
||||
59, // Blizzard
|
||||
|
|
@ -381,7 +381,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
461, // Weavile
|
||||
461, 0, // Weavile
|
||||
275, // Focus sash
|
||||
new ushort[] {
|
||||
14, // Swords dance
|
||||
|
|
@ -421,7 +421,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 5:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
437, // Bronzong
|
||||
437, 0, // Bronzong
|
||||
234, // Leftovers
|
||||
new ushort[] {
|
||||
433, // Trick room
|
||||
|
|
@ -437,7 +437,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
464, // Rhyperior
|
||||
464, 0, // Rhyperior
|
||||
270, // Life orb
|
||||
new ushort[] {
|
||||
89, // EQ
|
||||
|
|
@ -453,7 +453,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
462, // Magnezone
|
||||
462, 0, // Magnezone
|
||||
268, // Expert belt
|
||||
new ushort[] {
|
||||
237, // Hidden power
|
||||
|
|
@ -493,7 +493,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 6:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
65, // Alakazam
|
||||
65, 0, // Alakazam
|
||||
275, // Focus sash
|
||||
new ushort[] {
|
||||
269, // Taunt
|
||||
|
|
@ -509,7 +509,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
445, // Garchomp
|
||||
445, 0, // Garchomp
|
||||
270, // Life orb
|
||||
new ushort[] {
|
||||
14, // Swords dance
|
||||
|
|
@ -525,7 +525,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
242, // Blissey
|
||||
242, 0, // Blissey
|
||||
234, // Leftovers
|
||||
new ushort[] {
|
||||
135, // Softboiled
|
||||
|
|
@ -565,7 +565,7 @@ namespace PkmnFoundations.GTS
|
|||
|
||||
case 7:
|
||||
record.Party[0] = factory.CreatePokemon(pokedex,
|
||||
9, // Blastoise
|
||||
9, 0, // Blastoise
|
||||
234, // Leftovers
|
||||
new ushort[] {
|
||||
57, // Surf
|
||||
|
|
@ -581,7 +581,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[1] = factory.CreatePokemon(pokedex,
|
||||
389, // Torterra
|
||||
389, 0, // Torterra
|
||||
287, // Choice scarf
|
||||
new ushort[] {
|
||||
452, // Wood hammer
|
||||
|
|
@ -597,7 +597,7 @@ namespace PkmnFoundations.GTS
|
|||
);
|
||||
|
||||
record.Party[2] = factory.CreatePokemon(pokedex,
|
||||
324, // Torkoal
|
||||
324, 0, // Torkoal
|
||||
217, // Quick claw
|
||||
new ushort[] {
|
||||
133, // Amnesia
|
||||
|
|
@ -644,7 +644,8 @@ namespace PkmnFoundations.GTS
|
|||
{
|
||||
public abstract BattleTowerRecordBase CreateRecord(Pokedex.Pokedex pokedex);
|
||||
|
||||
public abstract BattleTowerPokemonBase CreatePokemon(Pokedex.Pokedex pokedex, ushort species, ushort held_item, ushort[] moveset,
|
||||
public abstract BattleTowerPokemonBase CreatePokemon(Pokedex.Pokedex pokedex,
|
||||
ushort species, byte form, ushort held_item, ushort[] moveset,
|
||||
uint ot, uint personality, uint ivs, byte[] evs, byte pp_ups,
|
||||
Languages language, byte ability, byte happiness, string nickname);
|
||||
|
||||
|
|
@ -668,13 +669,13 @@ namespace PkmnFoundations.GTS
|
|||
}
|
||||
|
||||
public override BattleTowerPokemonBase CreatePokemon(Pokedex.Pokedex pokedex,
|
||||
ushort species, ushort held_item, ushort[] moveset, uint ot,
|
||||
ushort species, byte form, ushort held_item, ushort[] moveset, uint ot,
|
||||
uint personality, uint ivs, byte[] evs, byte pp_ups,
|
||||
Languages language, byte ability, byte happiness,
|
||||
string nickname)
|
||||
{
|
||||
return new BattleTowerPokemon4(pokedex,
|
||||
species,
|
||||
species, form,
|
||||
held_item,
|
||||
moveset,
|
||||
ot, personality,
|
||||
|
|
@ -724,13 +725,13 @@ namespace PkmnFoundations.GTS
|
|||
}
|
||||
|
||||
public override BattleTowerPokemonBase CreatePokemon(Pokedex.Pokedex pokedex,
|
||||
ushort species, ushort held_item, ushort[] moveset, uint ot,
|
||||
ushort species, byte form, ushort held_item, ushort[] moveset, uint ot,
|
||||
uint personality, uint ivs, byte[] evs, byte pp_ups,
|
||||
Languages language, byte ability, byte happiness,
|
||||
string nickname)
|
||||
{
|
||||
return new BattleSubwayPokemon5(pokedex,
|
||||
species,
|
||||
species, form,
|
||||
held_item,
|
||||
moveset,
|
||||
ot, personality,
|
||||
|
|
|
|||
|
|
@ -730,9 +730,9 @@ namespace PkmnFoundations.Data
|
|||
_params.Add(new MySqlParameter("@slot", slot));
|
||||
|
||||
tran.ExecuteNonQuery("INSERT INTO GtsBattleTowerPokemon4 " +
|
||||
"(party_id, Slot, Species, HeldItem, Move1, Move2, Move3, Move4, TrainerID, " +
|
||||
"(party_id, Slot, Species, Form, HeldItem, Move1, Move2, Move3, Move4, TrainerID, " +
|
||||
"Personality, IVs, EVs, Unknown1, Language, Ability, Happiness, Nickname) VALUES " +
|
||||
"(@id, @slot, @species, @held_item, @move1, @move2, @move3, @move4, @trainer_id, " +
|
||||
"(@id, @slot, @species, @form, @held_item, @move1, @move2, @move3, @move4, @trainer_id, " +
|
||||
"@personality, @ivs, @evs, @unknown1, @language, @ability, @happiness, @nickname)",
|
||||
_params.ToArray());
|
||||
}
|
||||
|
|
@ -744,10 +744,11 @@ namespace PkmnFoundations.Data
|
|||
_params.Add(new MySqlParameter("@slot", slot));
|
||||
|
||||
tran.ExecuteNonQuery("UPDATE GtsBattleTowerPokemon4 SET Species = @species, " +
|
||||
"HeldItem = @held_item, Move1 = @move1, Move2 = @move2, Move3 = @move3, " +
|
||||
"Move4 = @move4, TrainerID = @trainer_id, Personality = @personality, " +
|
||||
"IVs = @ivs, EVs = @evs, Unknown1 = @unknown1, Language = @language, " +
|
||||
"Ability = @ability, Happiness = @happiness, Nickname = @nickname " +
|
||||
"Form = @form, HeldItem = @held_item, Move1 = @move1, Move2 = @move2, " +
|
||||
"Move3 = @move3, Move4 = @move4, TrainerID = @trainer_id, " +
|
||||
"Personality = @personality, IVs = @ivs, EVs = @evs, Unknown1 = @unknown1, " +
|
||||
"Language = @language, Ability = @ability, Happiness = @happiness, " +
|
||||
"Nickname = @nickname " +
|
||||
"WHERE party_id = @id AND Slot = @slot",
|
||||
_params.ToArray());
|
||||
}
|
||||
|
|
@ -783,7 +784,8 @@ namespace PkmnFoundations.Data
|
|||
private List<MySqlParameter> ParamsFromBattleTowerPokemon4(BattleTowerPokemon4 pokemon)
|
||||
{
|
||||
List<MySqlParameter> result = new List<MySqlParameter>(15);
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesFormValue));
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesID));
|
||||
result.Add(new MySqlParameter("@form", pokemon.FormID));
|
||||
result.Add(new MySqlParameter("@held_item", pokemon.HeldItemID));
|
||||
result.Add(new MySqlParameter("@move1", (ushort)pokemon.Moves[0].MoveID));
|
||||
result.Add(new MySqlParameter("@move2", (ushort)pokemon.Moves[1].MoveID));
|
||||
|
|
@ -921,7 +923,7 @@ namespace PkmnFoundations.Data
|
|||
|
||||
string inClause = String.Join(", ", keys.Select(i => i.ToString()).ToArray());
|
||||
using (MySqlDataReader reader = (MySqlDataReader)tran.ExecuteReader("SELECT party_id, " +
|
||||
"Slot, Species, HeldItem, Move1, Move2, Move3, Move4, " +
|
||||
"Slot, Species, Form, HeldItem, Move1, Move2, Move3, Move4, " +
|
||||
"TrainerID, Personality, IVs, EVs, Unknown1, Language, " +
|
||||
"Ability, Happiness, Nickname FROM GtsBattleTowerPokemon4 " +
|
||||
"WHERE party_id IN (" + inClause + ")"))
|
||||
|
|
@ -971,8 +973,12 @@ namespace PkmnFoundations.Data
|
|||
|
||||
private BattleTowerPokemon4 BattleTowerPokemon4FromReader(MySqlDataReader reader, Pokedex.Pokedex pokedex)
|
||||
{
|
||||
ushort? speciesId = DatabaseExtender.Cast<ushort?>(reader["Species"]);
|
||||
ushort? formId = DatabaseExtender.Cast<ushort?>(reader["Form"]);
|
||||
|
||||
return new BattleTowerPokemon4(pokedex,
|
||||
DatabaseExtender.Cast<ushort>(reader["Species"]),
|
||||
(int)speciesId,
|
||||
(byte)formId,
|
||||
DatabaseExtender.Cast<ushort>(reader["HeldItem"]),
|
||||
DatabaseExtender.Cast<ushort>(reader["Move1"]),
|
||||
DatabaseExtender.Cast<ushort>(reader["Move2"]),
|
||||
|
|
@ -1954,10 +1960,10 @@ namespace PkmnFoundations.Data
|
|||
_params.Add(new MySqlParameter("@slot", slot));
|
||||
|
||||
tran.ExecuteNonQuery("INSERT INTO GtsBattleSubwayPokemon5 " +
|
||||
"(party_id, Slot, Species, HeldItem, Move1, Move2, Move3, Move4, TrainerID, " +
|
||||
"(party_id, Slot, Species, Form, HeldItem, Move1, Move2, Move3, Move4, TrainerID, " +
|
||||
"Personality, IVs, EVs, Unknown1, Language, Ability, Happiness, " +
|
||||
"Nickname, Unknown2) VALUES " +
|
||||
"(@id, @slot, @species, @held_item, @move1, @move2, @move3, @move4, @trainer_id, " +
|
||||
"(@id, @slot, @species, @form, @held_item, @move1, @move2, @move3, @move4, @trainer_id, " +
|
||||
"@personality, @ivs, @evs, @unknown1, @language, @ability, @happiness, " +
|
||||
"@nickname, @unknown2)",
|
||||
_params.ToArray());
|
||||
|
|
@ -1970,11 +1976,11 @@ namespace PkmnFoundations.Data
|
|||
_params.Add(new MySqlParameter("@slot", slot));
|
||||
|
||||
tran.ExecuteNonQuery("UPDATE GtsBattleSubwayPokemon5 SET Species = @species, " +
|
||||
"HeldItem = @held_item, Move1 = @move1, Move2 = @move2, Move3 = @move3, " +
|
||||
"Move4 = @move4, TrainerID = @trainer_id, Personality = @personality, " +
|
||||
"IVs = @ivs, EVs = @evs, Unknown1 = @unknown1, Language = @language, " +
|
||||
"Ability = @ability, Happiness = @happiness, Nickname = @nickname, " +
|
||||
"Unknown2 = @unknown2 " +
|
||||
"Form = @form, HeldItem = @held_item, Move1 = @move1, Move2 = @move2, " +
|
||||
"Move3 = @move3, Move4 = @move4, TrainerID = @trainer_id, " +
|
||||
"Personality = @personality, IVs = @ivs, EVs = @evs, Unknown1 = @unknown1, " +
|
||||
"Language = @language, Ability = @ability, Happiness = @happiness, " +
|
||||
"Nickname = @nickname, Unknown2 = @unknown2 " +
|
||||
"WHERE party_id = @id AND Slot = @slot",
|
||||
_params.ToArray());
|
||||
}
|
||||
|
|
@ -2011,7 +2017,8 @@ namespace PkmnFoundations.Data
|
|||
private List<MySqlParameter> ParamsFromBattleSubwayPokemon5(BattleSubwayPokemon5 pokemon)
|
||||
{
|
||||
List<MySqlParameter> result = new List<MySqlParameter>(15);
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesFormValue));
|
||||
result.Add(new MySqlParameter("@species", pokemon.SpeciesID));
|
||||
result.Add(new MySqlParameter("@form", pokemon.FormID));
|
||||
result.Add(new MySqlParameter("@held_item", pokemon.HeldItemID));
|
||||
result.Add(new MySqlParameter("@move1", pokemon.Moves[0].MoveID));
|
||||
result.Add(new MySqlParameter("@move2", pokemon.Moves[1].MoveID));
|
||||
|
|
@ -2156,7 +2163,7 @@ namespace PkmnFoundations.Data
|
|||
|
||||
string inClause = String.Join(", ", keys.Select(i => i.ToString()).ToArray());
|
||||
using (MySqlDataReader reader = (MySqlDataReader)tran.ExecuteReader("SELECT party_id, " +
|
||||
"Slot, Species, HeldItem, Move1, Move2, Move3, Move4, " +
|
||||
"Slot, Species, Form, HeldItem, Move1, Move2, Move3, Move4, " +
|
||||
"TrainerID, Personality, IVs, EVs, Unknown1, Language, " +
|
||||
"Ability, Happiness, Nickname, Unknown2 FROM GtsBattleSubwayPokemon5 " +
|
||||
"WHERE party_id IN (" + inClause + ")"))
|
||||
|
|
@ -2202,8 +2209,12 @@ namespace PkmnFoundations.Data
|
|||
|
||||
private BattleSubwayPokemon5 BattleSubwayPokemon5FromReader(MySqlDataReader reader, Pokedex.Pokedex pokedex)
|
||||
{
|
||||
ushort? speciesId = DatabaseExtender.Cast<ushort?>(reader["Species"]);
|
||||
ushort? formId = DatabaseExtender.Cast<ushort?>(reader["Form"]);
|
||||
|
||||
return new BattleSubwayPokemon5(pokedex,
|
||||
DatabaseExtender.Cast<ushort>(reader["Species"]),
|
||||
(int)speciesId,
|
||||
(byte)formId,
|
||||
DatabaseExtender.Cast<ushort>(reader["HeldItem"]),
|
||||
DatabaseExtender.Cast<ushort>(reader["Move1"]),
|
||||
DatabaseExtender.Cast<ushort>(reader["Move2"]),
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace PkmnFoundations.Wfc
|
|||
{
|
||||
}
|
||||
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item, ushort[] moveset,
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, int species, byte form, ushort held_item, ushort[] moveset,
|
||||
uint ot, uint personality, uint ivs, byte[] evs, byte pp_ups,
|
||||
Languages language, byte ability, byte happiness, EncodedString5 nickname, uint unknown2) : base(pokedex)
|
||||
{
|
||||
|
|
@ -25,7 +25,8 @@ namespace PkmnFoundations.Wfc
|
|||
if (nickname == null) throw new ArgumentNullException("nickname");
|
||||
if (nickname.Size != 22) throw new ArgumentException("nickname");
|
||||
|
||||
SpeciesFormValue = species_form;
|
||||
SpeciesID = species;
|
||||
FormID = form;
|
||||
HeldItemID = held_item;
|
||||
GetMovesFromArray(Moves, pokedex, moveset, pp_ups);
|
||||
TrainerID = ot;
|
||||
|
|
@ -40,11 +41,11 @@ namespace PkmnFoundations.Wfc
|
|||
Unknown2 = unknown2;
|
||||
}
|
||||
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item,
|
||||
public BattleSubwayPokemon5(Pokedex.Pokedex pokedex, int species, byte form, ushort held_item,
|
||||
ushort move1, ushort move2, ushort move3, ushort move4, uint ot, uint personality,
|
||||
uint ivs, byte[] evs, byte pp_ups, Languages language, byte ability, byte happiness,
|
||||
EncodedString5 nickname, uint unknown2) :
|
||||
this(pokedex, species_form, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
this(pokedex, species, form, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
ot, personality, ivs, evs, pp_ups, language, ability, happiness, nickname, unknown2)
|
||||
{
|
||||
}
|
||||
|
|
@ -84,7 +85,7 @@ namespace PkmnFoundations.Wfc
|
|||
|
||||
protected override void Save(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(SpeciesFormValue);
|
||||
writer.Write(CombineSpeciesForm(SpeciesID, FormID));
|
||||
writer.Write((ushort)HeldItemID);
|
||||
|
||||
ushort[] moveset = GetArrayFromMoves(Moves);
|
||||
|
|
@ -109,7 +110,9 @@ namespace PkmnFoundations.Wfc
|
|||
|
||||
protected override void Load(BinaryReader reader)
|
||||
{
|
||||
SpeciesFormValue = reader.ReadUInt16();
|
||||
ushort species_form = reader.ReadUInt16();
|
||||
SpeciesID = GetSpeciesFromCombined(species_form);
|
||||
FormID = GetFormFromCombined(species_form);
|
||||
HeldItemID = reader.ReadUInt16();
|
||||
|
||||
ushort[] moveset = new ushort[4];
|
||||
|
|
@ -142,7 +145,7 @@ namespace PkmnFoundations.Wfc
|
|||
byte ppUps = GetPpUpsFromMoves(Moves);
|
||||
|
||||
BattleSubwayPokemon5 result = new BattleSubwayPokemon5(m_pokedex,
|
||||
SpeciesFormValue, (ushort)HeldItemID, moveset,
|
||||
SpeciesID, FormID, (ushort)HeldItemID, moveset,
|
||||
TrainerID, Personality, ivsField, EVs.ToArray(), ppUps,
|
||||
Language, (byte)AbilityID, Happiness, NicknameEncoded, Unknown2);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace PkmnFoundations.Wfc
|
|||
{
|
||||
}
|
||||
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item, ushort[] moveset,
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, int species, byte form, ushort held_item, ushort[] moveset,
|
||||
uint ot, uint personality, uint ivs, byte[] evs, byte pp_ups,
|
||||
Languages language, byte ability, byte happiness, EncodedString4 nickname) : base(pokedex)
|
||||
{
|
||||
|
|
@ -25,7 +25,8 @@ namespace PkmnFoundations.Wfc
|
|||
if (nickname == null) throw new ArgumentNullException("nickname");
|
||||
if (nickname.Size != 22) throw new ArgumentException("nickname");
|
||||
|
||||
SpeciesFormValue = species_form;
|
||||
SpeciesID = species;
|
||||
FormID = form;
|
||||
HeldItemID = held_item;
|
||||
GetMovesFromArray(Moves, pokedex, moveset, pp_ups);
|
||||
TrainerID = ot;
|
||||
|
|
@ -39,11 +40,11 @@ namespace PkmnFoundations.Wfc
|
|||
NicknameEncoded = nickname; // todo: clone
|
||||
}
|
||||
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, ushort species_form, ushort held_item,
|
||||
public BattleTowerPokemon4(Pokedex.Pokedex pokedex, int species, byte form, ushort held_item,
|
||||
ushort move1, ushort move2, ushort move3, ushort move4, uint ot, uint personality,
|
||||
uint ivs, byte[] evs, byte pp_ups, Languages language, byte ability, byte happiness,
|
||||
EncodedString4 nickname) :
|
||||
this(pokedex, species_form, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
this(pokedex, species, form, held_item, new ushort[] { move1, move2, move3, move4 },
|
||||
ot, personality, ivs, evs, pp_ups, language, ability, happiness, nickname)
|
||||
{
|
||||
}
|
||||
|
|
@ -81,7 +82,7 @@ namespace PkmnFoundations.Wfc
|
|||
|
||||
protected override void Save(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(SpeciesFormValue);
|
||||
writer.Write(CombineSpeciesForm(SpeciesID, FormID));
|
||||
writer.Write((ushort)HeldItemID);
|
||||
|
||||
ushort[] moveset = GetArrayFromMoves(Moves);
|
||||
|
|
@ -105,7 +106,9 @@ namespace PkmnFoundations.Wfc
|
|||
|
||||
protected override void Load(BinaryReader reader)
|
||||
{
|
||||
SpeciesFormValue = reader.ReadUInt16();
|
||||
ushort species_form = reader.ReadUInt16();
|
||||
SpeciesID = GetSpeciesFromCombined(species_form);
|
||||
FormID = GetFormFromCombined(species_form);
|
||||
HeldItemID = reader.ReadUInt16();
|
||||
|
||||
ushort[] moveset = new ushort[4];
|
||||
|
|
@ -137,7 +140,7 @@ namespace PkmnFoundations.Wfc
|
|||
byte ppUps = GetPpUpsFromMoves(Moves);
|
||||
|
||||
BattleTowerPokemon4 result = new BattleTowerPokemon4(m_pokedex,
|
||||
SpeciesFormValue, (ushort)HeldItemID, moveset,
|
||||
SpeciesID, FormID, (ushort)HeldItemID, moveset,
|
||||
TrainerID, Personality, ivsField, EVs.ToArray(), ppUps,
|
||||
Language, (byte)AbilityID, Happiness, NicknameEncoded);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,17 +35,21 @@ namespace PkmnFoundations.Wfc
|
|||
}
|
||||
}
|
||||
|
||||
public ushort SpeciesFormValue
|
||||
protected static ushort CombineSpeciesForm(int species, byte form)
|
||||
{
|
||||
get
|
||||
{
|
||||
return (ushort)(SpeciesID & 0x7ff | FormID << 11);
|
||||
}
|
||||
set
|
||||
{
|
||||
SpeciesID = value & 0x7ff;
|
||||
FormID = (byte)(value >> 11);
|
||||
}
|
||||
if (species > 0x7ff || species < 0) throw new ArgumentOutOfRangeException("species");
|
||||
if (form > 0x1f) throw new ArgumentOutOfRangeException("form");
|
||||
return (ushort)(species & 0x7ff | form << 11);
|
||||
}
|
||||
|
||||
protected static int GetSpeciesFromCombined(ushort combined)
|
||||
{
|
||||
return combined & 0x7ff;
|
||||
}
|
||||
|
||||
protected static byte GetFormFromCombined(ushort combined)
|
||||
{
|
||||
return (byte)(combined >> 11);
|
||||
}
|
||||
|
||||
internal static void GetMovesFromArray(IList<MoveSlot> result, Pokedex.Pokedex pokedex, ushort[] moves, byte ppUps)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user