1) Fixed
2) Fixed
3)
[color=#00ff00] // Remove HM moves; Defog should be kept if both are learned.[/color] [color=#0000ff]int[/color][] banned = Moves.Contains(250) [color=#00ff00]/*Whirlpool*/[/color] && !Moves.Contains(432) [color=#00ff00]/*Defog*/[/color] ? [color=#0000ff]new[/color][] {15, 19, 57, 70, 432, 249, 127, 431} [color=#00ff00]// No Defog[/color] : [color=#0000ff]new[/color][] {15, 19, 57, 70, 250, 249, 127, 431};[color=#00ff00]// No Whirlpool[/color]
"No Whirlpool" is HGSS transfer,
"No Defog" is DPPt transfer
If pkm does not have Whirlpool, it uses the "No Whirlpool" banlist. (first false short circuit)
If pkm has Whirlpool and has Defog, it uses the "No Whirlpool" banlist. (second false)
If pkm has Whirlpool and not defog, it uses the "No Defog" banlist. (both true)
It can be re-written as follows:
[color=#00FF00] // Remove HM moves; Defog should be kept if both are learned.[/color] [color=#0000FF]int[/color][] banned = Moves.Contains(250) && Moves.Contains(432) [color=#00FF00]/*Whirlpool & Defog*/[/color] ? [color=#0000FF]new[/color][] {15, 19, 57, 70, 250, 249, 127, 431} [color=#00FF00]// No Whirlpool[/color] : [color=#0000FF]new[/color][] {15, 19, 57, 70, 249, 127, 431};[color=#00FF00]// Transfer via advantageous game[/color]
So, instead of knowing which game it is transferred, we can just be ambiguous.
Changed to reflect the second snippet of code.
Thanks for the report